Für einen monatlichen DV-Job habe ich mir ein Script mit Python 3 erstellt. (Selbsteinschätzung: Anfänger mit Excel/Access-Kenntnissen und die Gabe, Lösungen zu finden auch wenn diese umständlich sind). Diesen kann ich zu 70 % per Python durchführen, vom Code kann ich vieles noch besser machen, Funktionen einbauen etc. Ich möchte jetzt die letzten 30% auch noch automatisieren. Und danach noch optimieren (den bisherigen Codeumfang reduzieren).
Aufgabe und Problembeschreibung:
Ich muss aus einer Excel-Tabelle Daten auslesen, daraus erstelle ich Druckproduktions-Daten und generiere Daten für die Dokumenterstellung (Lieferscheine; Produktionslisten etc.). Diese werden dann wieder als Excel-Tabelle bzw. die Lieferscheine als PDF-Dokument erstellt.
Die größte Hürde ist die Excel -Tabelle. In manchen Felder sind alle mögliche Satztrennungszeichen (Feste Umbrüche, Tabs, Semikolon etc) enthalten, welche dann bei der Umwandlung in CSV bzw. TXT zu einer fehlerhaften Struktur führen. Dieses löse ich direkt in Excel und wandle diese Zeichen um... (z.B. Zeichen 10 und 12 durch ein Leerzeichen ersetzen. Die zu vielen Leerzeichen werden dann mit der "Glätten"-Funktion bereiniget. Danach speichere ich diese Tabelle als CSV und danach wandle diese in txt um. Mit dem Speichern als CSV habe ich das Semikolon als Feldtrenner. Das umwandlen in TXT ist nur eine Vorsichtsmaßnahme). Wnn ich versehentlich die CSV aufmache, werden die Datenfelder mit einer führenden Null nicht als Text erkannt sondern als Zahl und "bereinigt" die führende Null. Beispiel. PLZ mit 01067 (Dresden) ist dann nur 1067.
Jetzt möchte ich diese manulle Vorgehen mit Python durchführen.
Frage zu diesem Punkt:
Kann es sein das für Python 3 noch kein Excel-Lib gibt? Muss ich dann mein Prog auf Python 2.x umwandeln. (xlrd-lib gibt es glaube ich dazu)
Kann man mit dieser Lib auch direkt auf Excel zugreifen bzw. auf die Feldinhalte.
Also Excel Tabelle öffnen, die fehlerhaften Satztrennzeichen in den Feldern umwandeln, zusätzliche Spalte einfügen und Befüllen und evtl. auch Sortierungen vornehmen usw.
Der zweite Punkt wäre die Dokument-Erstellung, am Ende als PDF. Im Moment gehe ich über die Serienbrief-Funktion von Word und speichere das erstellte Serienbrief-Dokument als PDF ab. Geht das evtl. auch mit Python?
Also direkt die Daten nehmen und ein PDF schreiben? Die PDF-Dokumente sind teilweise bis zu 800 Seiten (14 MB) groß. Auf jeder Seite kommt noch eine Firmenlogo mit drauf.
Ansonsten Text (Seriendruckfelder). Ich bin ja froh das dieses stabil über Word läuft... aber muss ich halt immer die neuen Daten verknüpfen, die Textdatei (spiele ich vorher noch in Excel ein, (Würde wohl auch mit Access besser gehen, aber die Macht der Gewohnheit/Dummheit

Habe schon was von reportlab gelesen, aber kann man damit auch Grafiken einfügen? Schafft das die OpenSoure-Version solch einen Dokumentenumfang?
Fragen zur PDF - Erstellung:
Was wäre jetzt der richtige Weg:
Umwandlen in Python 2.x, reportlab?
Oder sollte ich mir gleich Ironpython bzw. C# anschauen? Vermute mal das da der Zugriff besser geht.
Aber würde das gerne mit Python schaffen. Würde mich um ein Feedback freuen.