openpyxl,处理大型excel文件

Posted

技术标签:

【中文标题】openpyxl,处理大型excel文件【英文标题】:openpyxl, handle large exel files 【发布时间】:2020-02-10 01:46:51 【问题描述】:

我使用 openpyxl 进行数据处理。

第一次,我将数据复制代码文件写入文件(xlsx -> xlsx)进行测试。

# open input file
wb = load_workbook(filename='input.xlsx', read_only=True)
ws = wb['sheet name']

# create output file
out = Workbook(write_only=True)
out_sh = out.create_sheet('sheet name')

# copy data
for rows in ws:
   out_sh.append(cells.value for cells in rows)

# save file
out.save('output.xlsx')
wb.close()
out.close()

输入文件大小为 394 MB,有 6 张。 5 张大小为 1048576 行 x 17 (A~Q) 列。 我的内存大小为 8 GB,通常使用 66%(空闲状态,剩余约 2.5 GB)。 最后一张纸尺寸小。我测试了一张大床单

在 openpyxl 中,我使用 read_onlywrite_only 选项进行优化,但是当我为 仅 1 张 运行数据复制代码时(不是整个394MB 文件),我得到一个 MemoryError

如果添加数据分析代码,则只能处理较小的文件。

我还没有尝试过针对大文件处理的优化技术吗?

【问题讨论】:

当我尝试对小表格(410500 行 x 17 列)进行数据复制时,但结果相同。内存错误。 【参考方案1】:

还有其他线程有同样的错误问题:

Memory Error Thread 1 Memory Error Thread 2

对你的问题有帮助吗?

【讨论】:

以上是关于openpyxl,处理大型excel文件的主要内容,如果未能解决你的问题,请参考以下文章

5 分钟掌握 openpyxl 操作:Python 轻松处理 Excel

excel数据处理一:巧妙使用openpyxl提取筛选数据

Python中用OpenPyXL处理Excel表格

python中Excel文件处理库-openpyxl的使用

Python3 读取和写入excel xlsx文件 使用openpyxl

excel数据处理二:快速完成openpyxl数据的新增修改!