openpyxl通过load_workbook加载文件写入AVERAGE公式后单元格为空
问题原因
- 参数配置错误:使用
load_workbook()加载文件时若设置了data_only=True,openpyxl会仅读取单元格的计算结果,丢弃所有公式信息,且该模式下写入的公式不会被正常保存,只有单元格格式会生效,和你遇到的现象完全吻合。 - 版本兼容性问题:你使用的openpyxl 3.0.5属于较早版本,存在写入公式到已加载工作簿时丢失公式内容的已知bug,仅会保留单元格的格式属性。
解决步骤
- 修正文件加载参数
确保加载已有Excel文件时data_only参数保持默认值False,正确加载示例如下:
from openpyxl import load_workbook wb = load_workbook("你的目标文件路径.xlsx", data_only=False)
- 升级openpyxl版本
直接升级到最新稳定版即可修复版本bug,执行以下命令升级:pip install --upgrade openpyxl - 验证写入结果
写入公式后、保存文件前,可以打印目标单元格的value确认公式已正确写入:
print(ws.cell(100, 2).value) # 预期输出为:=AVERAGE(B2:B98)
额外说明:保持公式使用英文函数名、逗号作为参数分隔符即可,不需要适配本地语言的函数名,Excel打开时会自动转换为对应系统语言的函数。
内容的提问来源于stack exchange,提问作者Egelbets
相关产品推荐
相关产品推荐

