我使用openpyxl来阅读包含大量公式的Excel电子表格。对于某些单元格,如果我访问单元格的值,例如template
我按照预期获得公式,例如sheet['M30'].value
。但奇怪的是,如果我尝试访问其他单元格的值,例如我得到的'=IFERROR(VLOOKUP(A29, other_wksheet, 9, FALSE)*E29, "")'
是sheet['M31'].value
,即使在Excel中,该单元格与M30基本相同:=
。
这是在一堆其他表格中发生的,其中包含许多其他公式,我似乎无法找到任何押韵或理由。我查看了文档,但我没有加载'=IFERROR(VLOOKUP(A30, other_wksheet, 9, FALSE)*E29, "")'
,所以我不确定出了什么问题。
答案 0 :(得分:0)
这听起来非常像您正在使用“共享公式”查看单元格。在这种情况下,几个单元使用相同的公式。公式本身仅存储在其中一个单元格中,而所有其他单元格都标记为公式,但只包含引用。在openpyxl版本2.3之前,所有这些单元格都将返回“=”作为其值。但是,2.3版本现在对依赖单元格的公式进行必要的转换。即。 A1的共享公式“= A1 + 1”将转换为B1的“= B1 + 1”。
如果您还没有使用它,请升级到2.3。
如果不是这种情况,请提交带有示例文件的错误报告。