python - win32com Excel数据输入错误

标签 python excel com win32com

我正在将脚本结果导出到 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/

相关文章:

python - 每个数据点具有不同文本的散点图

sql - 数据透视表中的文本值?

excel - 使用 VBA 将数据透视表设置为基于另一个字段的特定日期

c++ - IGraphBuilder::RenderFile() 因 VFW_E_BAD_KEY 失败 - 0x800403f2

c# - .NET 互操作层和 COM 之间发生了什么?

python - 用于编辑从 numpy savez 函数生成的 zip 文件的 Linux 命令

python - 如何使用pyqt4在窗口中的网页上建立链接?

python - 在 tkinter 中选择文件而不仅仅是文件夹

excel - 组合两个数组公式

python - 在python中实现COM接口(interface)类型库