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

使用openpyxl是否可同时为Excel单元格写入公式与对应值?

这个需求完全可实现,不需要手动修改底层XML,用openpyxl原生功能就能完成。

openpyxl的单元格对象提供了专门的cached_value属性,对应你需要的<v>标签存储的公式缓存值。你用pycel计算出结果后直接给这个属性赋值即可,保存文件时会自动把值写入<v>标签,公式本身会保留在<f>标签里,完全满足你的需求。

修改后的可用示例代码如下:

from openpyxl import Workbook

wb = Workbook()
ws = wb.active
ws['A1'], ws['A2'] = 1, 2

# 写入公式
ws['A3'] = '=SUM(A1:A2)'
# 直接设置缓存值,可替换为pycel的计算结果
ws['A3'].cached_value = 3

ws['A4'] = '=SWITCH(A1:A2, 1, 2, 2, 1)'
# 同理设置你计算好的结果
ws['A4'].cached_value = 2

wb.save('testing_xml.xlsx')

运行后再解压查看sheet1.xml,就能看到A3和A4对应的<v>标签已经有你设置的值了,不需要额外做XML解析、修改的操作。该功能在openpyxl 2.6及以上版本都支持,不需要额外安装依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:45:03