Mit xlwt Daten zu einer Tabelle machen

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
Rotkehlchen
User
Beiträge: 20
Registriert: Freitag 7. Dezember 2018, 07:39

Liebes Forum,
ich bin gerade dabei, ein paar Listen spaltenweise in eine Excel-Datei mittels xlwt zu übertragen.
Jetzt würde ich die Einträge gerne zu einer Tabelle mit Kopfzeile formatieren, damit ich sie später in Excel filtern, sortieren, etc. kann.
Natürlich geht das im Nachhinein auch in Excel, aber wenn ich viele Excel-Dateien per Python erstelle, würde ich mir die Handarbeit am Schluss gerne sparen.
Ist es möglich, das per xlwt zu machen?

Viele Grüße,
Rotkehlchen
Sirius3
User
Beiträge: 17748
Registriert: Sonntag 21. Oktober 2012, 17:20

Ja, indem Du einfach eine Kopfzeile nach deinen Wünschen schreibst.
Was ist denn das konkrete Problem? Was hast Du bisher geschrieben? An welcher Stelle kommst Du nicht weiter?
Rotkehlchen
User
Beiträge: 20
Registriert: Freitag 7. Dezember 2018, 07:39

Hallo Sirius3,
danke für die schnelle Antwort!
Das Problem ist, dass ich nicht weiß, wie man eine "offizielle" Kopfzeile schreibt, also so eine, bei der man dann in Excel den kleinen Pfeil mit den Filteroptionen an der rechten Seite hat.
Meine "Kopfzeile" sieht bisher nämlich nur so aus:

Code: Alles auswählen

book = xlwt.Workbook(encoding="utf-8")
  sheet1 = book.add_sheet("Sheet1")
  sheet1.write(0, 0, "data1")
  sheet1.write(0, 1, "data2")
  sheet1.write(0, 2, "data3")
  sheet1.write(0, 3, "...") # usw.
Sirius3
User
Beiträge: 17748
Registriert: Sonntag 21. Oktober 2012, 17:20

Ok, Dir geht es also um die Autofilter-Funktion? Die unterstützt xlwt anscheinend nicht. Kannst Du nicht auf openpyxl umsteigen?
Rotkehlchen
User
Beiträge: 20
Registriert: Freitag 7. Dezember 2018, 07:39

Genau, gute Idee, allerdings habe ich häufig Probleme mit der Installation von Modulen wie auch diesmal... habe openpyxl gerade über pip install installiert, es hieß auch, dass die Installation erfolgreich war, allerdings erhalte ich beim Versuch, das Modul zu importieren folgende Fehlermeldung:

Code: Alles auswählen

>>> import openpyxl
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    import openpyxl
  File "C:\Python34\lib\site-packages\openpyxl\__init__.py", line 4, in <module>
    from openpyxl.compat.numbers import NUMPY, PANDAS
  File "C:\Python34\lib\site-packages\openpyxl\compat\__init__.py", line 5, in <module>
    from .strings import (
  File "C:\Python34\lib\site-packages\openpyxl\compat\strings.py", line 10, in <module>
    from .numbers import NUMERIC_TYPES
  File "C:\Python34\lib\site-packages\openpyxl\compat\numbers.py", line 24, in <module>
    NUMERIC_TYPES = NUMERIC_TYPES + (numpy.bool_, numpy.floating, numpy.integer)
AttributeError: 'module' object has no attribute 'bool_'
Da ich noch nicht so lange dabei bin, kann ich damit wenig anfangen...
Sirius3
User
Beiträge: 17748
Registriert: Sonntag 21. Oktober 2012, 17:20

@Rotkehlchen: Du benutzt noch Python 3.4, das hat inzwischen auch schon etliche Jahre hinter sich und wird nicht mehr gepflegt. Damit hängt vielleicht auch zusammen, dass Du ein numpy verwendest, das anscheinend bool_ nicht kennt.
Rotkehlchen
User
Beiträge: 20
Registriert: Freitag 7. Dezember 2018, 07:39

Guter Punkt, leider lässt sich daran nichts ändern, ist nicht mein privater PC und darf nur bestimmte Programme darauf verwenden. Ich habe in der Dokumentation von openpyxl herausgefunden, dass die Version 2.5.14 die letzte ist, die Python 3.4 unterstützt und diese konnte ich auch installieren und importieren! Habe in der Dokumentation auch die Filterfunktionen gefunden (https://openpyxl.readthedocs.io/en/stable/filters.html), genau wonach ich gesucht habe.

Vielen Dank!
Antworten