openpyxl 2.4.2:保存

时间:2017-02-21 19:51:43

标签: python excel openpyxl

我使用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在保存时没有“计算”公式。这将减小文件大小并需要手动打开/保存以获得真实的单元格值。如果不彻底改变我使用的库,我找不到任何方法来解决这个问题。 任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:1)

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