使用Xlsxwriter在Python中将公式结果保存为后续使用的值

1 投票
1 回答
765 浏览
提问于 2025-04-18 15:53

老实说,我前几天问过一个类似的问题,但我觉得我把问题搞得太复杂了,所以没能清楚地表达我想要的东西。

简单来说,我在使用 xlsxwriter 的时候,想找到一种方法,把公式的结果存储为一个数字值,这样我就可以在脚本的后面引用这个值,避免重新计算。我还想提一下,我在这个过程中会生成两个不同的 Excel 文件,所以我想避免在第二个 Excel 文件中出现可怕的 #REF! 错误。

抱歉我的代码写得很粗糙,但我想要的东西大概是下面这样的,'result' 应该被赋值为一个数字,比如 '12.56',这样当我写入第二个 Excel 文件时,就能避免重新计算,直接输入 'result' 的值。

# on first EXCEL workbook calculate result and store as number
cell_range = xl_range(0, col+3, tot, col+3)
formula = '=AVERAGE(DATA!%s)' % cell_range
worksheetFILTER_ON.write('O2', formula ,bold)

result = formula 

# on second EXCEL workbook print numerical result
worksheetMAIN.write('A1', result ,bold)

希望这次的解释比我上次的尝试更清楚一些。

谢谢,
MikG

1 个回答

0

这个更新说得更清楚了一些,但问题还是缺少一个能帮助别人回答的部分:一个简单的工作示例。

需要注意的是,XlsxWriter并不会计算公式的结果。上面代码中的result变量只是指向formula变量,而formula是一个字符串,比如'=AVERAGE(DATA!A1:D4)'

如果你在一个没有名为DATA的工作表的情况下使用这个公式,那么你可能会遇到你提到的#REF错误。

撰写回答