Ich schreibe ein python plugin in 2.5 für Quantum GIS. Das Plugin soll Werte aus der QGIS Attributtabelle auslesen, in ein Excelblatt einfüttern und andere Werte dort wieder auslesen.
Ich versuche auf Excel zurückzugreifen, was vor einiger Zeit auch funktioniert hat. Zwischenzeitlich hatte ich mich anderen Problemen zugewandt und jetzt habe ich folgendes Problem mit Excel:
Zuerst las die .xls an einem Ort, wo ich wohl keine vollen Befugniss hatte, also keine Änderungen an der Datei vornehmen konnte (beim Beschreiben der Zellen kam immer ein Exception Error -2146827284). Daraufhin habe ich den Ort der .xls geändert und es auf meine vollzugreifbare Platte gelegt und die Pfade zum Aufrufend er Datei entsprechend geändert. Wenn ich jetzt versuche aus dem Skript auf Zellen zuzugreifen, scheint die Datei nicht zu laden.
Code: Alles auswählen
def open_Excel(self) :
self.xl = win32.gencache.EnsureDispatch('Excel.Application')
self.xl.Visible = True
#self.wb = self.xl.Workbooks.Open(self.Vorlage)
self.wb = self.xl.Workbooks.Open('Z:\\GEB_files\\Master.xls')
self.sheet = self.wb.Sheets[0] # default Blatt ist 1. Blatt
if self.sheet is None:
QMessageBox.warning(None, 'geb', 'Laden der Vorlage gescheitert. \nDas Programm kann nicht korrekt weiter ausgeführt werden.')
[...]
def input_to_Excel(self) :
try:
# Boolean-Werte in Excel aus technischeAngaben aus Eingabemaske und Fenster zu diesesHaus
for KEY in self.technischeAngaben.keys():
controller = 0
for key in self.technischeAngaben[KEY].keys():
if KEY != 'Fenster':
if self.technischeAngaben[KEY][key]['Status'] == 'checked':
if self.sheet is None:
QMessageBox.warning(None, 'geb', 'Laden der Vorlage gescheitert. \nDas Programm kann nicht korrekt weiter ausgeführt werden.')
self.sheet.OLEObjects(key).Object.Value = 1
controller = 1
elif KEY == 'Fenster':
if key == 'optF_IWU':
controller = 1
except:
error = traceback.format_exc()
QMessageBox.warning(None, 'geb', error)
Code: Alles auswählen
Traceback (most recent call last):
File "C:/Dokumente und Einstellungen/amelie.lesser/.qgis/python/plugins\GEB_20110414\GemeindeEnergieBeratung_run.py", line 198, in input_to_Excel
if self.sheet is None:
AttributeError: 'GemeindeEnergieBeratungRUN' object has no attribute 'sheet'
und reagiert nicht mehr.
Hatte jemand schon ein ähnliches Problem? Woran könnte es liegen?
Ich habe die Pfadnamen bereits mehrmals auf genau Zeichenfolge und Richtigkeit überprüft, hieran sollte es also nciht liegen.