Ciao, non scrivo su questo forum da una vita!!!
E vedo con piacere che con gli anni é rimasto una risorsa quasi infinita per chi cerca aiuto.
Ma veniamo al dunque.
Ecco il mio problema:
io voglio aprire un file excel, leggere i dati su alcune colonne, salvarli in una matrice in python, chiudere il file e lavorare con la matrice.
Solo che riscontro un problema se chiudo il file prima di leggere la matrice, nonostante il processo di lettura file dovrebbe giá essere finito, e i dati giá acquisiti.
Vi posto una versione semplificata della funzione inclusa nel mio programma:
e questo é l´errore che ottengo:codice:import win32com.client from win32com.client import constants, Dispatch xlApp=win32com.client.Dispatch("excel.Application") xlDoc = xlApp.Workbooks.Open('Z:\Data\python scripts\exceptions.xls') sheet = xlDoc.Sheets(1) val=sheet.Range("a1") xlDoc.close print val
Se invece lascio aperto il file fino alla fine, tutto funziona regolarmente.codice:File "C:\PROGRA~1\PHYTON~1\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 310, in RunScript exec codeObject in __main__.__dict__ File "Z:\Data\python scripts\prove_exl.py", line 12, in ? print val File "C:\PROGRA~1\PHYTON~1\Lib\site-packages\win32com\client\dynamic.py", line 180, in __str__ return str(self.__call__()) File "C:\PROGRA~1\PHYTON~1\Lib\site-packages\win32com\client\dynamic.py", line 165, in __call__ return self._get_good_object_(self._oleobj_.Invoke(*allArgs),self._olerepr_.defaultDispatchName,None) com_error: (-2146827864, 'OLE error 0x800a01a8', None, None)
(ho lo stesso errore anche usando 'xlApp.Quit()' anzi che 'xlDoc.close')
Grazie
EDIT: Dimenticavo... Quando chiudo excel da python il processo excel.exe rimane attivo. C´é un modo per chiuderlo in modo definitivo e non solo apparente?



Rispondi quotando