You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用openpyxl写入含公式Excel速度慢,如何关闭计算提速

性能优化方案

你对耗时原因的判断准确,性能损耗完全来自openpyxl对文件内公式的自动全量重算,可通过以下配置优化:

  • 加载工作簿时关闭自动计算
    给load_workbook方法添加calc_mode="manual"参数,该配置会强制openpyxl跳过所有公式的重算步骤,仅保留公式原逻辑,后续在Excel中打开文件时会根据系统设置决定是否重算,不会影响公式正常使用。
  • 简化工作表加载逻辑
    如果你写入的目标工作表和包含大量公式的工作表无关联,无需加载全部工作表的映射关系,仅保留目标工作表即可,减少不必要的内存占用和处理耗时。
  • 升级openpyxl版本
    3.0以下版本的openpyxl对公式的处理存在已知性能缺陷,升级到最新稳定版通常可以直接获得30%以上的速度提升。

优化后代码示例

# 核心修改点:添加calc_mode参数关闭自动重算
book = load_workbook(file_name, calc_mode="manual")
writer = pd.ExcelWriter(file_name, engine='openpyxl')
writer.book = book
# 仅加载目标工作表时使用下行替换原有sheets赋值逻辑
# writer.sheets = {sheet_name: book[sheet_name]}
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

df.to_excel(writer, sheet_name=sheet_name, index=False)

writer.save()
writer.close()

内容的提问来源于stack exchange,提问作者ktnrpr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:09:03