Forum: PC-Programmierung Excel Tabelle erstellen und beschreiben mit python


von Christiane Wagner (Gast)


Lesenswert?

Hey :)
Ich habe folgendes Problem: ich habe mit dem Raspberry Pi und Python 
einen Feinstaub Sensor programmiert, der mit alle 5 Minuten je einen 
Wert für pm10 und pm2,5 errechnet. Diese Werte möchte ich in eine Excel 
Tabelle schreiben, um sie dann weiterzuverarbeiten. Das Programm sollte 
also in jedem neuen messzyklus die Datei öffnen und eine neue Zeile mit 
den Werten beschreiben... Irgendwie möglich?

von Soeren K. (srkeingast)


Lesenswert?

CSV macht es einfacher, für Excel gibt's aber auch Module...

CSV ist trivial:

https://docs.python.org/2/library/csv.html

Erster Treffer für "Python Excel":

http://www.python-excel.org/

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Und wo läuft das Excel? Auf dem Pi kann es nicht laufen, also gibt es 
noch einen PC, auf dem das läuft?

Oder willst Du nur auf Deinem Pi eine Datei erzeugen, die Du jederzeit 
mit einem PC, auf dem Excel läuft, verarbeiten kannst?

Das ist simpel. Nimm keine Excel-Datei (das Format ist mehr als eklig), 
sondern eine CSV-Datei. Das ist eine Textdatei, in der in Zeilen durch 
ein Trennzeichen separierte Werte stehen.
Soll die Datei von einem deutschsprachigen Excel verarbeitet werden, 
muss das Trennzeichen ein Semikolon sein, und Nachkommastellen werden 
mit einem Dezimalkomma und nicht dem sonst üblichen Dezimalpunkt 
abgetrennt.
1
10,2;11,3;345,17
2
10,3;11,3;350,1

Auf dem Pi machst Du die Datei mit fopen() und dem Dateinmodus "a" auf 
(das sorgt fürs Anhängen), Deine CSV-Daten gibst Du mit fprint() in die 
Datei auf, ans Zeilenende solltest Du CRLF statt des unter Linux 
üblichen LF anhängen, und dann machst Du die Datei mit fclose() wieder 
zu.

von Cyblord -. (Gast)


Lesenswert?

CSV ist der schmerzfreiere Weg, aber XLSX ist ein XML-basiertes und 
dokumentiertes Format, also könntest du auch den Weg gehen direkt ein 
gültiges XLSX-File zu erzeugen.
Musste ich mal mit C# machen, das persönliche Vergnügen hält sich dabei 
in Grenzen und wird nur noch unterschritten wenn man das mit einer der 
alten COM-Libraries machen muss.

von Ingo W. (uebrig) Benutzerseite


Angehängte Dateien:

Lesenswert?

Abradolf L. schrieb:
> XLSX ist ein XML-basiertes und
> dokumentiertes Format,

Oder alternativ OpenDocumentFormat, das ist noch etwas übersichtlicher 
und hat auch dann noch Bestand, wenn XLSX mal wieder umgebaut ober 
aufgegeben wird.
Das C-Modul aus dem Anhang, nutze ich auf Arbeit, um ODS-Dateien zu 
erzeugen, welche von Excel 2010 kommentarlos geöffnet werden. Extern 
wird noch ein Programm zum zippen (zip unter Linux, oder 7zip unter 
Windows) benötigt. Ein Beispielprogramm, welches eine mehrseitige 
Tabellenmappe, sowie ein ODT-Textdokument, mit enthaltenen Tabellen 
erzeugt, ist bei.
Allerdings dies nur als Anschauungsmodell zur Vorgehensweise und des 
nötigen Aufwandes. Für deine Anwendung (vorhandene Datei neu öffnen, 
neue Daten anhängen, Datei wieder schließen), wäre ODS genauso wenig 
geeignet, wie XLSX.
Daher schließe ich mich dem Vorschlag der Vorredner, zu CSV an, damit 
geht genau das, was du benötigst.

von Rolf M. (rmagnus)


Lesenswert?

Wenn's denn unbedingt ein direkt aus Python heraus generiertes 
Excel-File sein muss (hatte den Fall auch schon mal - CSV ging hier 
nicht, weil Formatierung benötigt wurde), kann man XlsxWriter verwenden:
https://xlsxwriter.readthedocs.io/

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.