Pywin32 Excel写入限制?

我使用pywin32和通用的方式来写入范围到Excel,通过获取一些范围对象,然后写入

range.Value=my_data 

(这和VBA的语法完全相同)

现在,如果我有一组相当大的单元格(> 6000个字符),并通过设置范围对象的值一次性写出它们,则有时会在这些单元格之一抛出exception(但是将单元格写入本身会工作)。

你知道Excel的任何限制和写范围操作,我应该考虑?

例外看起来像

 Traceback (most recent call last): File "test2.py", line 9, in <module> e.write_area([tuple("a"*10000 for i in range(20))]*20, sheet="Tabelle1") File "excel_com.py", line 209, in write_area self.get_range(col, row, col+num_col-1, row+num_row-1, sheet=sheet).Value=data File "C:\Python31\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, 'Ausnahmefehler aufgetreten.', (0, None, None, None, 0, -2146827284), None) or Traceback (most recent call last): File "test2.py", line 9, in <module> e.write_area([tuple("a"*1000 for i in range(20))]*10000, sheet="Tabelle1") File "excel_com.py", line 209, in write_area self.get_range(col, row, col+num_col-1, row+num_row-1, sheet=sheet).Value=data File "C:\Python31\lib\site-packages\win32com\client\dynamic.py", line 521, in __setattr__ debug_attr_print("SetAttr called for %s.%s=%s on DispatchContainer" % (self._username_, attr, repr(value))) MemoryError 

excel_com.py是我的一个模块。 这些exception是否取决于所写入数据的列,行,单元大小。 但是,我不知道这是什么系统:(

将数组传输到一个范围没有固定的大小限制。 它更多地取决于数组,RAM等所需的内存。如果有任何机会,数据量很大,最好将数组分成块,并一次写入一个。