使用xlsxwriterclosures然后使用xlrd读取excel文件后,无法读取公式的值

在fisrt中,我使用xlsxwriter在一个单元格中写入一个简单的公式,并closures* .xlsx文件。 然后我尝试读取单元格的值,但只在同一个程序中使用xlrd从单元格中读取“0”。

如果我在单元格中读取一些固定值(如string或常数),那么效果很好。 如果我在* .xlsx文件中手动创build公式单元格,则xlrd也可以获取公式的值。

看来,只有当我写一个forumla到* .xlsx然后在同一个程序中读取,我才能读取公式单元格的值。

Python:3.4.3 xlrd:1.0.0 xlsxwriter:0.9.3

import xlrd import xlsxwriter name = 'abc.xlsx' sheet_name = 'sheet1' # write a formula in 'D1' as '=A1+C1' out_book = xlsxwriter.Workbook(name, {'im_memory': True}) out_sheet = out_book.add_worksheet(sheet_name) out_sheet.write('A1', 1) out_sheet.write('C1', 2) out_sheet.write_formula(0, 3, '=A1+C1') out_book.close() #After closing excel, read the cell tmp = xlrd.open_workbook(name) sheet = tmp.sheet_by_name(sheet_name) #show '2.0' print (sheet.cell_value(0, 2)) #show '0.0' print (sheet.cell_value(0, 3)) 

其结果是:2.0 0.0

但我期望它是:2.0 3.0

我该如何解决? 非常感谢!

XlsxWriter不会将公式的值写入Excel。 请参阅文档的公式结果部分。