我使用openpyxl打开文件,编辑一些单元格并保存更改。
这是一个例子:

  import openpyxl
  book = openpyxl.load_workbook(sheet_path)
  sheet = book.active

  for row in range(sheet.max_row):
      index = row + 1
      sheet.cell(row=index, column=1).value = "something"

  book.save(sheet_path)

问题是,当我保存文件时,其他单元格也会被修改。实际上,我的包含公式的工作表中的单元格已“损坏”,文件大小大大减小了,当我使用其他脚本读取工作表时,包含公式的单元格被报告为空。但是,当我打开工作表时,一切看起来都很正常,而当我保存时,一切都得到了修复,文件大小又恢复了正常。我认为问题出在保存时,openpyxl没有“计算”公式。这将减小文件大小,并且需要手动打开/保存才能获取实际的单元格值。在不完全更改我使用的库的情况下,我找不到解决此问题的任何方法。
任何帮助,将不胜感激,谢谢!

最佳答案

当openpyxl读取和写入现有公式时,将忽略计算值,并且不会为新公式计算值。
openpyxl在工作簿中设置一个标志,该标志告诉excel在加载时重新计算公式值,这就是为什么当您使用excel查看时,一切看起来都很正常。

关于python - openpyxl 2.4.2 : cell value generated by formula empty after saving,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42376662/

10-12 21:06