Seite 1 von 1

excel datei einlesen mit pywin32

Verfasst: Montag 15. November 2010, 10:24
von Sync32
Ich wollte eine Excel datei einlesen:

Code: Alles auswählen

import win32com.client

xls = win32com.client.Dispatch("Excel.Application")
xls.Visible = 1

wb = xls.Workbooks.Open("C:\Users\hans\Desktop\test.xls")
"""
for x in range (1,6):
    row = wb.Cells(1,x)
    print(row)"""

xls.Workbooks.Close()
Dabei kam diese Fehlermeldung:
in <module>
xls = win32com.client.Dispatch("Excel.Application")
File "C:\Python27\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 104, in _GetGoodDispatchAndUserName
return (_GetGoodDispatch(IDispatch, clsctx), userName)
File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 84, in _GetGoodDispatch
IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
com_error: (-2147221005, 'Ung\xfcltige Klassenzeichenfolge', None, None)
Jemand ne idee, wie man das beheben kann?

Re: excel datei einlesen mit pywin32

Verfasst: Montag 15. November 2010, 10:34
von Hyperion
Ich kann dir nicht sagen, ob das die Ursache ist, aber Du musst den String mit den Pfadangaben escapen, oder aber besser noch einen raw-String nutzen (in diesem sind die "\" als Escape zeichen "ausgeschaltet"):

Code: Alles auswählen

r"\hier\kann\mann\backshlashes\benutzen"

Re: excel datei einlesen mit pywin32

Verfasst: Montag 15. November 2010, 10:56
von Sync32
Hat leider nicht geklappt.
Ich habe mal alles andere auskommentiert. Er scheint ein Problem mit der Zeile zu haben:

Code: Alles auswählen

#...
xls = win32com.client.Dispatch("Excel.Application")
#...

Re: excel datei einlesen mit pywin32

Verfasst: Montag 15. November 2010, 11:05
von Hyperion
Ich hatte es aufgrund der Fehlermeldung ja vermutete - meinen Hinweis solltest Du dennoch umsetzen und beherzigen, denn das ist auch eine "beliebte" Fehlerquelle ;-)

Hast Du mal nach Excel hier gesucht? Wir haben hier doch öfter mal Threads zu dem Thema...

Re: excel datei einlesen mit pywin32

Verfasst: Montag 15. November 2010, 11:29
von Kiffi
Hallo Sync32,
Sync32 hat geschrieben:Er scheint ein Problem mit der Zeile zu haben:

Code: Alles auswählen

#...
xls = win32com.client.Dispatch("Excel.Application")
#...
ist Excel denn auf dem Rechner installiert?

Grüße ... Kiffi

Re: excel datei einlesen mit pywin32

Verfasst: Montag 15. November 2010, 12:25
von C4S3
OT:
Kiffi hat geschrieben:Grüße ... Kiffi
Hallo Kiffi, wieder ein Forum in dem wir uns treffen! Schön!

Re: excel datei einlesen mit pywin32

Verfasst: Montag 15. November 2010, 14:51
von Zap
Anstelle von win32com würde ich die module xlrd bzw xlwt verwenden.
Damit habe ich auf jeden Fall gute Erfahrungen gemacht.
Eine Idee zu deinem Fehler habe ich spontan nicht, sorry.

Re: excel datei einlesen mit pywin32

Verfasst: Montag 15. November 2010, 15:36
von Kiffi
<OT>

@c4s: Danke für die nette Begrüßung! :D

mal wieder ein wenig 'über-den-Tellerrand-Guckerei' betreiben.
In Bezug auf Python habe ich's bisher noch nicht bereut. Bild

</OT>

Re: excel datei einlesen mit pywin32

Verfasst: Montag 15. November 2010, 18:36
von Sync32
Excel habe ich nicht installiert.
Aber OpenOffice und die Datei dann als .xls Datei gespeichert.
Wusste nicht, dass zum Einlesen auch das originale Excel gebraucht wird.

Braucht xlrd denn zwingend auch Excel ?
Oder gibts nen Modul, welches auch eigenständig xls einlesen kann?

Danke

Re: excel datei einlesen mit pywin32

Verfasst: Montag 15. November 2010, 18:46
von /me
Sync32 hat geschrieben:Braucht xlrd denn zwingend auch Excel ?
Die Modulbeschreibung sagt
# Platform: Any platform -- don't need Windows

Das sollte doch einen gewissen Anhaltspunkt geben, oder?

Re: excel datei einlesen mit pywin32

Verfasst: Montag 15. November 2010, 20:36
von Kiffi
Hallo Sync32,
Sync32 hat geschrieben:Wusste nicht, dass zum Einlesen auch das originale Excel gebraucht wird.
Excel.Application kann man nun mal nur dann nutzen, wenn Excel
auf dem Rechner auch installiert ist.
Sync32 hat geschrieben:Braucht xlrd denn zwingend auch Excel ?
nein, braucht man nicht (grade unter Ubuntu erfolgreich ausprobiert).

Grüße ... Kiffi