Excelize pkg.go Golang

我正在使用 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)

    }

}

谢谢你们


慕桂英3389331
浏览 61回答 1
1回答

米脂

您的代码存在三个问题:首先,您将数值添加为字符串。您应该使用整数作为第三个参数: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。所以你也必须改变它。
打开App,查看更多内容
随时随地看视频慕课网APP