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_only 和 write_only 选项进行优化,但是当我为 仅 1 张 运行数据复制代码时(不是整个394MB 文件),我得到一个 MemoryError。
如果添加数据分析代码,则只能处理较小的文件。
我还没有尝试过针对大文件处理的优化技术吗?
【问题讨论】:
当我尝试对小表格(410500 行 x 17 列)进行数据复制时,但结果相同。内存错误。 【参考方案1】:还有其他线程有同样的错误问题:
Memory Error Thread 1 Memory Error Thread 2
对你的问题有帮助吗?
【讨论】:
以上是关于openpyxl,处理大型excel文件的主要内容,如果未能解决你的问题,请参考以下文章
5 分钟掌握 openpyxl 操作:Python 轻松处理 Excel