Bibliothek zum Bearbeiten von odt und ods Dateien?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
bernd13
User
Beiträge: 26
Registriert: Sonntag 25. Juni 2023, 11:13

Hallo,
ich will das Erstellen von bestimmten Dokumenten, wo ich eh immer nur bestimmte Textteile austausche, automatisieren.
Hierzu will ich aus einer ods Tabelle auslesen , mit was der Text ersetzt werden soll und dann in einer Kopie der odt Datei die Ersetzung vornehmen.

Soweit so gut aber ich bekomme es nicht mit den (nicht?) vorhandenen bibliotheken auf die Reihe.

Ich habe von python fast keine Ahnung, bisher immer Java genutzt, daher habe ich mir von chatgpt Ideen geben lassen.

ich habe es schon mit odf versucht, mit pyexcel_ods, dann mit pyexcel_ods3 weil das Alte scheinbar nicht mehr geht, etc.
Bei pyexcel_ods3 kann ich mir mal wenigstens die zelleninhalte verändern und ausdrucken lassen, das habe ich hinbekommen.
Sieht so aus bisher:

Code: Alles auswählen

import pyexcel_ods3 as pe 
from pyexcel_ods3 import save_data 
from pyexcel_ods3 import get_data 
file_name = "file.ods" 
sheet_name = "Sheet1" 
file = pe.get_data(file_name) 
sheet1 = file[sheet_name] 
for row in range(len(sheet1)): 
  for col in range(len(sheet1[row])): 
    list=str(sheet1[row][col]).split(".")
    print(list)
    #print(list[0])
    #print(list[1])
    newstring=str(3*int(list[0]))+","+str(3*int(list[1]))
    print(newstring)
    #sheet1[row][col]=newstring
    #print(sheet1[row][col], end=" ") 
    print() 
sheet1.save_as("another_file.ods")

Die veränderten Inhalte aber wieder in eien Datei zu speichern scheitert, der save_as Befehel geht einfach nicht, weder file noch sheet kennt den Befehl.

Bzgl. odt direkt habe ich noch gar nichts hinbekommen, bekomme es mit den 2 genannten Biblioheken einfach nicht gebacken.
habe auch gegoogelt und finde irgendwie aber keine Bibliothek die sich eifnach direkt mit dem Verändern von odt Dateien befasst.

und wenn, gibt es praktisch keine Dokumentation ausser dem Dateien und Ordnerchaos, das man sich auf github angucken kann und wo irgendwie irgendwo irgendwann wohl auch die passende Funktion in Quellcodebergen versteckt ist.


Insofern, kann mir bitte Jemand eine gute Bibliothek empfehlen, mit der ich odt und ods Dateien auslesen, ändern und wieder abspeichern kann?
Pakete mit pip installieren ist übrigens kein Problem.

Danke im Voraus!
nezzcarth
User
Beiträge: 1764
Registriert: Samstag 16. April 2011, 12:47

OpenDocument Files sind im Kern Zip-Archive, die im Wesentlichen aus XML-Dateien bestehen und eine spezifische interne Struktur aufweisen. Ich kann mir vorstellen, dass es deswegen so ist, wie du es beschreibst. Denn im Prinzip kann man OD*-Dateien daher mit Python-Bordmitteln aus der Standardbibliothek bearbeiten, erfindet dabei aber ggf. das Rad teilweise neu und kommt zu einer weniger soliden Lösung. Eine Bibliothek kann es natürlich deutlich komfortabler in der Handhabung machen – wenn sie denn zuverlässig funktioniert.
Benutzeravatar
pixewakb
User
Beiträge: 1413
Registriert: Sonntag 24. April 2011, 19:43

Die Bearbeitung mit Boardmitteln hatte ich mal bei LibreOffice-Draw-Dokumenten gemacht und kann sagen, dass es sich nicht schön anfühlte.

Hast du die Bibliotheken zur Arbeit mit Word- und Excel-Dokumenten im Blick? Z. B. openpyxl ?

Inzwischen arbeite ich mit xlsx- und docx-Dateien mit Python und öffne sie dann in LibreOffice, um sie weiterzuverarbeiten. Das ist ein guter Kompromiss, wenn du nicht viele Dokumente bearbeiten oder erzeugen möchtest.
Antworten