使用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之外的任何库或模块。干杯!
谢谢您的帮助!