Ich habe eine .xlsx-Datei mit 11 Arbeitsblättern und ich muss den Inhalt einer Textdatei (Tab-Delim, etwa 30 Spalten mit 100 Zeilen) ab Zeile 3 einfügen. Ich habe den folgenden Code ausprobiert, aber am Ende habe ich Fehler. (Unter Verwendung von bash/Linux)Textdatei in existierende xlsx mit Python einfügen
#!/usr/bin/env python
import csv
from openpyxl.reader.excel import load_workbook
from xlrd import open_workbook
from xlutils import copy as xl_copy
with open('S12_final.txt') as tab_file: #open tab text file
tab_reader = csv.reader(tab_file, delimiter='\t')
xls_readable_book = load_workbook('S12.xlsx') #load workbook
xls_writeable_book = xl_copy.copy(xls_readable_book)
xls_writeable_sheet = xls_writeable_book.get_sheet_by_name('Filtered') #write data on this sheet
for row_index, row in enumerate(tab_reader):
xls_writeable_sheet.write(row_index, 0, row[0])
xls_writeable_sheet.write(row_index, 1, row[1])
xls_writeable_book.save('S12.xlsx') #save excel file
Fehler:
> Traceback (most recent call last): File "./tab2excel_a.py", line 23,
> in <module>
> xls_writeable_book = xl_copy.copy(xls_readable_book) File "/usr/local/lib/python2.7/dist-packages/xlutils-1.6.0-py2.7.egg/xlutils/copy.py",
> line 19, in copy
> w File "/usr/local/lib/python2.7/dist-packages/xlutils-1.6.0-py2.7.egg/xlutils/filter.py",
> line 937, in process
> reader(chain[0]) File "/usr/local/lib/python2.7/dist-packages/xlutils-1.6.0-py2.7.egg/xlutils/filter.py",
> line 61, in __call__
> filter.workbook(workbook,filename) File "/usr/local/lib/python2.7/dist-packages/xlutils-1.6.0-py2.7.egg/xlutils/filter.py",
> line 287, in workbook
> self.wtbook.dates_1904 = rdbook.datemode AttributeError: 'Workbook' object has no attribute 'datemode'
Irgendwelche Vorschläge?
Hallo, das versucht einen weiteren Stapel von Fehlern 'Datei' /usr/local/lib/python2.7/dist-packages/xlwt-0.7.5-py2.7.egg/xlwt/Row.py", Zeile 42, in __init__ raise ValueError ("Zeilenindex (% r) kein int im Bereich (65536)"% rowx) ValueError: Zeilenindex (65536) kein int im Bereich (65536) ' ' – nbn
Was ist die erste Zeile? dieser Rückverfolgung? – armatita
'Traceback (letzter Aufruf zuletzt): Datei" ./tab2excel_a.py ", Zeile 24, in xls_writeable_book = xl_copy.copy (xls_readable_book)' Meine Datei ist eine xlsx-Datei, nicht sicher, ob das hier einen Unterschied macht –
nbn