【发布时间】:2016-07-12 22:02:54
【问题描述】:
我必须使用 Python 编写 Excel 文件。我用win32com来做。
我想先打开它做一些事情,然后在我的文件中写入,做更多的事情并再次写入文件。
但是如果我在每次写之前都不打开文件,我会收到这个错误信息:
pywintypes.com_error:(-2146827864,'OLE 错误 0x800a01a8',无,无)
这里是我的代码:
connection = pypyodbc.connect('Driver={SQL Server};'
'Server=SRVAKTCT-SQL\TCTSQL;'
'Database=K;'
'uid=Y;pwd=x')
cursor = connection.cursor()
for log, TA in zip(listeID,ListeTA):
NomTA=TA[0]
Equipe=TA[1]
if log:
#doing stuff
results = something
temps_log=results[0]
print(temps_log)
if temps_log is not None:
temps_log=str(datetime.timedelta(seconds=int(temps_log)))
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open('//Srvaktct-bur02/Copie de vide.xlsx')
ws=wb.Worksheets(date_onglet)
ws.Cells(ligne_cumul,10).Value=temps_log
#wb.Close(True)
#wb = excel.Workbooks.Open('//Srvaktct-bur02/Copie de vide.xlsx')
#ws=wb.Worksheets(date_onglet)
ws.Cells(ligne_cumul,2).Value=NomTA
ws.Cells(ligne_cumul,3).Value=Equipe
wb.Close(True)
excel.Application.Quit()
ligne_cumul += 1
这里的代码只有在我取消注释区域时才有效。
【问题讨论】:
-
您是
Close工作簿,也是Quit循环内的应用程序。如果您这样做,当然您必须重新实例化 Excel,然后重新打开工作簿...请参阅下面的答案
标签: python excel pyodbc pywin32