在fisrt,我使用xlsxwriter在一个单元格中编写一个简单的公式并关闭* .xlsx文件。然后我尝试读取单元格的值,但只在同一程序中使用xlrd从单元格中读取“0”。
如果我在单元格中读取一些固定值(如字符串或常数),则效果很好。 如果我在* .xlsx文件中手动创建公式单元格,则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
我该如何解决?非常感谢!