当前位置: 首页 > 面试题库 >

Openpyxl 1.8.5:使用openpyxl读取在单元格中键入的公式的结果

宦书
2023-03-14
问题内容

我在一张Excel工作表中打印一些公式:

wsOld.cell(row = 1, column = 1).value = "=B3=B4"

但是我不能将其结果用于实现其他一些逻辑,例如:

if((wsOld.cell(row=1, column=1).value)='true'):
    # copy the 1st row to another sheet

即使当我尝试在命令行中打印结果时,我最终也会打印公式:

>>> print(wsOld.cell(row=1, column=1))
>>> =B3=B4

如何在单元格中而不是公式本身中获得公式的结果?


问题答案:

openpyxl支持公式或公式的值。您可以data_only在打开工作簿时使用该标志选择哪个。但是,openpyxl不会也不会计算公式的结果。有一些像pycel这样的库,据称可以做到这一点。



 类似资料:
  • 我试图从excel文件中读取所有数据,其中也有一些公式单元格,但我不知道哪个单元格是公式单元格。如何读取单元格中的所有值,而不考虑单元格的类型。 我的代码看起来像这样 我得到的公式单元格值为0

  • 我正在开发一个上传excel文件并将其值插入数据库的应用程序。 我的代码如下: 所以当我上传一个像下面这样的excel文件时,它会工作并将其数据插入db。 但是,当我上传像以下这样的excel文件时,db不会更新。 我可以问你如何解决这个问题,所以即使单元格的值是=ROUNDUP((600),2),而不是600,它仍然更新db。 提前谢谢你。

  • 我正在尝试使用OpenPyxl和Python 2.7向现有的XLSX文档添加新的工作表。添加单元格是可行的,但单元格是隐藏的,实际上是整个列。 这是代码: 我在生成的电子表格中没有看到“foo”。

  • 我正在写一个程序: 打开excel文件 根据下面的代码片段,我可以成功地写下公式,检查excel文件将得到正确的总和。 可悲的是,当我读到公式的值时,它应该是“101.0”,它给了我一个“0.0”。 我尝试了通过微软电子表格应用程序编写一个公式来比较程序读取时返回的值。结果,对于我的程序编写的公式,它是同一个不正确的值,但是对于使用微软电子表格编写的公式,这个值被完美地读取了。 我错过了什么?为什

  • 我正在尝试使用openpyxl从Excel电子表格中删除单元格。这似乎是一个非常基本的命令,但我已经四处查看了,不知道如何执行。我可以将它们的值设置为“无”,但它们仍然作为空单元格存在。工作表。垃圾收集()抛出一个错误,表示它已弃用。我使用的是openpyxl的最新版本。有没有办法只删除一个空单元格(就像在Excel中那样),或者我必须手动将所有单元格上移?谢谢