为了账号安全,请及时绑定邮箱和手机立即绑定

Excelize pkg.go Golang

Excelize pkg.go Golang

Go
慕桂英3389331 2022-12-19 20:22:03
我正在使用 excelize 包装来操作 excel 文件。我对 setcellformula 函数有疑问,它不应用公式。我粘贴了一个基本示例,我只是在尝试func main() {    f := excelize.NewFile()    f.SetCellValue("Sheet1", "A1", "ID")    f.SetCellValue("Sheet1", "B1", "Nome")    f.SetCellValue("Sheet1", "D1", "Cognome")    f.SetCellValue("Sheet1", "C1", "Email")    f.SetCellValue("Sheet1", "D1", "IDENTITY_CARD_EXPIRE_DATE")    f.SetCellValue("Sheet1", "E1", "TOTAL")    f.SetCellValue("Sheet1", "E2", "1")    f.SetCellValue("Sheet1", "E3", "5")    f.SetCellValue("Sheet1", "E4", "10")    //formula    f.SetCellFormula("Sheet1", "E6", "=SUBTOTALE(9;E2:E8)")    f.SetColWidth("Sheet1", "A", "D", 30)    if err := f.SaveAs("Personal_Data.xlsx"); err != nil {        log.Fatal(err)    }}谢谢你们
查看完整描述

1 回答

?
米脂

TA贡献1836条经验 获得超3个赞

您的代码存在三个问题:


首先,您将数值添加为字符串。您应该使用整数作为第三个参数:


f.SetCellValue("Sheet1", "E2", 1)

f.SetCellValue("Sheet1", "E3", 5)

f.SetCellValue("Sheet1", "E4", 10)

其次,公式中不能加等号,必须用逗号代替分号,并且必须使用英文函数名:


f.SetCellFormula("Sheet1", "E6", "SUBTOTAL(9,E2:E4)")

此外,您的公式中有一个循环引用,因为它位于 E6 单元格中,但在您的示例中范围为 E2:E8,其中包含 E6。所以你也必须改变它。


查看完整回答
反对 回复 2022-12-19
  • 1 回答
  • 0 关注
  • 59 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信