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

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

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