我正在将脚本结果导出到 Excel 电子表格中。一切正常,我将大量数据放入 SpreadSheet 中,但有时会出现错误:
File "C:\Python26\lib\site-packages\win32com\client\dynamic.py", line 550, in __setattr__
self._oleobj_.Invoke(entry.dispid, 0, invoke_type, 0, value)
pywintypes.com_error: (-2147352567, 'Exception.', (0, None, None, None, 0, -2146777998), None)***
我想这不是输入数据格式的问题。我放置了几种不同类型的数据字符串、整数、 float 、列表,它工作得很好。当我第二次运行脚本时,它工作正常 - 没有错误。这是怎么回事?
PS。这是生成错误的代码,奇怪的是错误并不总是发生。假设 30% 的运行会导致错误。 :import win32com.client
def Generate_Excel_Report():
Excel=win32com.client.Dispatch("Excel.Application")
Excel.Workbooks.Add(1)
Cells=Excel.ActiveWorkBook.ActiveSheet.Cells
for i in range(100):
Row=int(35+i)
for j in range(10):
Cells(int(Row),int(5+j)).Value="string"
for i in range(100):
Row=int(135+i)
for j in range(10):
Cells(int(Row),int(5+j)).Value=32.32 #float
Generate_Excel_Report()
对我来说最奇怪的是,当我使用相同的代码、相同的输入多次运行脚本时,有时会出现错误,有时不会。
最佳答案
这很可能是同步 COM 访问错误。请参阅我对 Error while working with excel using python 的回答了解有关原因和解决方法的详细信息。
我不明白为什么文件格式/扩展名会产生影响。无论哪种方式,您都会调用同一个 COM 对象。我对此错误的经验是,它或多或少是随机的,但您可以通过在脚本运行时与 Excel 交互来增加发生该错误的机会。
关于python - win32com Excel数据输入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2978734/