- 例1,为名为 的工作表
A3
单元格设置普通公式 =SUM(A1,B1)
:
err := f.SetCellFormula("Sheet1", "A3", "=SUM(A1,B1)")
- 例2,为名为
Sheet1
的工作表 A3
单元格设置一维纵向常量数组(行数组)公式 1,2,3
:
- 例3,为名为
Sheet1
的工作表 A3
单元格设置一维横向常量数组(列数组)公式 "a","b","c"
:
err := f.SetCellFormula("Sheet1", "A3", "={\"a\",\"b\",\"c\"}")
- 例4,为名为
Sheet1
的工作表 A3
单元格设置二维常量数组公式 {1,2,"a","b"}
:
- 例5,为名为
Sheet1
的工作表 A3
单元格设置区域数组公式 A1:A2
:
formulaType, ref := excelize.STCellFormulaTypeArray, "A3:A3"
err := f.SetCellFormula("Sheet1", "A3", "=A1:A2",
- 例6,为名为
Sheet1
的工作表 C1:C5
区域的单元格设置共享公式 =A1+B1
,其中 C1
为主单元格:
- 例7,为名为
Sheet1
的工作表 C2
单元格设置表格公式 =SUM(Table1[[A]:[B]])
:
package main
import (
"fmt"
"github.com/xuri/excelize/v2"
)
func main() {
f := excelize.NewFile()
for idx, row := range [][]interface{}{{"A", "B", "C"}, {1, 2}} {
fmt.Println(err)
return
}
if err := f.AddTable("Sheet1", "A1", "C2",
`{"table_name":"Table1","table_style":"TableStyleMedium2"}`); err != nil {
fmt.Println(err)
return
}
formulaType := excelize.STCellFormulaTypeDataTable
if err := f.SetCellFormula("Sheet1", "C2", "=SUM(Table1[[A]:[B]])",
excelize.FormulaOpts{Type: &formulaType}); err != nil {
fmt.Println(err)
return
}
if err := f.SaveAs("Book1.xlsx"); err != nil {
fmt.Println(err)