.xls ist das binary Format von Excel (1997-2003), das anfälliger für Beschädigungen und Kompatibilitätsprobleme ist.
.xlsx ist das moderne XML-basierte Format (ab Excel 2007), das robuster und besser mit externen Tools (wie PHP-Bibliotheken) funktioniert.
utomatisierung
Falls du häufiger mit solchen Dateien arbeitest, könntest du die Konvertierung automatisieren:
# Mit LibreOffice-Kommandozeile (kopfgesteuert)
soffice --headless --convert-to xlsx:"Excel 2007-365" datei.xls --outdir /zielverzeichnis/
Das spart manuelles Öffnen und Speichern.
Normaler Suchen/Ersetzen-Dialog. Wichtig: RegEx einschalten
Dann ersetzen:
Normaler Suchen/Ersetzen-Dialog. Wichtig: RegEx einschalten
Suchen: \([^{}]*\)
Ersetzen durch nichts
Alle Adressen sind in einer Zelle, mit Zeilenumbruch getrennt.
Zwei Schritte: 1. erst Zeilumbruch in was anderes umwandeln (z.B. ||| ) und
2. Dann Text in Spalten umwandeln
Grund: 'Text in Spalten' nimmt keine RegEx/Zeilenumbrüche. Das muss man vorher durch Ersetzen machen.
Suchen und Ersetzen zuerst Strg+H (Suchen und Ersetzen)
Suchen nach: Strg+J eingeben (BEI MIR: \n)
Ersetzen mit: z.B. ||| (ein eindeutiges Trennzeichen)
Dann „Text in Spalten“ mit ||| als Trennzeichen verwenden
Markieren Sie die Zellen, die Sie aufteilen möchten
Gehen Sie zu Daten → Text in Spalten
Im Dialogfeld:
Bei Trennoptionen wählen Sie Getrennt
Aktivieren Sie Andere und geben Sie |||
Klicken Sie auf OK
Am Anfang ist bei vielen Zellen noch der Ortsteil (OT) angegeben. Die ganze Zeile muss weg (erst machen, NACHDEM der Zeilenumbruch zu ||| umgewandelt wurde!
Lösung mit Regulären Ausdrücken: Strg+H öffnen (Suchen und Ersetzen)
Weitere Optionen anklicken
Reguläre Ausdrücke aktivieren ✅
Regex Pattern: text
| OT[ | \ | ]+\ | \ | \ |
|---|
Ersetzen mit: (leer lassen)
Erklärung des Regex:
OT = Literal „OT“
[^\|]+ = Ein oder mehrere Zeichen die kein | sind
\|\|\| = Drei Pipe-Zeichen (|||)
Alternative Patterns falls nötig: Wenn „OT“ nicht immer am Zeilenanfang steht:
text OT[^\|]+\|\|\| Wenn unterschiedliche Trennzeichen:
text OT[^|]+\|\|\| Wenn Leerzeichen variieren:
text OT\s+[^\|]+\|\|\| Schritt-für-Schritt: Dialog öffnen: Strg+H
„Weitere Optionen“ expandieren
☑ Reguläre Ausdrücke aktivieren
In Suchen nach: ^OT[^\|]+\|\|\|
Ersetzen mit: (leer lassen)
Alle ersetzen klicken
Testen vorher: Kopieren Sie vorher eine betroffene Zeile in ein neues Dokument zum Testen, z.B.: OT Siethen|||Rest des Textes
Nach dem Ersetzen sollte nur noch Rest des Textes übrig bleiben.
Das sollte alle unerwünschten „OT XXX|||“-Teile zuverlässig entfernen!
Dynamische Bilder in Serienbriefen von OOo
Datenbank (ODBC) einbinden (Linux): http://www.uni-koeln.de/rrzk/kompass/108/k10814.html
Problem: Im Serienbrief soll ein Bild eingebunden werden, das aus der Datenbank kommt. Das Bild wechselt also immer.
Lösung(z.T.): In MS-Word gibt es dazu einen Befehl. OpenOffice (bis 3) unterstützt diese Funktion nicht. Bleibt nur, in der eigebauten Skriptsprache ein Makro zu schreiben.
Hier hat jemand genau das Problem gelöst: http://www.oooforum.org/forum/viewtopic.phtml?t=73329
Der hier löst das Problem fast mit einer Form, die ein Bild enthält: http://sheepdogguides.com/fdb/fdb1imagbp.htm
Andere interessante Links dazu: