"com_error: (-2147417851, 'Сервер выдал исключение.', Нет, Нет)"

Мне нужно скопировать данные из трех файлов 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 

2 ответа

У меня возникла та же проблема, когда я пытался скопировать столбец с одного листа на другой лист в той же книге. Но при этом у меня были открыты еще две книги. Я думал, что ошибка сервера может означать какую-то проблему с производительностью. Поэтому я попытался сначала закрыть две другие книги (которые не требовались), а затем выполнить функцию копирования.

Я думаю, что это решает проблему, поскольку ошибка больше не возникает.

У меня было такое же сообщение об ошибке при попытке автоматизировать работу в Excel. В частности, эта ошибка возникла в строке кода, которая должна была открыть файл Excel. Причина заключалась в том, что путь к файлу (каталог + имя файла) был слишком длинным. Ошибка исчезла, когда я переименовал папки и имя файла, чтобы дать им более короткое имя.

Другие вопросы по тегам