工作簿

创建

  1. func NewFile() *File

使用 NewFile 新建 Excel 工作薄,新创建的工作簿中会默认包含一个名为 Sheet1 的工作表。

打开

  1. func OpenFile(filename string) (*File, error)

使用 OpenFile 打开已有 Excel 文档。

保存

  1. func (f *File) Save() error

使用 Save 保存对 Excel 文档的编辑。

另存为

  1. func (f *File) SaveAs(name string) error

使用 SaveAs 保存 Excel 文档为指定文件。

新建工作表

  1. func (f *File) NewSheet(name string) int

根据给定的工作表名称添加新的工作表,并返回工作表索引。新创建的工作簿将会包含一个名为 Sheet1 的默认工作簿。

删除工作表

  1. func (f *File) DeleteSheet(name string)

根据给定的工作表名称删除指定工作表,谨慎使用此方法,这将会影响到与被删除工作表相关联的公式、引用、图表等元素。如果有其他组件引用了被删除工作表上的值,将会引发错误提示,甚至将会导致打开工作簿失败。当工作簿中仅包含一个工作表时,调用此方法无效。

复制工作表

  1. func (f *File) CopySheet(from, to int) error

根据给定的被复制工作表与目标工作表索引复制工作表,目标工作表索引需要开发者自行确认是否已经存在。目前支持仅包含单元格值和公式的工作表间的复制,不支持包含表格、图片、图表和透视表等元素的工作表之间的复制。

  1. // 名称为 Sheet1 的工作表已经存在 ...
  2. index := xlsx.NewSheet("Sheet2")
  3. err := xlsx.CopySheet(1, index)
  4. return err

设置工作表背景图片

  1. func (f *File) SetSheetBackground(sheet, picture string) error

根据给定的工作表名称和图片地址为指定的工作表设置平铺效果的背景图片。

设置默认工作表

  1. func (f *File) SetActiveSheet(index int)

根据给定的索引值设置默认工作表,索引的值应该大于 0 且小于工作簿所包含的累积工作表总数。

获取默认工作表索引

  1. func (f *File) GetActiveSheetIndex() int

获取默认工作表的索引,如果没有找到默认工作表将返回 0

获取工作表视图属性

  1. func (f *File) GetSheetViewOptions(name string, viewIndex int, opts ...SheetViewOptionPtr) error

根据给定的工作表名称、视图索引获和视图参数取工作表视图属性,viewIndex 可以是负数,如果是这样,则向后计数(-1 代表最后一个视图)。

可选视图参数 类型
DefaultGridColor bool
RightToLeft bool
ShowFormulas bool
ShowGridLines bool
ShowRowColHeaders bool
  • 例1,获取名为 Sheet1 的工作表上最后一个视图的网格线属性设置:
  1. var showGridLines excelize.ShowGridLines
  2. err = f.GetSheetViewOptions("Sheet1", -1, &showGridLines)
  • 例2:
  1. xl := excelize.NewFile()
  2. const sheet = "Sheet1"
  3. var (
  4. defaultGridColor excelize.DefaultGridColor
  5. rightToLeft excelize.RightToLeft
  6. showFormulas excelize.ShowFormulas
  7. showGridLines excelize.ShowGridLines
  8. showRowColHeaders excelize.ShowRowColHeaders
  9. zoomScale excelize.ZoomScale
  10. topLeftCell excelize.TopLeftCell
  11. )
  12. if err := xl.GetSheetViewOptions(sheet, 0,
  13. &defaultGridColor,
  14. &rightToLeft,
  15. &showFormulas,
  16. &showGridLines,
  17. &showRowColHeaders,
  18. &zoomScale,
  19. &topLeftCell,
  20. ); err != nil {
  21. panic(err)
  22. }
  23. fmt.Println("Default:")
  24. fmt.Println("- defaultGridColor:", defaultGridColor)
  25. fmt.Println("- rightToLeft:", rightToLeft)
  26. fmt.Println("- showFormulas:", showFormulas)
  27. fmt.Println("- showGridLines:", showGridLines)
  28. fmt.Println("- showRowColHeaders:", showRowColHeaders)
  29. fmt.Println("- zoomScale:", zoomScale)
  30. fmt.Println("- topLeftCell:", `"`+topLeftCell+`"`)
  31. if err := xl.SetSheetViewOptions(sheet, 0, excelize.TopLeftCell("B2")); err != nil {
  32. panic(err)
  33. }
  34. if err := xl.GetSheetViewOptions(sheet, 0, &topLeftCell); err != nil {
  35. panic(err)
  36. }
  37. if err := xl.SetSheetViewOptions(sheet, 0, excelize.ShowGridLines(false)); err != nil {
  38. panic(err)
  39. }
  40. if err := xl.GetSheetViewOptions(sheet, 0, &showGridLines); err != nil {
  41. panic(err)
  42. }
  43. fmt.Println("After change:")
  44. fmt.Println("- showGridLines:", showGridLines)
  45. fmt.Println("- topLeftCell:", topLeftCell)

得到输出:

  1. Default:
  2. - defaultGridColor: true
  3. - rightToLeft: false
  4. - showFormulas: false
  5. - showGridLines: true
  6. - showRowColHeaders: true
  7. - zoomScale: 0
  8. - topLeftCell: ""
  9. After change:
  10. - showGridLines: false
  11. - topLeftCell: B2

原文: https://xuri.me/excelize/zh-hans/workbook.html