使用xlwt将公式写入excel表后,使用xlrd公式读取单元格将返回空白

时间:2015-06-03 01:37:13

标签: excel python-2.7 pandas xlrd

我首先使用pandas创建了一个数据透视表。然后我将其保存到工作表中。然后我写了一些数据&此工作表中的公式使用xlwt进行进一步处理。现在我试图从我之前写过公式的单元格中读取值。

>>> from itertools import cycle, islice
>>> df['xyz'] = list(islice(cycle([0, 1]), len(df)))

此代码工作正常,并在指向没有公式的单元格(取决于其他单元格)时返回正确的值。但是具有公式的单元格没有返回任何内容。

我需要一种方法来读取单元格值。 excel表中有很多公式写入,我试图读取的单元格是最后一个单元格。所以我不想回溯过程来获取值(通过我的脚本计算)。

我正在使用Ubuntu并拥有LibreOffice。 (仅供参考,如果没有直接的方法,我们需要打开excel并获取数据)

1 个答案:

答案 0 :(得分:0)

这无法完成。

通过xlwt包写入excel后,需要打开excel并保存。打开excel文件将使用计算值填充包含公式的单元格。然后保存excel会将这些值与公式一起保存到单元格中。

我观察到的一些事情 -

  1. 以上情况仅适用于具有在其他单元格中使用值的公式的单元格。如果我尝试使用类似' = 10 + 2'等公式读取单元格或者什么,这会返回正确的值。
  2. 打开excel后,您需要编辑/添加一些内容以启用保存按钮/选项。