← Alle Beiträge

Office-Dateien bearbeiten, ohne sie zu zerstören

Word, Excel und PowerPoint sind ZIP-Archive aus XML. So änderst du den Text und behältst jede Schriftart, Tabelle und Grafik intakt.

  • OOXML
  • Dokumente
  • macOS

Eine .docx ist nur ein ZIP aus XML. Das klingt einfach — bis man Text ersetzt und zusieht, wie die Formatierung explodiert. Office-Dokumente auf dem Gerät zu übersetzen (Bobr Translate) hat mich gelehrt, dass das Ziel nicht ist, die Datei zu parsen, sondern so wenig wie möglich von ihr anzufassen.

In den „Runs“ versteckt sich die Formatierung

Word zerlegt einen Satz in „Runs“ — Abschnitte, die jeweils ihre eigene Formatierung tragen. „Hallo Welt“ können drei Runs sein, weil die Rechtschreibprüfung einst daran gestupst hat. Übersetze Run für Run und du bekommst fragmentierten Unsinn; flache alles in einen Run und du verlierst das Fett. Der Zug ist, benachbarte Runs mit gleicher Formatierung zu verschmelzen, den verschmolzenen Text zu transformieren und ihn dann in den ersten Run zurückzuschreiben, während der Rest geleert wird.

Fass nicht an, was du nicht verstehst

Tabellen, Diagramme, Zeichnungen, Fußnoten, Hyperlinks — jedes lebt in seinem eigenen XML-Teil mit eigenen Regeln. Die sichere Regel ist brutal und einfach: Schreibe nur die Textknoten neu, die du zweifelsfrei identifizieren kannst (w:t in Word, a:t in PowerPoint, die Shared-String-Tabelle in Excel), und lass jedes andere Byte genau so, wie du es vorgefunden hast.

Excel hält seinen Text in einer gemeinsamen Tabelle

Excel speichert Zeichenketten einmal in sharedStrings.xml und referenziert sie per Index aus den Zellen. Schreibe einen Eintrag um und du änderst jede Zelle, die darauf zeigt — effizient, aber achte auf Inline-Strings und fass niemals, wirklich niemals, Formelzellen an.

Verifiziere durch erneutes Öffnen, nicht durch Diffen

Der einzige Test, der zählt: Öffnet Office das Ergebnis ohne den Dialog „Wir haben ein Problem gefunden, reparieren?“? XML-Diffs lügen; die echten Apps sind die Wahrheit. Schick jede Probe durch echtes Word, Excel und PowerPoint, bevor du der Pipeline vertraust.

Alles-bewahren schlägt alles-parsen. Fass den Text an, fürchte den Rest.