Seite 1 von 1

Hilfe / Problem Mit docx

Verfasst: Freitag 21. April 2023, 08:05
von Avvake21291
hallo ich bin dabei eine software zu programieren die es mir ermöglicht rechnungen für meine öffentliche ladeseule zu erstellen.

darum möchte ich mir ein document erstellen wo dan die daten rein genommen wird aller dings hänge ich daran die gröse meiner überschrift zu ändern.
ich habe schon bestimmt 1000 verschiedene sachen probiert ich bekomme es nicht hin.

ich bin für jede hilfe sehr dankbar.

Hir der ausschnit des codes wo ich das ändern die überschrift in dem fall "Rechnung " nicht geändert bekomme:

tag = date.today()
#überschrift im header grässe ändern
document = Document()
header = document.sections[0].header
header.paragraphs[0].text = "\tRechnung"
header.style = document.styles["Heading 1"] #hir habe ich schon verschiedene versuche gemacht nen anderes grund style zu nehmen aber nichts geht


document.add_paragraph("max mustermann")
document.add_paragraph("musterstrasse 1")
document.add_paragraph("12345 Musterhausen")
document.add_paragraph(" ")
document.add_paragraph("{} {}".format(str(ent_Vorname.get()), str(ent_Nachname.get())))
document.add_paragraph("{} {}".format(str(ent_Strasse.get()),str(ent_Hausnummer.get())))
document.add_paragraph("{} {}".format(str(ent_Plz.get()),str(ent_Ort.get())))
document.add_paragraph(" \t\t\t\t\t\t\t\t{}".format(tag.strftime("%d.%m.%y")))
document.add_paragraph("Rechnungs Nr: {} ".format(str(ent_rechnungsnummer.get())))
document.add_paragraph(" ")
document.add_paragraph("Sehr geehrte\geeherter Frau\Herr {} ,".format(ent_Nachname.get()))
document.add_paragraph("vielen Dank, für ihre E-Ladungen an unserer Ladeseule. Vereinbarungsgemäß berechnen wir ihnen hirmit folgende KW/h. ")


ps: für die rechtschreib fehler möchte ich mich endschuldigen.

MFG
Avvake21291

Re: Hilfe / Problem Mit docx

Verfasst: Freitag 21. April 2023, 08:57
von Sirius3
Laut Dokumentation haben nur Paragraphen ein style-Attribut.
Heutzutage benutzt man f-Strings, die vielen str-Aufrufe sind überflüssig.
Variablennamen schreibt man komplett klein; die ent_-Präfixe sollten entweder gar nicht da sein, oder keine Abkürzung sein.
Dieses unsägliche Hausnummern-Feld extra zu haben, ist totaler Quatsch. Es gibt genug Addressen, wo eine Hausnummer nicht existiert, oder ganz anders aussieht. Ein Strassenfeld inkl. Hausnummer reicht völlig.
Das Jahr sollte immer mit 4 Ziffern dargestellt werden. Formatierung mit vielen Tabs ist nicht so toll. Dafür gibt es in Word doch die Styles!

Code: Alles auswählen

    today = date.today()
    document = Document()
    paragraph = document.sections[0].header.paragraphs[0]
    paragraph.text = "\tRechnung"
    paragraph.style = document.styles["Heading 1"]

    document.add_paragraph("max mustermann")
    document.add_paragraph("musterstrasse 1")
    document.add_paragraph("12345 Musterhausen")
    document.add_paragraph(" ")
    document.add_paragraph(f"{entry_vorname.get()} {entry_nachname.get()}")
    document.add_paragraph(entry_strasse.get())
    document.add_paragraph(f"{entry_plz.get()} {entry_ort.get()}")
    document.add_paragraph(f"\t\t\t\t\t\t\t\t{today:%d.%m.%Y}")
    document.add_paragraph("Rechnungs Nr: {entry_rechnungsnummer.get()}")
    document.add_paragraph(" ")
    document.add_paragraph(f"Sehr geehrte/geeherter Frau/Herr {ent_nachname.get()},")
    document.add_paragraph("vielen Dank, für Ihre E-Ladungen an unserer Ladesäule. Vereinbarungsgemäß berechnen wir Ihnen hirmit folgende KW/h.")
Warum willst Du den Umweg über Word gehen? Es gibt genug Pakete, die direkt PDF erzeugen.
Ich persönlich finde ja https://weasyprint.org/ ganz angenehm, weil man damit relativ einfach per HTML und CSS die Seiten formatieren kann.