【发布时间】:2020-03-19 11:22:40
【问题描述】:
import xlsxwriter
import pandas as pd
workbook = xlsxwriter.Workbook('Expenses01.xlsx')
worksheet = workbook.add_worksheet()
expenses = (
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
)
row = 0
col = 0
for item, cost in (expenses):
worksheet.write(row, col, item)
worksheet.write(row, col + 1, cost)
row += 1
worksheet.write(row, 0, 'Total')
worksheet.write(row, 1, '=SUM(B1:B4)')
workbook.close()
df = pd.read_excel('Expenses01.xlsx')
r_list = df.values.tolist()
for r in r_list:
print(r)
如果我手动打开 excel 并在不更改任何内容的情况下将其关闭,则保存所有更改。 如果我保存它并用熊猫再次读取它,它会给出正确的输出和总和值。 我似乎无法理解出了什么问题。我正在使用 Excel 2016。在 excel 中,方程式运行良好。
【问题讨论】:
-
看来
read_excel方法只是解析与您的工作簿关联的 XML 文件 - 而 Excel 正在运行公式并相应地更新 XML 数据。 -
奇怪的是,如果我在运行脚本后打开 excel 并保存并关闭它,然后用 pandas 再次读取 excel。它给出了正确的输出。具有总和值。
-
在 XlsxWriter 常见问题解答中查看此问题和答案:Q. Why do my formulas show a zero result in some, non-Excel applications?。
标签: python pandas xlsxwriter excel-2016