数据透视表

数据透视表是一种交互式的表,是计算、汇总和分析数据的强大工具,可助你了解数据中的对比情况、模式和趋势。

创建数据透视表

  1. func (f *File) AddPivotTable(opt *PivotTableOption) error

根据给定的属性创建数据透视表。例如,以 Sheet1!$G$2:$M$34 作为数据源,在 Sheet1!$A$1:$E$31 选区创建数据透视表,并按照销售数据汇总求和:

使用 Go 语言通过 exceliz 创建数据透视博表

  1. package main
  2. import (
  3. "fmt"
  4. "math/rand"
  5. "github.com/360EntSecGroup-Skylar/excelize"
  6. )
  7. func main() {
  8. f := excelize.NewFile()
  9. // 在工作表中添加数据
  10. month := []string{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}
  11. year := []int{2017, 2018, 2019}
  12. types := []string{"Meat", "Dairy", "Beverages", "Produce"}
  13. region := []string{"East", "West", "North", "South"}
  14. f.SetSheetRow("Sheet1", "A1", &[]string{"Month", "Year", "Type", "Sales", "Region"})
  15. for i := 0; i < 30; i++ {
  16. f.SetCellValue("Sheet1", fmt.Sprintf("A%d", i+2), month[rand.Intn(12)])
  17. f.SetCellValue("Sheet1", fmt.Sprintf("B%d", i+2), year[rand.Intn(3)])
  18. f.SetCellValue("Sheet1", fmt.Sprintf("C%d", i+2), types[rand.Intn(4)])
  19. f.SetCellValue("Sheet1", fmt.Sprintf("D%d", i+2), rand.Intn(5000))
  20. f.SetCellValue("Sheet1", fmt.Sprintf("E%d", i+2), region[rand.Intn(4)])
  21. }
  22. err := f.AddPivotTable(&excelize.PivotTableOption{
  23. DataRange: "Sheet1!$A$1:$E$31",
  24. PivotTableRange: "Sheet1!$G$2:$M$34",
  25. Rows: []string{"Month", "Year"},
  26. Columns: []string{"Type"},
  27. Data: []string{"Sales"},
  28. })
  29. if err != nil {
  30. fmt.Println(err)
  31. }
  32. err = f.SaveAs("Book1.xlsx")
  33. if err != nil {
  34. fmt.Println(err)
  35. }
  36. }