我正在使用 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 回答
![?](http://img1.sycdn.imooc.com/545864490001b5bd02200220-100-100.jpg)
米脂
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。所以你也必须改变它。
- 1 回答
- 0 关注
- 78 浏览
添加回答
举报
0/150
提交
取消