数据透视表
数据透视表是一种交互式的表,是计算、汇总和分析数据的强大工具,可助你了解数据中的对比情况、模式和趋势。
创建数据透视表
func (f *File) AddPivotTable(opt *PivotTableOption) error
根据给定的属性创建数据透视表。例如,以 Sheet1!$G$2:$M$34
作为数据源,在 Sheet1!$A$1:$E$31
选区创建数据透视表,并按照销售数据汇总求和:
package main
import (
"fmt"
"math/rand"
"github.com/360EntSecGroup-Skylar/excelize"
)
func main() {
f := excelize.NewFile()
// 在工作表中添加数据
month := []string{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}
year := []int{2017, 2018, 2019}
types := []string{"Meat", "Dairy", "Beverages", "Produce"}
region := []string{"East", "West", "North", "South"}
f.SetSheetRow("Sheet1", "A1", &[]string{"Month", "Year", "Type", "Sales", "Region"})
for i := 0; i < 30; i++ {
f.SetCellValue("Sheet1", fmt.Sprintf("A%d", i+2), month[rand.Intn(12)])
f.SetCellValue("Sheet1", fmt.Sprintf("B%d", i+2), year[rand.Intn(3)])
f.SetCellValue("Sheet1", fmt.Sprintf("C%d", i+2), types[rand.Intn(4)])
f.SetCellValue("Sheet1", fmt.Sprintf("D%d", i+2), rand.Intn(5000))
f.SetCellValue("Sheet1", fmt.Sprintf("E%d", i+2), region[rand.Intn(4)])
}
err := f.AddPivotTable(&excelize.PivotTableOption{
DataRange: "Sheet1!$A$1:$E$31",
PivotTableRange: "Sheet1!$G$2:$M$34",
Rows: []string{"Month", "Year"},
Columns: []string{"Type"},
Data: []string{"Sales"},
})
if err != nil {
fmt.Println(err)
}
err = f.SaveAs("Book1.xlsx")
if err != nil {
fmt.Println(err)
}
}