当我尝试使用pythons pywin32软件包从pgsql到excel获取约25万行时
我收到以下错误
pywintypes.com_error:(-2147024882,“没有足够的内存资源来完成此操作。”,无,无)
答案 0 :(得分:0)
在装入92,875 X 60的纸张时遇到了相同的问题。在这张纸变得如此大之前,它工作得很好。
我想出了一种解决此问题的方法,这很简单。而不是加载整个数据范围,而是先读取一行,然后再读取另一行。
例如,我的代码原本是这样的:
finalrow = ws.Cells(ws.Rows.Count, "A").End(win32com.client.constants.xlUp).Row
finalcell = '$%s$%s' % (finalcolumn, finalrow)
r = ws.Range('$A$1:' + finalcell).Value
rows = list(r)
其中finalcolumn是一个常量值,例如'BH'。
更改为:
finalrow = ws.Cells(ws.Rows.Count, "A").End(win32com.client.constants.xlUp).Row
finalcell = '$%s$%s' % (finalcolumn, finalrow)
rows = []
for i in range(finalrow):
r = ws.Range('$A$%s:$%s$%s' % (i+1, finalcolumn, i+1)).Value
rows += list(r)
未观察到明显的性能下降。