Seite 1 von 1
Mit xlwt Daten zu einer Tabelle machen
Verfasst: Montag 13. Mai 2019, 10:59
von Rotkehlchen
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
Re: Mit xlwt Daten zu einer Tabelle machen
Verfasst: Montag 13. Mai 2019, 11:05
von Sirius3
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?
Re: Mit xlwt Daten zu einer Tabelle machen
Verfasst: Montag 13. Mai 2019, 11:15
von Rotkehlchen
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.
Re: Mit xlwt Daten zu einer Tabelle machen
Verfasst: Montag 13. Mai 2019, 12:24
von Sirius3
Ok, Dir geht es also um die Autofilter-Funktion? Die unterstützt xlwt anscheinend nicht. Kannst Du nicht auf openpyxl umsteigen?
Re: Mit xlwt Daten zu einer Tabelle machen
Verfasst: Dienstag 14. Mai 2019, 06:41
von Rotkehlchen
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...
Re: Mit xlwt Daten zu einer Tabelle machen
Verfasst: Dienstag 14. Mai 2019, 07:04
von Sirius3
@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.
Re: Mit xlwt Daten zu einer Tabelle machen
Verfasst: Dienstag 14. Mai 2019, 07:37
von Rotkehlchen
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!