# Google-Sheets-Ausgabeformat

Für Teams, die Google Workspace nutzen. Gleiche Struktur wie das Excel-Ausgabeformat, andere technische Umsetzung. Wenn sowohl Excel- als auch Sheets-Pfad verfügbar sind, fragen Sie den Benutzer nach seiner Präferenz — raten Sie nicht anhand der Umgebung.

## Vorgehensweise

Drei Wege, in Präferenzreihenfolge:

1. **Google Sheets MCP** (wenn ein `gdrive`- oder `gsheets`-MCP mit Schreib-/Erstellungsfunktion verbunden ist). Tabelle erstellen, Tabellenblätter schreiben, Formatierung über die API setzen.
2. **Google Sheets API über ADC** (wenn der Benutzer `gcloud auth application-default login --enable-gdrive-access` eingerichtet hat und Python `google-api-python-client` verfügbar ist). `sheets.spreadsheets().create()` und `batchUpdate` für die Formatierung verwenden.
3. **Fallback: CSV + manueller Import.** CSV-Dateien schreiben, den Benutzer über den Import in Sheets informieren. Außerdem eine `formatierungshinweise.md` erstellen, damit er die Farbkodierung und Datenvalidierung manuell anwenden kann.

Nehmen Sie keinen Schreibzugriff an, den Sie nicht verifiziert haben. Erst prüfen, dann graceful fallback.

## Arbeitsmappenstruktur

Spiegelt die Excel-Spezifikation exakt wider — gleiche Tabellenblätter, gleiche Semantik, Sheets-native Umsetzung:

**Tabellenblatt: `Prüfung`** (das Hauptraster)
- Zeile 1: Arbeitsprodukt-Kopfzeile (zusammengeführte Zelle)
- Zeile 2: Spaltenbezeichnungen
- Ab Zeile 3: eine Zeile pro Dokument
- Spalte A: Dokumentname / Link (wenn Quelldokumente in Drive liegen, als Hyperlink zur Datei verknüpfen — dies ist ein Vorteil von Sheets gegenüber Excel)
- Ab Spalte B: eine Spalte pro Schema-Spalte
- **Quellzitate in Zellnotizen ablegen** (Sheets-Notizen, nicht Kommentare — Notizen sind dauerhafte Anmerkungen, Kommentare sind Kollaborations-Threads). Notizen erscheinen beim Überfahren mit der Maus und werden beim Export als `.xlsx` zu Kommentaren.
- Zellfüllung nach Status: Standard = `beantwortet`, hellgelb = `unklar` oder `prüfen`, hellgrau = `nicht_vorhanden`. `repeatCell` mit `userEnteredFormat.backgroundColor` in `batchUpdate` verwenden.
- Eine `Geprüft`-Spalte nach jeder Gruppe: standardmäßig leer, Datenvalidierungs-Dropdown `✓ | ✗ | ?` über `setDataValidation`.

**Tabellenblatt: `Hinweise`**
- Wie die Excel-Spezifikation. Eine Zeile pro markierter Zelle.

**Tabellenblatt: `_schema`**
- Spaltendefinitionen aus `.review-schema.yaml`.

**Tabellenblatt: `_zusammenfassung`**
- Anzahlen, markierte Spalten, Verifizierungserinnerung.

## Sheets-spezifische Vorteile nutzen

- **Hyperlinks zu Quelldokumenten.** Wenn die geprüften Dokumente in Drive liegen (üblich bei VDR-Exporten und internen Repositories), sollte der Dokumentname in jeder Zeile ein Hyperlink zur Datei sein. Dies ist das Click-to-Source-Muster, das Sheets nativ unterstützt.
- **Geteilte Prüfung.** Sheets verarbeitet gleichzeitige Prüfungen besser als eine lokale `.xlsx`. Wenn das Deal-Team die Verifizierungsarbeit aufteilen möchte, ist dies das geeignete Format.
- **Benannte Bereiche für das Schema.** Definieren Sie für jede Spalte einen benannten Bereich, damit nachgelagerte Formeln (Pivot-Tabellen, bedingte Zählungen) lesbar sind.
- **Bedingte Formatierung über Statusspalte.** Wenn Sie eine ausgeblendete `_status`-Spalte pro Datenspalte schreiben, können Sie die Farbkodierung daraus mit Regeln für bedingte Formatierung steuern — sauberer als zellenweise Formatierung und überlebt das Sortieren.

## Sheets-spezifische Fallstricke

- **Notizen sind pro Zelle und im Druck unsichtbar.** Wenn die Ausgabe für ein Partner-Meeting gedruckt oder als PDF erstellt wird, die Zitate auch in das `Hinweise`-Tabellenblatt schreiben, damit sie erhalten bleiben.
- **Sheets hat ein Limit von 10 Millionen Zellen.** Bei einer juristischen Prüfung wird dieses Limit nicht erreicht. Wenn jedoch jemand 50.000 Dokumente mit 30 Spalten plus Quellspalten zu einem Raster zusammenfassen möchte, darauf hinweisen.
- **Freigabe-Standardeinstellungen.** Gemäß dem Plugin-Praxisprofil handelt es sich um anwaltliches Arbeitsprodukt. Die Tabelle mit eingeschränkter Freigabe erstellen (nur Eigentümer), und den Benutzer auffordern, sie bewusst freizugeben. Nicht standardmäßig auf „Jeder mit dem Link" setzen.
- **Formel-Maskierung.** Wenn ein wörtliches Zitat mit `=`, `+`, `-` oder `@` beginnt, ein einfaches Anführungszeichen (`'`) voranstellen, damit Sheets es nicht als Formel interpretiert. Dies ist ein realer Fehlerfall: Eine Vertragsklausel, die mit „- Die Parteien vereinbaren..." beginnt, führt ohne die Maskierung zu einem Formelfehler.

## Was zu vermeiden ist

Wie in der Excel-Spezifikation: Keine Konfidenzprozentsätze, keine abgeschnittenen Zitate, keine zusammengeführten Zellen im Datenbereich, und immer die Tabellenblätter `_schema` und `_zusammenfassung` schreiben.


## Schutz vor Formel-Injection

Vor dem Schreiben einer Zelle in Excel-, Sheets- oder CSV-Ausgabe sind Formel-Injections zu neutralisieren. Texte der Gegenseite (Vertragsauszüge, Parteinamen, Daten aus dem Handelsregister, CLM-Exporte) sind potenziell angreiferkontrolliert. Eine Zelle, die mit `=`, `+`, `-`, `@`, `\t`, `\r` oder `\n` beginnt, wird als Formel interpretiert oder bricht die Zeilenstruktur auf.

- **Voranstellen eines einfachen Anführungszeichens:** `'=SUMME(A1:A10)` → `=SUMME(A1:A10)` (wird als Text angezeigt, nicht ausgeführt)
- **Gilt für jede Zelle, die Text aus einem Dokument, einem Werkzeugergebnis oder einer Benutzereingabe enthält.** Von Ihnen selbst verfasste Spaltenüberschriften und selbst berechnete Werte sind sicher.
- **CSV: Eingebettete Kommas, doppelte Anführungszeichen und Zeilenumbrüche ebenfalls maskieren** (RFC 4180-Maskierung).
- Dies ist nicht optional. Eine Tabelle, die der Benutzer in Excel öffnet und die ein Makro auslöst oder Daten über DDE ausleitet, ist ein Supply-Chain-Angriff auf den Benutzer.
