openpyxl显示“=”而不是formu

2024-06-16 10:41:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我用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, "")'。在

这是发生在一堆其他的纸和一堆其他公式,我似乎找不到任何押韵或理由。我已经看过了文档,但我没有加载data_only=True,所以我不确定出了什么问题。在


Tags: falsevalueexcel形式sheet公式电子表格other
1条回答
网友
1楼 · 发布于 2024-06-16 10:41:27

这听起来很像你在看使用“共享公式”的单元格。在这种情况下,多个单元格使用相同的公式。公式本身只与其中一个单元格一起存储,所有其他单元格都标记为公式,但只包含一个引用。在openpyxl的2.3版本之前,所有这些单元格都将返回“=”作为它们的值。但是,版本2.3现在对从属单元格执行必要的公式转换。也就是说,A1的共享公式“=A1+1”将转换为B1的“=B1+1”。在

如果尚未使用,请升级到2.3。在

如果不是这样,请提交一个错误报告与样本文件。在

相关问题 更多 >