为什么有这个库?
Excelize 是 Go 语言编写的用于操作 Office Excel 文档的基础库。我们可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM 等多种文档格式,高度兼容可以处理多种复杂组件的文档,并提供流式读写 API,并用于处理包含大规模数据的工作簿。使用本类库要求使用的 Go 语言为 1.10 或更高版本。
Source Code: github.com/360EntSecGroup-Skylar/excelize
如何使用第三方库excelize创建excel?
- 首先下载第三方库:
go get github.com/360EntSecGroup-Skylar/excelize
如果使用Go Modules 管理软件包,请在项目中使用go mod init excelize 然后再使用go get github.com/360EntSecGroup-Skylar/excelize - 直接看例子:
package main
import (
"fmt"
"github.com/360EntSecGroup-Skylar/excelize"
)
func main1() {
//创建一个excel工作簿
f := excelize.NewFile()
//创建一个工作表
sheetNum := f.NewSheet("Sheet2")
//设置单元格的值
f.SetCellValue("Sheet2", "A2", "hello excel!")
f.SetCellValue("Sheet1", "B2", "hello B2!")
//获取工作表中指定单元格的值
cell := f.GetCellValue("Sheet1", "B2")
fmt.Println(cell)
//设置工作簿的默认工作表
f.SetActiveSheet(sheetNum)
//根据指定路径保存文件
if err := f.SaveAs("Book1.xlsx"); err != nil {
fmt.Println(err)
}
}
直接运行go run main.go在同级目录下生成一个Book1.xlsx文件,
f.SetCellValue("Sheet2", "A2", "hello excel!")
对应如下
f.SetCellValue("Sheet1", "B2", "hello B2!")
对应如下:
如何打开指定的excel文件?
代码如下:
package main
import (
"fmt"
"github.com/360EntSecGroup-Skylar/excelize"
)
func main() {
//打开一个excel工作簿
f, err := excelize.OpenFile("Book1.xlsx")
if err != nil {
fmt.Println(err)
return
}
//获取指定表
rows := f.GetRows("Sheet1")
for _, row := range rows { //遍历所有行
for _, colCell := range row { //遍历一行
fmt.Println(colCell, "\t")
}
}
}
运行代码后打开文件内容·如下:
输出结果为: