背景
近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。
组件基本信息
内容
本节我们分享的是基于Golang语言的Excel文件读写组件excelize
Excelize是一个用纯Go编写的库,提供了一组函数,允许你写入和读取XLAM / XLSM / XLSX / XLTM / XLTX文件。支持读取和写入由Microsoft Excel™2007及更高版本生成的电子表格文档。高兼容性支持复杂组件,提供流API,用于生成或从数据量大的工作表读取数据。此库需要Go 1.15或更高版本。完整的API文档可以通过go内置的文档工具查看,也可以在线查看go.dev和docs参考。
具体使用方式如下:
1、安装基础包
go get github.com/xuri/excelize/v2
2、创建一个excel并存储内容
package main
import (
"fmt"
"github.com/xuri/excelize/v2"
)
func main() {
f := excelize.NewFile()
// 创建一个新的 sheet.
index := f.NewSheet("Sheet2")
// 设置单元格的值
f.SetCellValue("Sheet2", "A2", "Hello world.")
f.SetCellValue("Sheet1", "B2", 100)
// 设置工作簿的活动表。
f.SetActiveSheet(index)
// 保存文件
if err := f.SaveAs("Book1.xlsx"); err != nil {
fmt.Println(err)
}
}
这样我们就完成了一个简单的excel文件创建和内容存储,是不是很简单,在我们日常导出一些数据时这个方式是非常实用的一个方法。
3、如果想要读取excel,具体案例如下:
package main
import (
"fmt"
"github.com/xuri/excelize/v2"
)
func main() {
f, err := excelize.OpenFile("Book1.xlsx")
if err != nil {
fmt.Println(err)
return
}
defer func() {
// 关闭电子表格。
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
// 通过给定的工作表名称和列名从单元格获取值。
cell, err := f.GetCellValue("Sheet1", "B2")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(cell)
// 获取Sheet1中的所有行。
rows, err := f.GetRows("Sheet1")
if err != nil {
fmt.Println(err)
return
}
for _, row := range rows {
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
}
这样就可以有效读取excel中的内容了,在日常进行导入数据时进行excel解析和处理很方便。
本文声明:
知识共享许可协议本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。