PyQt6, Interface zu Excel
Für dieses Python Programm ist folgende Bibliothek erforderlich:
pip install openpyxl (Version 3.1.3). Besuche
auch die Dokumentation.
Die Bibliothek "openpyxl" ist universell einsetzbar. Du kannst
sie auch in einer Konsolenapplikation einsetzen, indem du zusätzliche Menüzeilen einführst.
Weiterhin besteht hier der Vorteil, dass man auf eine große Community zurückgreifen kann und hier
schnell zum Ziel kommt. Notwendige Daten kommen aus der Python Umgebung und den Feinschliff kann
man bequem in den Excel Formularen erledigen.
Das Ziel ist klar, nach der Programmerstellung sollte keine Excel-Zellen-Editierung mehr notwendig sein.
Die Bibliothek "openpyxl" funktioniert auch bei anderen
Tabellenkalkulationsprogrammen wie zum Beispiel LibreOffice.
Das Python Skript: excel.py liefert für drei Excelformularen die
Daten: 1. Verbrauch und Kosten. 2. Stromverbrauch für einen bestimmten Verbraucher in Abhängigkeit
einer Zeit in Sekunden (Start-Stopp-Aufzeichnung). 3. Visualisierung der wichtigsten Register
des Shellys.
Es müssen zwei Voraussetzungen erfüllt sein damit es mit der Klasse "my_excel"
klappt! Ansonsten klappt nämlich nur der Klosettdeckel. 1. Die Datei
"Shelly_EnergieMeter.xlsx“ muss vorhanden sein. 2. Die drei Arbeitsblätter
(Reiter) müssen vorhanden und bereits beschriftet sein. Es folgt eine kleine Beschreibung für das
Arbeitsblatt "Verbrauch und Kosten“ (Zeile 101 bis 130). Die restlichen zwei Arbeitsblätter
verhalten sich ähnlich. Warum die VS-Code Entwicklungsumgebung einen Strich durch die Anweisung
"get_sheet_by_name()“ gemacht hat weiß ich nicht! Kümmern wir uns nicht drum!
Zeile 105, das Formular (Arbeitsblatt), welches sich im ersten Reiter befindet wird mit Index 0 geladen.
Zeile 106 bis 110, es wird auf Platz für neue Daten geprüft. Zeile 111 bis 115, wenn im Arbeitsblatt keine
Daten vorhanden sind, wird das Anfangsdatum und der Anfangszählerstand aus der JSON-Datei geholt. Danach
wird in Zeile 115 eine Liste mit den gewünschten Daten erstellt, siehe auch Zeile 132 bis 154.
Das Arbeitsblatt ist nicht leer, dann geht es in den Zeilen 117 bis 124 weiter. Aus dem vorherigen
Datensatz des Arbeitsblattes werden Datum und Drehstromzählerstand geholt und in Zeile 124 wird
eine Liste erstellt, wie in Zeile 115. Die generierte Liste wird zum Arbeitsblatt in einer Schleife
transferiert, siehe Zeile 125 bis 128.