显示“=”而不是公式的openpyxl
我正在使用openpyxl阅读一个Excel电子表格,有很多公式。 对于某些单元格,如果我访问单元格的值,例如sheet['M30'].value
我得到如下的公式: '=IFERROR(VLOOKUP(A29, other_wksheet, 9, FALSE)*E29, "")'
。 但奇怪的是,如果我试图访问另一个单元格的值,例如sheet['M31'].value
我得到的就是=
,即使在Excel中该单元格与M30基本相同: '=IFERROR(VLOOKUP(A30, other_wksheet, 9, FALSE)*E29, "")'
。
这是发生在其他一堆其他公式的一堆其他工作表,我似乎无法find任何押韵或原因。 我查看了文档,我没有加载data_only=True
所以我不知道发生了什么问题。
这听起来很像你正在使用“共享公式”看单元格。 当这种情况下,几个单元格使用相同的公式。 公式本身只存储在其中一个单元格中,其他所有单元格都被标记为公式,但只包含一个引用。 直到版本2.3的openpyxl所有这些单元格将返回“=”作为它们的值。 但是,版本2.3现在执行从属单元公式的必要转换。 即。 对A1来说,一个共享公式“= A1 + 1”将被转换为“= B1 + 1”。
如果您尚未使用,请升级到2.3。
如果情况不是这样,那么请提交一份包含示例文件的错误报告。