pywin32 и excel. Исключение при записи большого количества данных
В настоящее время я пытаюсь записать большой объем данных в таблицу Excel с использованием библиотек pywin32. В качестве простого примера проблемы, с которой я сталкиваюсь, возьмем следующий код для генерации таблицы умножения 1000 ячеек на 1000 ячеек.
import win32com.client
from win32com.client import constants as c
xl = win32com.client.gencache.EnsureDispatch("Excel.Application")
xl.Visible = True
Workbook = xl.Workbooks.Add()
Sheets = Workbook.Sheets
tableSize = 1000
for i in range(tableSize):
for j in range(tableSize):
Sheets(1).Cells(i+1, j+1).Value = i*j
Для небольших значений это работает. Тем не менее, для больших значений программа Python в конечном итоге завершается с ошибкой:
Traceback (most recent call last):
File ".\Example.py", line 16, in <module>
Sheets(1).Cells(i+1, j+1).Value = i*j
File "C:\PYTHON27\lib\site-packages\win32com\client\__init__.py", line 474, in __setattr__
self._oleobj_.Invoke(*(args + (value,) + defArgs)) pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2146777998), None)
Я уже признал поражение из-за того, что это значительно медленнее, чем xlwt, но мне все еще любопытно, что происходит, чтобы вызвать эту ошибку.