使用Xlsxwriter在Python中将公式结果保存为后续使用的值
老实说,我前几天问过一个类似的问题,但我觉得我把问题搞得太复杂了,所以没能清楚地表达我想要的东西。
简单来说,我在使用 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
错误。