Frage stellen
0

Dateien nachträglich konvertieren?

gefragt 2019-10-03 14:15:37 +0200

jnanon@arcor.de Gravatar-Bild

Beim Start mit Calc (auf Basis xlsx-Format) hatte ich Probleme mit Verknüpfungen. Diese konnte ich beseitigen, indem ich die Dateien vorher im ods-Format abspeicherte.

Nun stellt sich mir die Frage, wie ich mit meinen Dateien aus 2 "Welten" zukünftig umgehe.

Anfangs (beim Start mit LibreOffice) gab ich an, im xlsx-Format bleiben zu wollen. Kann ich das in den Einstellungen irgendwo ändern? ZB. automatisches Öffnen von xlsx-Daten im ods-Format und automatisches Speichern im ods-Format?

Aber dann stehen überall ungenutzte xslx-Daten rum, die nur Platz und Übersicht nehmen.

Wie geht man am Sinnvollsten mit dieser Situation um?

Bearbeiten Tags ändern Melden schließen vereinen löschen

3 Antworten

1

geantwortet 2019-10-06 15:26:43 +0200

Cookievore Gravatar-Bild

updated 2019-10-06 15:29:16 +0200

Dann fasse ich noch mal zusammen.

@Opaque , danke für den Ansatz, eine Konvertierung über die Konsole zu automatisieren.

jnanon@arcor.de , ich denke, diese 'Anfangsentscheidung' ist dahingehend geklärt, dass der Installationsassistent LibreOffice für alle Microsoft Office Dokumente zuständig macht. Kann man rückgängig machen, ist aber auf einem PC nur mit LO weder nützlich noch erforderlich, um zukünftig in erster Linie mit ODF-Dateien zu arbeiten. Auf das Handling von Dateien 'aus zwei Welten' ist Opaque schon einmal mehr ausführlich eingegangen.

Da es im Sinne der Fragestellung keinen Automatismus in LO gibt, ist eine mögliche Lösung die Konvertierung aller Microsoft Office Dokumente mit Hilfe eines Scriptes abseits von LO, in dem LibreOffice auf der Kommandozeile mit entsprechenden Parametern aufgerufen wird. (Um nicht jede Datei einzeln manuell öffnen und mit 'Speichern unter' als konvertierte ODF-Datei ablegen zu müssen.)

Wenn man dies verzeichnisweise angehen möchte, folgt hier eine mögliche Lösung:

Das Hauptscript (convert.cmd):

Forfiles /P "%cd%" /M *.xlsx /C "cmd /c loconvert_ods.cmd @file"
Forfiles /P "%cd%" /M *.xls /C "cmd /c loconvert_ods.cmd @file"
Forfiles /P "%cd%" /M *.docx /C "cmd /c loconvert_odt.cmd @file"
Forfiles /P "%cd%" /M *.doc /C "cmd /c loconvert_odt.cmd @file"
Forfiles /P "%cd%" /M *.pptx /C "cmd /c loconvert_odp.cmd @file"
Forfiles /P "%cd%" /M *.ppt /C "cmd /c loconvert_odp.cmd @file"
REM pause

Hilfsscripte: (loconvert_ods.cmd)

"C:\Program Files (x86)\LibreOffice\program\soffice.exe" --convert-to ods %1

(loconvert_odt.cmd)

"C:\Program Files (x86)\LibreOffice\program\soffice.exe" --convert-to odt %1

(loconvert_odp.cmd)

"C:\Program Files (x86)\LibreOffice\program\soffice.exe" --convert-to odp %1

Es stecken ein paar Annahmen drin. Kennwortgeschützte Dateien können so nicht konvertiert werden. Das Script geht über diese Dateien schlicht hinweg. Solche Dateien müssen manuell konvertiert werden. Es gibt kein Log von den Scriptaktivitäten. Ebenso werden keine Rückgabewerte ausgewertet. Das Ergebnis muss also selbst geprüft werden.

Windows hat Probleme in einem Konsolenfenster (aka DOS-Box), mit Leerzeichen sowie Umlauten (allgemeiner: Sonderzeichen) in Pfaden und Dateinamen umzugehen. Deshalb funktioniert das ganze nur, wenn die cmd-Scripte in das zu konvertierende Verzeichnis gestellt und dort gestartet werden. Falls es nicht wie gewünscht läuft, kann man das 'REM' vor pause entfernen und die Ausgabe prüfen.

Das Dateidatum der zu konvertierenden Datei bleibt nicht erhalten, da die konvertierte Datei eine neue, in dem Moment erstellte Datei ist.

Alle ursprünglichen Microsoft Office Dateien bleiben unverändert erhalten. Sicherung, Archivierung, Bereinigung usw. müssen dann auf anderem Wege erledigt werden.

Wer nur bestimmte MS Office-Dokumenttypen konvertieren möchte, müsste die entsprechenden Zeilen im Hauptscript belassen und den Rest auskommentieren (REM davor setzen) oder löschen.

Dieses Set ist auf Windows 32/64 Bit und LibreOffice 32 Bit ausgerichtet. Der Pfad "C:\Program Files (x86)\LibreOffice\program\soffice.exe" lautet ansonsten für das 64-Bit LO "C:\Program Files\LibreOffice\program\soffice.exe".

Testweise sieht das Ergebnis so aus: Testweise sieht das Ergebnis so aus:

Cookievore

Bearbeiten Melden löschen Link mehr

Kommentare

jnanon@arcor.de Bitte markiere diese Antwort als die korrekte. @Cookievore hat Dir hier geholfen und daher gebühren ihm auch die Karmapunkte,

Opaque Gravatar-BildOpaque ( 2019-10-06 16:49:04 +0200 )Bearbeiten
1

geantwortet 2019-10-06 17:16:58 +0200

FraKa Gravatar-Bild

Es geht viel einfacher, als mit einem komplizierten Skript!

Im Menü unter "Datei" > "Assistenten" > "Dokument-Konverter" findet man alles, was man braucht. Da kann man Office Dokumente ganz einfach per Assistent konvertieren und das auch noch über alle Unterverzeichnisse hinweg. Es geht für Word, Excel und Powerpoint Dateien sowie deren Templates.

Man kann also ein relativ "hohes Verzeichnis" eingaben, also am Anfang der Ordnerstruktur und der Assistent geht alle darunter liegenden Verzeichnisse durch und konvertiert ins Libre-Format.

Ohne Batch, ohne alles - ganz einfach!

Bearbeiten Melden löschen Link mehr

Kommentare

Hallo - sehr guter Hinweis, allerdings muss man dann auch auf diese Seite verweisen. Da gibt es eine Einschränkung auf die alten MS Office Dokument-Formate (.doc, .xls, .ppt) und OP spricht in der Frage explizit von .xlsx.

Opaque Gravatar-BildOpaque ( 2019-10-06 17:32:48 +0200 )Bearbeiten

Danke für die Klärung, die Einschränkung auf das alte Format hatte ich tatsächlich übersehen!

FraKa Gravatar-BildFraKa ( 2019-10-06 19:05:40 +0200 )Bearbeiten

Funktioniert aber inzwischen auch mit xlsx, docx und pptx, steht nur (noch) nicht in der Doku. Vorhin probiert. Nur die versprochene Log-Datei klappt nicht. Man könnte noch einwenden, dass es nicht selektiv für alt / neu ist. Wenn Word spezifiziert wird, dann gleich doc und docx zusammen. Den Assistenten kannte ich nicht (logisch, sonst hätte ich mir die Mühe mit dem Script nicht gemacht). Danke auch von mir für den Hinweis.

Cookievore Gravatar-BildCookievore ( 2019-10-06 19:25:39 +0200 )Bearbeiten

Bei mir hat auch die Log-Datei funktioniert. Man kann es im Dialog wählen oder abwählen. Dateien mit Kennworten werden auch hier ohne Hinweis übergangen. Aber sie werden im Logfile auch nicht als konvertiert gelistet. Auch ich bedanke mich für den Hinweis auf den Assistenzen. Diese Lösung ist natürlich bei weitem angenehmer.

jnanon@arcor.de Gravatar-Bildjnanon@arcor.de ( 2019-10-07 16:26:26 +0200 )Bearbeiten
1

geantwortet 2019-10-03 14:46:34 +0200

Opaque Gravatar-Bild

updated 2019-10-03 14:53:19 +0200

Hallo

prinzipiell gilt - und das eigentlich nicht nur für LibreOffice - dass man grundsätzlich im nativen Format der Anwendung arbeitet und das heisst im Falle von LibreOffice eben im OpenDocument Format (.ods, .odt, .odp, etc ...). Fremdformate sollte man nur zum Datenaustausch verwenden und Änderungen aber im nativen Format nachtragen (Ganz schlecht ist: .ods -> xlsx -> .ods -> xlsx ..., da kannst Du definitv davon ausgehen irgendwann ein Problem zu bekommen).

Die Entscheidung am Anfang Deiner "LibreOffice-Karriere" war also in diesem Sinne keine gute Entscheidung. Die bestehenden .xlsx Dateien würde ich in Deinem Falle alle einmal laden und im nativen Format abspeichern (Save As) und wenn alles gut gegangen ist, kannst Du die .xlsx Dateien anschließend löschen (muss ja nicht sofort sein, könntest ja Problem mit der Konvertierung eventuell auch erst später bemerken). Am Rande: Man kann auch das im Prinzip auch automatisieren, da man LibreOffice an der Kommanzeile aufrufen kann (Batch, Skripte; Kommando libreoffice6.3 --convert-to ods {pfad zur xlsx Datei}).

Zur Änderung des Default Format beim Speichern neuer Dateien: Extra -> Optionen -> Laden/Speichern -> Kategorie: Einstellungen für das Stamdarddateiformat und ODF. Da kannst Du für jeden Dokumenttyp festlegen, was Du haben willst.

Und eines bleibt noch offen: Öffnest Du eine .xlsx Datei, und drückst auf den Speichern Button (nicht Speichern als) dann bleibt es bei .xlsx auch wenn Du wie oben beschrieben, ein anderes Dateiformat als Standard angegeben hast. Um als für bestehende und geöffnete Datei ein anderes Format zu erwzingen, musst Du definitv Spechern als verwenden und das neue Format angeben/auswählen.

Ich hoffe das hilt ein wenig.

Bearbeiten Melden löschen Link mehr

Kommentare

Vielen Dank für die ausführliche Antwort!

Da ich beim Aufbau des neuen Win10-PC sehr viele Office-Dateien an viele Plätze übertragen habe, davon aber nur wenige im ods-Format geändert wurden, könnte es vielleicht praktischer sein, die wenigen ods-Dateien extern zu sichern, und mit LibreOffice ganz neu anzufangen.

Nach einem Neuanfang könnte ich dann auf die gesicherten ods-Dateien zurückgreifen.

Wie könnte das gehen? Deinstallieren und neu installieren, um dann die Entscheidung (s.o.) richtig zu treffen? Oder sind andere bessere Wege bekannt?

Außerdem: welche wichtigen, später nicht änderbaren Entscheidungen sollte ich zudem noch kennen, bevor ich mit LibreOffice neu beginne?

Einen weiterhin schönen Feiertag!

jnanon@arcor.de Gravatar-Bildjnanon@arcor.de ( 2019-10-03 19:06:21 +0200 )Bearbeiten

Hallo - das mit dem Plan "Deinstallieren und neuinstallieren" verstehe ich nicht. Wie in meiner Antwort geschrieben, kannst Du das Standardformat unter dem gespeichert werden soll jederzeit umstellen. Von welcher Entscheidung bei Neuinstallation Du da sprichst verstehe ich gar nicht und wenn da irgendwas eingestellt hilft eine Neuinstallation in der Regel sowieso nichts, da solche Einstellungen Im Benutzerprofil stehen, dass bei einer Neuinstallation überhaupt nicht angefasst wird (Mir fällt nur ein, dass man bei der Neuinstallation eventuell die Zurodnung von MS Office Dokumentenformaten wie .xlsx etc. zu LibreOffice festlegen könnte. Das weiß ich nicht so ganz genau nicht, da ich MS Office schon lange nicht mehr verwendet habe und Windows eher meide. Das hätte allerdings auch keinen Einfluß auf das Thema hier)

Opaque Gravatar-BildOpaque ( 2019-10-03 19:14:56 +0200 )Bearbeiten

Hallo jnanon, ich vermute, mit Anfangs (beim Start mit LibreOffice) gab ich an, im xlsx-Format bleiben zu wollen. meinst Du die Entscheidung beim Installationsassistenten, dass LO sich für die Microsoft Office Dateien zuständig fühlen soll. Es besteht aus meiner Sicht keine Notwendigkeit, diese Wahl rückgängig zu machen. Es bedeutet lediglich, dass ein Doppelklick auf z.B. eine docx Datei, diese Datei in Writer öffnet. Solange Du nicht noch parallel auf dem Windows 10 PC ein MS Office mit Word und Exel laufen hast, würde ich mir diesen Komfort an Deiner Stelle nicht nehmen.

Und für den anderen Aspekt hat Opaque doch schon einen gut gangbaren Weg aufgezeigt. MSO Dateien öffnen und mit Speichern unter im ODF Format ablegen, unter Extras > Optionen > Allgemein > Laden / Speichern für alle Dokumententypen als Standard das jeweilige ODF-Format festlegen. MSO-Dateien (ggf. extern) sichern. Einfaches De- / Reinstallieren würde den Std-Dok-Typ übrigens nicht ändern.

Cookievore Gravatar-BildCookievore ( 2019-10-03 19:23:54 +0200 )Bearbeiten

Cheers, da war Opaque zum Thema 'neu installieren und Anfangsentscheidungen' schneller ,-)

@Opaque , Deinen Ansatz mit Script finde ich interessant für so einen Systemwechsel. Für LO mit einer cmd könnte es so ausschauen:

  1. Datei 'loconvert_ods.cmd': "C:\Program Files (x86)\LibreOffice\program\soffice.exe" --convert-to ods %1

  2. Datei 'loconvert_odt.cmd': "C:\Program Files (x86)\LibreOffice\program\soffice.exe" --convert-to odt %1

  3. Datei 'convert.cmd':

Forfiles /P "%cd%" /M *.xlsx /C "cmd /c %cd%\loconvert_ods.cmd @file"

Forfiles /P "%cd%" /M *.docx /C "cmd /c %cd%\loconvert_odt.cmd @file"

Das 3er-Set jeweils in das gewünschte Verzeichnis kopieren und mit Dopplel-Klick convert.cmd aufrufen. Kann man nach belieben um xls, ppt, usw. erweitern. Das die eine cmd, die anderen startet muss sein, da Forfiles sonst mit dem Aufruf von soffice.exe + Parameter nicht klar kommt. libreoffice6.3 geht in Windows übrigens nicht. O.g. Pfad gilt für LO 32 Bit.

Cookievore Gravatar-BildCookievore ( 2019-10-03 20:51:19 +0200 )Bearbeiten

Ergänzung: Funktioniert nicht mit kennwortgeschützten Dateien.

Cookievore Gravatar-BildCookievore ( 2019-10-03 20:53:08 +0200 )Bearbeiten

Da ich viele (hunderte bis tausende) Office-Dokumente habe, ist Batch-Verarbeitung sicher eine gute Idee. Nur kommt erschwerend hinzu, dass sich die Dokumente in einer vielfältigen Ordnerstruktur befinden.

Was Cookievore oben anbietet, ist sicher gut, aber für mich (bei meinen laienhaften Kenntnissen) so nicht umsetzbar. Ich brauchte da wirklich einfache(re) Handlungsanweisungen.

Außerdem irritiert mich im vorletzten Kommentar eine kurze Anmerkung: "Libreoffice6.3 geht in Windows übrigens nicht". Ich habe unter Win10 (64bit) LibreOffice6.3 installiert. Spricht da wirklich etwas gegen?

Zum letzten Kommentar, zu schreibgeschützten Dolumenten: Ich habe tatsächlich einige wenige schreibgeschützte Dokumente vertreut in der Ordnerstruktur. Diese Wenigen könnten natürlich "manuell" mit Speichern unter konvertiert werden. Nur was passiert innerhalb eines Batchlaufes, wenn dieser auf so ein schreibgeschütztes Dokument stößt? Bricht dann alles ab?

jnanon@arcor.de Gravatar-Bildjnanon@arcor.de ( 2019-10-04 11:45:48 +0200 )Bearbeiten

Den Befehl Libreoffice6.3 gibt es unter Windows nicht. So nur unter Linux. Unter Windows ist es der o.g. längliche Pfad zu soffice.exe um die Konvertierung über die Kommandozeile durchzuführen. Würde die auch hochladen, geht aber mit meinem Karma in Kommentaren nicht.

Mit sehr viel mehr Aufwand kann man sicher auch einen rekursiven Algorithmus schreiben, der durch alle Verzeichnisse geht. Das wird aber OT für diese Plattform, die sich auf die Nutzung von LO fokussiert.

Wenn das Script auf eine schreibgeschützte Datei trifft, passiert genau nichts. Ich habe das in dem Script nicht abgefangen. Diese Datei wird eben nicht konvertiert. Das war's.

Hatte auch ähnlich viele (>4.000) Office-Dokumente zu konvertieren. Auch in reichlich Unterverzeichnissen verteilt. Das Gros habe ich in einer Aktion erledigt, verzeichnisweise. Und der Rest war immer dann dran, wenn ich wieder auf ein unkonvertiertes Verzeichnis gestoßen bin. Aber vielleicht findest Du eine bessere ...(mehr)

Cookievore Gravatar-BildCookievore ( 2019-10-04 12:56:16 +0200 )Bearbeiten

ich würde gerne eine Großaktion starten, mit den von Dir beschriebenen Kommandozeilen. Leider passiert aber beim Versuch (Doppelklick auf die Datei convert.cmd) nichts, außer dem kurzen Aufblenden eines schwarzen Fensters, in dem einige Befehle ablaufen. Läuft zu schnell, um Genaues zu erkennen. Jedenfalls befindet sich im Ordner der Ausführung keine konvertierte .ods-Datei. Das war doch der Sinn der Übung. Kann es sein, dass sich der Aufbau der Befehle ändert, weil ich mit der Version LibreOffice6.3 mit 64 bis arbeite? Ich gebe die Dateiinhalte hier zur Prüfung wider: 1. Datei 'loconvert_ods.cmd': "C:\Program Files\LibreOffice\program\soffice.exe" --convert-to ods %1 2. Datei 'convert.cmd': Forfiles /P "%cd%" /M *.xlsx /C "cmd /c %cd%\loconvert_ods.cmd @file"

Vielleicht gibt es einen einfachen Formatfehler?

jnanon@arcor.de Gravatar-Bildjnanon@arcor.de ( 2019-10-04 20:40:59 +0200 )Bearbeiten

Sieht eigentlich gut aus. 2 Dateien, Pfad soffice.exe entspricht Deinem 64-Bit Windows 10, da hätte ich nur die Idee, dass es sich bei Deinen Dateien vielleicht nicht um .xlsx, sondern um .xls handelt oder dass die beiden cmd-Dateien nicht im selben Ordner mit den zu konvertierenden Dateien stehen?

Wenn Du sehen willst, welche Ausgaben das Script liefert, müsste es manuel in einer Konsole gestartet werden. Win + R, cmd, Enter, mit cd <Verzeichnisname> zu einem Verzeichnis mit den zu konvertierenden Dateien hangeln, convert.cmd, Enter.

Cookievore Gravatar-BildCookievore ( 2019-10-04 22:27:32 +0200 )Bearbeiten

Also Leute - seid mir bitte nicht böse, aber das ist doch Blödsinn ein Shellscript per Doppelklick zu starten und so jeden Fehler unsichtbar zu machen dem man sonst im Kommandfenster hätte.

Opaque Gravatar-BildOpaque ( 2019-10-04 23:16:53 +0200 )Bearbeiten
Registrieren oder einloggen, um zu antworten

Antwortwerkzeuge

1 Beobachter

Statistik

Gefragt: 2019-10-03 14:15:37 +0200

Angesehen: 48 Mal

Aktualisiert: Oct 06