Go问答 通过 360EntSecGroup-Skylar/excelize 类库 修改 Excel 单元格的值,如何让表格的公式的值重新计算?

learninto · 2020年02月26日 · 最后由 learninto 回复于 2020年03月29日 · 305 次阅读

需求描述

文件名称:模板.xlsx
工作簿:Sheet1
单元格:A1 = J2+J2
修改 J2 的值为:1,保存之后 希望 A1的值变为 2

代码如下:

dir, _ := os.Getwd()
f, err := excelize.OpenFile(dir + "/data/模板.xlsx")
if err != nil {
    _, _ = pp.Println(err.Error())
    return
}

_ = f.SetCellValue("Sheet1", "J2", 1)

f.UpdateLinkedValue()
err = f.SaveAs(dir + "/data/v1.xlsx")
更多原创文章干货分享,请关注公众号
  • 加微信实战群请加微信(注明:实战群):gocnio

库只是写文件格式的,没有执行引擎,可以试试两个办法:

  1. 用 Go 代码算好,填入结果
  2. 用 Go 代码填入 Excel 公式和输入值,用 Excel 打开文件时,会触发自动计算并更新输出单元格

如楼上所说,目前由于 Excelize 尚未实现公式引擎,所以设置的公式 或 公式引用单元格的修改,都将在文档被 Office Excel 打开时计算得到最终结果。

xuri 回复

好的,谢谢

最后采用:Java Apache POI 解决。

learninto 关闭了讨论 03月29日 13:49
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册