我首先使用pandas创建了一个数据透视表 . 然后我将其保存到工作表中 . 然后我使用xlwt在此工作表中编写了一些数据和公式,以便进一步处理 . 现在我试图从我之前写过公式的单元格中读取值 .
book = xlrd.open_workbook(fname)
sheet = book.sheet_by_name('Pivot Table')
print 'Spare',sheet.cell(11,10).value
此代码工作正常,并在指向没有公式的单元格(取决于其他单元格)时返回正确的值 . 但是具有公式的单元格没有返回 .
我需要一种方法来读取单元格值 . excel表中有很多公式写入,我试图读取的单元格是最后一个单元格 . 所以我不想回溯过程来获取值(通过我的脚本计算) .
我正在使用Ubuntu并拥有LibreOffice . (仅供参考,如果没有直接的方法,我们需要打开excel并获取数据)
1 回答
这是不可能做到的 .
在通过xlwt包写入excel之后,您需要打开excel并保存它 . 打开excel文件将使用计算值填充包含公式的单元格 . 然后保存excel会将这些值与公式一起保存到单元格中 .
我观察到的一些事情 -
以上情况仅适用于具有在其他单元格中使用值的公式的单元格 . 如果我尝试使用'=10+2'之类的公式读取单元格,则会返回正确的值 .
打开excel后,您需要编辑/添加一些内容以启用保存按钮/选项 .