尝试使用cx_Oracle和openpyxl编写Excel文件时,继续获取MemoryError

时间:2018-02-26 19:37:03

标签: python excel openpyxl cx-oracle

我需要帮助解决这个错误。

我编写了这个脚本来查询Oracle表并将其所有内容转储到带有.xlsx格式的excel。但几分钟后我得到的错误只显示MemoryError。

我认为数据库表很大,但没有那么大,我的计算机无法处理它,它有大约500,000行。 我正在使用write_only = True方法来处理大型excel文件。 这是我的python代码的摘录:

import sys
import cx_Oracle
from openpyxl import Workbook, load_workbook

#####OracleConnectionStuff...

curs = orcl.cursor()
sql = "select * from 500KrowsTable"
curs.execute(sql)

wb = Workbook(write_only=True)
ws = wb.create_sheet()

for row_data in curs:
    ws.append(row_data)

wb.save("tableData.xlsx")

我一直这样得到MemoryError:

MemoryError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "xlsxGenerator.py", line X, in <module>
    create_xlsx(tableName, fileName)
  File "xlsxGenerator.py", line X, in create_xlsx
    ws.append(row_data)
  File "DIR\Python\Python36-32\lib\site-packages\openpyxl\worksheet\write_only.py", line X, in append
    self.writer.send(row)
  File "DIR\Python\Python36-32\lib\site-packages\openpyxl\worksheet\write_only.py", line X, in _write_header
    cell = WriteOnlyCell(self)
  File "DIR\Python\Python36-32\lib\contextlib.py", line X, in __exit__
    next(self.gen)
  File "DIR\Python\Python36-32\lib\site-packages\et_xmlfile\xmlfile.py", line X, in element
    parent.append(self._top_element)
MemoryError

0 个答案:

没有答案