OpenPyXl:以write_only模式打开现有电子表格

时间:2018-11-26 10:11:38

标签: python excel openpyxl xlsxwriter

使用OpenPyXl将数据流传输到现有Excel模板时,我遇到了内存消耗问题。

我的过程如下: 1.打开现有模板 2.将数据流化为3个不同的工作表 3.保存工作簿并下载给用户

以下代码:     路径= r'template.xlsx'

output = BytesIO()
# Saving to Excel
book = load_workbook(path)

days_ws = book['Days']
for r in dataframe_to_rows(days_df, index=True, header=True):
    days_ws.append(r)

rates_ws = book['Daily Rates']
for r in dataframe_to_rows(rates_df, index=True, header=True):
    rates_ws.append(r)

settings_ws = book['Settings']
for r in dataframe_to_rows(settings_df, index=True, header=True):
    settings_ws.append(r)


with NamedTemporaryFile() as tmp:
    book.save(tmp.name)
    tmp.seek(0)
    stream = tmp.read()

我想实现的功能是能够以write_only模式打开现有的电子表格,以使数据流式传输到工作簿中而不会占用大量内存。我知道在创建工作表时这是可能的,但是我无法使用现有的工作表来查找示例。

如果有人有其他建议,我很乐意使用OpenPyXl之外的任何库或模块。干杯!

谢谢您的帮助!


0 个答案:

没有答案