excel - "com_error: (-2147417851, ' 服务器抛出异常。 ', None, None)"

标签 excel python-2.7 pywin32

我需要从三个 Excel 文件复制数据并粘贴到三个不同的 Excel 文件中。

Error:
     ('F', 'C:\\Users\\jmp655972\\Desktop\\SOFTWARE DEVELOPMENT\\Folder Creation               Format\\Base Vehicle Laden\\Steady State\\Continous Test Data\\LH Turn\\test_1.csv')
Pass
('F', 'C:\\Users\\jmp655972\\Desktop\\SOFTWARE DEVELOPMENT\\Folder Creation Format\\Base Vehicle Laden\\Steady State\\Continous Test Data\\LH Turn\\test_2.csv')

Traceback (most recent call last):
  File "C:\Users\jmp655972\Desktop\Handling_Analysis_Software\main.py", line 120, in <module>
    filescheck(fileCount)
  File "C:\Users\jmp655972\Desktop\Handling_Analysis_Software\main.py", line 115, in filescheck
    readFilesAndCopyData(excelObj,"roll","1",csvfile)
  File "C:\Users\jmp655972\Desktop\Handling_Analysis_Software\main.py", line 62, in readFilesAndCopyData
    workbook = excel.Workbooks.Open(filetoOpen)
  File "C:\Python27\lib\site-packages\win32com\gen_py\00020813-0000-0000-C000-000000000046x0x1x6.py", line 34940, in Open
    , Converter, AddToMru, Local, CorruptLoad)
com_error: (-2147417851, 'The server threw an exception.', None, None

def openExcel():
excel = client.Dispatch("Excel.Application")
excel.Visible = 1
return excel;



def readFilesAndCopyData(excel,testtype,vehicletype,filetoOpen):
    currworkingdirectory = os.getcwd()
    print ("F",filetoOpen)
    workbook = excel.Workbooks.Open(filetoOpen)
    worksheets = workbook.Worksheets(1)
    if testtype == "roll":
        if vehicletype == "1":
            print ("Pass")
            worksheets.Range("E:E,H:H,I:I").Select()
            worksheets.Range("E:E,H:H,I:I").Copy()
        else:
            worksheets.Range("L:L,O:O,P:P").Select()
            worksheets.Range("L:L,O:O,P:P").Copy()
    elif testtype == "slip":
        if vehicletype == "1":
            worksheets.Range("E:E,G:G").Select()
            worksheets.Range("E:E,G:G").Copy()
        else:
            worksheets.Range("E:E,G:G").Select()
            worksheets.Range("E:E,G:G").Copy()
    else:
        print("No Test Data Found")

    workbook.Close
    pasteCopiedData(excel)
    counter + 1 

最佳答案

当我尝试将同一工作簿中的一张表中的列复制到另一张表时,我遇到了同样的问题。但在这样做的同时,我打开了另外两本工作簿。我认为服务器错误可能意味着某种性能问题。所以我尝试先关闭另外两个工作簿(这不是必需的),然后执行复制功能。

我认为这可以解决问题,因为我没有再次收到错误。

关于excel - "com_error: (-2147417851, ' 服务器抛出异常。 ', None, None)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20067712/

相关文章:

excel - XLSX PrinterSettings.bin 文件格式的定义在哪里?

vba - Numberformat 不会更改 vba excel 中的单元格值

excel - 如何使用vba从excel中从数据库(varbinary max)中检索pdf文件

excel - 通过 VBA 自动更新 Power Query 连接

c++ - 从 win32 python 扩展构建编译 PythonService.cpp

python - 从 Python 解析 subprocess.call() 的输出

python - 如何在python中定义归因的归属

python - 如何通过python命令使用python2.7?

python - 在 PyWin32 存在的情况下,我应该(或应该)如何完成 python?

python - 使用Python从GUI程序发送/接收文本