openpyxl 2.4.2:公式生成的单元格值保存后为空

openpyxl 2.4.2: cell value generated by formula empty after saving

我使用 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)

问题是,当我保存文件时,其他单元格被修改了。事实上,我的 sheet 中包含公式的单元格是 "corrupted",文件大小大大减少,当我使用其他脚本读取 sheet 时,包含公式的单元格报告为空的。但是当我打开 sheet 时,一切看起来都很正常,当我保存时,一切都被修复并且文件大小恢复正常。我认为问题出在 openpyxl 而不是 "calculating" 保存时的公式。这将减小文件大小并需要手动 opening/saving 才能获得真实的单元格值。如果不完全更改我使用的库,我找不到任何方法来解决这个问题。 任何帮助将不胜感激,谢谢!

openpyxl读写已有公式时,计算值被省略,新公式不计算值。 openpyxl 在工作簿中设置一个标志,告诉 excel 在加载时重新计算公式值,这就是为什么当你用 excel.

查看它时一切看起来都很正常