Я экспортирую результаты своего сценария в электронную таблицу 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)***
Я предполагаю, что Это не проблема формата входных данных. Я поместил несколько различных типов строк данных, ints, плаваний, списков, и это хорошо работает. Когда я выполняю sript во второй раз, когда он хорошо работает - никакая ошибка. Что продолжается?
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()
Самое странное для меня - то, что, когда я запускаю скрипт с тем же кодом, тот же вход много раз, затем иногда, ошибка происходит, иногда нет.
править: Это ничего не меняет. Ошибка возникает, но остается часто. Один раз из 10 симуляций, а с файлом .xlsx - один раз из 3 симуляций. Пожалуйста, помогите
Проблема была с файлом, который я открывал. Это был .xlsx
, пока я сохранил его как .xls
, проблема исчезла. Так что будьте осторожны, никогда не используйте COM-интерфейс с .xlsx
, иначе у вас будут проблемы!