工作簿
创建
func NewFile() *File
使用 NewFile
新建 Excel 工作薄,新创建的工作簿中会默认包含一个名为 Sheet1
的工作表。
打开
func OpenFile(filename string) (*File, error)
使用 OpenFile
打开已有 Excel 文档。
保存
func (f *File) Save() error
使用 Save
保存对 Excel 文档的编辑。
另存为
func (f *File) SaveAs(name string) error
使用 SaveAs
保存 Excel 文档为指定文件。
新建工作表
func (f *File) NewSheet(name string) int
根据给定的工作表名称添加新的工作表,并返回工作表索引。新创建的工作簿将会包含一个名为 Sheet1
的默认工作簿。
删除工作表
func (f *File) DeleteSheet(name string)
根据给定的工作表名称删除指定工作表,谨慎使用此方法,这将会影响到与被删除工作表相关联的公式、引用、图表等元素。如果有其他组件引用了被删除工作表上的值,将会引发错误提示,甚至将会导致打开工作簿失败。当工作簿中仅包含一个工作表时,调用此方法无效。
复制工作表
func (f *File) CopySheet(from, to int) error
根据给定的被复制工作表与目标工作表索引复制工作表,目标工作表索引需要开发者自行确认是否已经存在。目前支持仅包含单元格值和公式的工作表间的复制,不支持包含表格、图片、图表和透视表等元素的工作表之间的复制。
// 名称为 Sheet1 的工作表已经存在 ...
index := xlsx.NewSheet("Sheet2")
err := xlsx.CopySheet(1, index)
return err
设置工作表背景图片
func (f *File) SetSheetBackground(sheet, picture string) error
根据给定的工作表名称和图片地址为指定的工作表设置平铺效果的背景图片。
设置默认工作表
func (f *File) SetActiveSheet(index int)
根据给定的索引值设置默认工作表,索引的值应该大于 0
且小于工作簿所包含的累积工作表总数。
获取默认工作表索引
func (f *File) GetActiveSheetIndex() int
获取默认工作表的索引,如果没有找到默认工作表将返回 0
。
获取工作表视图属性
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
的工作表上最后一个视图的网格线属性设置:
var showGridLines excelize.ShowGridLines
err = f.GetSheetViewOptions("Sheet1", -1, &showGridLines)
- 例2:
xl := excelize.NewFile()
const sheet = "Sheet1"
var (
defaultGridColor excelize.DefaultGridColor
rightToLeft excelize.RightToLeft
showFormulas excelize.ShowFormulas
showGridLines excelize.ShowGridLines
showRowColHeaders excelize.ShowRowColHeaders
zoomScale excelize.ZoomScale
topLeftCell excelize.TopLeftCell
)
if err := xl.GetSheetViewOptions(sheet, 0,
&defaultGridColor,
&rightToLeft,
&showFormulas,
&showGridLines,
&showRowColHeaders,
&zoomScale,
&topLeftCell,
); err != nil {
panic(err)
}
fmt.Println("Default:")
fmt.Println("- defaultGridColor:", defaultGridColor)
fmt.Println("- rightToLeft:", rightToLeft)
fmt.Println("- showFormulas:", showFormulas)
fmt.Println("- showGridLines:", showGridLines)
fmt.Println("- showRowColHeaders:", showRowColHeaders)
fmt.Println("- zoomScale:", zoomScale)
fmt.Println("- topLeftCell:", `"`+topLeftCell+`"`)
if err := xl.SetSheetViewOptions(sheet, 0, excelize.TopLeftCell("B2")); err != nil {
panic(err)
}
if err := xl.GetSheetViewOptions(sheet, 0, &topLeftCell); err != nil {
panic(err)
}
if err := xl.SetSheetViewOptions(sheet, 0, excelize.ShowGridLines(false)); err != nil {
panic(err)
}
if err := xl.GetSheetViewOptions(sheet, 0, &showGridLines); err != nil {
panic(err)
}
fmt.Println("After change:")
fmt.Println("- showGridLines:", showGridLines)
fmt.Println("- topLeftCell:", topLeftCell)
得到输出:
Default:
- defaultGridColor: true
- rightToLeft: false
- showFormulas: false
- showGridLines: true
- showRowColHeaders: true
- zoomScale: 0
- topLeftCell: ""
After change:
- showGridLines: false
- topLeftCell: B2