Im documentation für xlrd
und xlwt
ich gelernt habe, wie folgt vor:bearbeiten bestehende Excel-Arbeitsmappen und Blätter mit xlrd und xlwt
Wie aus bestehenden Arbeitsmappen/Blätter lesen:
from xlrd import open_workbook
wb = open_workbook("ex.xls")
s = wb.sheet_by_index(0)
print s.cell(0,0).value
#Prints contents of cell at location a1 in the first sheet in the document called ex.xls
Wie neue Arbeits Bücher/Blätter erstellen:
from xlwt import Workbook
wb = Workbook()
Sheet1 = wb.add_sheet('Sheet1')
Sheet1.write(0,0,'Hello')
wb.save('ex.xls')
#Creates a document called ex.xls with a worksheet called "Sheet1" and writes "Hello" to the cell located at a1
Was ich jetzt tun möchte, ist ein vorhandenes Arbeitsblatt zu öffnen, in einer vorhandenen Arbeitsmappe und schreiben dieses Blatt.
Ich habe versucht, so etwas wie:
from xlwt import open_workbook
wb = open_workbook("ex.xls")
s = wb.sheet_by_index(0)
print s.cell(0,0).value
aber open_workbook
ist nur ein Teil des xlrd
Modul, nicht xlwt
.
Irgendwelche Ideen?
Edit1: Nach Olivers Vorschlag, den ich in xlutils
sah und versuchte, die folgenden:
from xlrd import open_workbook
from xlwt import Workbook
from xlutils.copy import copy
wb = open_workbook("names.xls")
s = wb.get_sheet(0)
s.write(0,0,'A1')
wb.save('names.xls')
Dies jedoch gibt mir die folgende Fehlermeldung:
File "C:\Python27\lib\site-packages\xlrd\book.py", line 655, in get_sheet
raise XLRDError("Can't load sheets after releasing resources.")
xlrd.biffh.XLRDError: Can't load sheets after releasing resources.
Edit 2: Die Fehlermeldung war aufgrund der unsachgemäßen Verwendung der get_sheet
Funktion. Schließlich fanden heraus, wie es zu benutzen:
from xlrd import open_workbook
from xlwt import Workbook
from xlutils.copy import copy
rb = open_workbook("names.xls")
wb = copy(rb)
s = wb.get_sheet(0)
s.write(0,0,'A1')
wb.save('names.xls')
Haben Sie sich die 'xlutils' angesehen, die vom selben Autor erstellt wurden und in dem Dokument dokumentiert sind, zu dem Sie verlinken? Im zweiten Unterabschnitt der "Excel-Dateien schreiben" wird geschrieben, dass "Worksheets Worksheets mit der Methode add_sheet der Workbook-Klasse erstellt werden. Um ein vorhandenes Blatt aus einer Arbeitsmappe abzurufen, verwenden Sie die Methode get_sheet. Diese Methode ist besonders nützlich, wenn die Arbeitsmappe von xlutils.copy instanziiert wurde. ' –
Hallo Oliver, und danke für den Rat. Ich schaute in 'xlutils' und es scheint genau das zu sein, wonach ich suche. Ich kann immer noch nicht mein Ziel erreichen. Wenn ich 'get_sheet()' 'verwende bekomme ich die folgende Fehlermeldung: ' Datei "C: \ Python27 \ lib \ site-packages \ xlrd \ book.py ", Zeile 655, in get_sheet raise XLRDError (" Blätter können nach Freigabe von Ressourcen nicht geladen werden. ") xlrd.biffh.XLRDError: Blätter können nach Freigabe von Ressourcen nicht geladen werden. –
Danke, weil Sie auch den Import bereitstellen Klausel in Ihrem Code (es fehlt oft) – geekobi