使用openpyxl lib保存公式时,无法在Excel文件下保存公式

时间:2019-05-31 07:40:59

标签: python openpyxl

通过openpyxl python脚本保存时,Excel工作表中的公式将被删除。

有什么方法可以保存excel文件,而无需使用python脚本删除公式

预期:不应删除公式,而应该通过openpyxl lib读取数据

实际:已读取数据,但公式已被删除

3 个答案:

答案 0 :(得分:0)

如果您使用data_only = True作为参数读取文件,则会从公式而不是公式中读取值。 来自docs

  

data_only 控制具有公式的单元格是否具有公式(默认值)或上一次Excel读取工作表时存储的值。

答案 1 :(得分:0)

通过xlswings,此问题已解决

答案 2 :(得分:-1)

我能够为我的任务成功解决此问题。 首先不要使用data_only参数。仅使用-定义Excel和工作表 例如:

exl = openpyxl.load_workbook(exlFile)
sheet = exl["Sheet1"]

现在再次使用data_only=true定义相同的excel

exl1 = openpyxl.load_workbook(exlFile, data_only=True)
sheet1 = exl1["Sheet1"]

现在,当从excel读取数据时,在写回excel时使用sheet1,请使用工作表。 另外,在保存工作簿时,请使用exl.save(exlFile)代替exl1.save(exlFile)

有了这个,我得以保留所有公式,还可以更新所需的单元格。 让我知道这是否足够或需要更多信息。