为什么Python XlsxWriter写入的单元格公式无法自动生效?
问题原因
XlsxWriter生成Excel文件时默认不会预计算公式的缓存值,若使用的Excel客户端未开启默认自动重算,就会出现公式无法直接生效、仅修改单元格触发重算后才显示正确结果的问题。
解决方案
方案1:设置工作簿自动计算模式
新增一行代码设置工作簿计算模式为自动,Excel打开文件时会自动触发所有公式的计算,无需用户手动操作:
import xlsxwriter path = "你的文件存储路径.xlsx" workbook = xlsxwriter.Workbook(path) # 新增如下配置行 workbook.set_calc_mode('auto') worksheet = workbook.add_worksheet() worksheet.write(0, 0, 5, None) worksheet.write(1, 0, 3, None) worksheet.write(2, 0, 9, None) worksheet.write(3, 0, '=SUM(A1:A3)', None) workbook.close()
方案2:预传公式计算结果(兼容关闭自动重算的场景)
如果需要兼容Excel客户端关闭自动重算的场景,可以使用write_formula方法写入公式,同时传入提前计算好的结果作为缓存值,打开文件时无需重算就能直接显示正确结果,原有公式也依然生效:
import xlsxwriter path = "你的文件存储路径.xlsx" workbook = xlsxwriter.Workbook(path) worksheet = workbook.add_worksheet() # 提前计算数值总和 val1, val2, val3 = 5, 3, 9 sum_val = val1 + val2 + val3 worksheet.write(0, 0, val1, None) worksheet.write(1, 0, val2, None) worksheet.write(2, 0, val3, None) # 写入公式的同时传入预计算的结果 worksheet.write_formula(3, 0, '=SUM(A1:A3)', None, sum_val) workbook.close()
内容的提问来源于stack exchange,提问作者Asta
相关产品推荐
相关产品推荐

