Openpyxl挂起保存大文件

时间:2013-07-22 16:47:49

标签: python python-2.7 openpyxl

我写了一个脚本,它读取XML文件并将相关数据输出到TSV文件。我正在将其转换为使用openpyxl编写XLSX文件。每当我在脚本结束时保存我的工作簿时,它会在保存时挂起30秒以上。我假设这是由于我写的大量数据(10144行到'BG'列)。有没有什么方法可以优化这个以便保存更快,或者在我生成文件时直接写入文件,这样就不必在最后这样保存了?

1 个答案:

答案 0 :(得分:2)

很难说出你的问题究竟是什么,但首先应该尝试使用openpyxl optimized writer

from openpyxl import Workbook
wb = Workbook(optimized_write = True)

ws = wb.create_sheet()

# now we'll fill it with 10k rows x 200 columns
for irow in xrange(10000):
    ws.append(['%d' % i for i in xrange(200)])

wb.save('new_big_file.xlsx') # don't forget to save!

另外,请考虑在constant_memory模式下切换为xlsxwriter(请参阅docs)。

希望有所帮助。