一、背景
项目中用到了Excel,主要在两个方面:
1、读取excel中的信息;
2、根据已知数据,生成excel的报表。
二、简介
因为使用的GO语言开发的项目,用到了"Excelize"这个包。
Excelize: 是Go语言编写的用于操作 Office Excel 文档基础库。
官网:https://xuri.me/excelize/
GitHub: https://github.com/360EntSecG…
GO.DEV: https://pkg.go.dev/github.com…
三、环境
开发环境:
环境 | 版本 | 备注 |
---|---|---|
OS | MacOS | |
Golang | 1.14 | |
Excelize | v1.4.1 |
四、安装
使用最新版本 Excelize 要求您使用的 Go 语言为 1.10 或更高版本。
- 安装命令
go get github.com/360EntSecGroup-Skylar/excelize
五、范例
5.1 生成excel
package mainimport "github.com/360EntSecGroup-Skylar/excelize"func main() { f := excelize.NewFile() // 创建一个工作表 index := f.NewSheet("Sheet1") //隐藏名称为 Sheet1 的工作表中的 D 至 F 列: f.SetColVisible("Sheet1", "D:F", false) //根据给定的工作表名称(大小写敏感)、列范围和宽度值设置单个或多个列的宽度。 //例如设置名为 Sheet1 工作表上 A 到 D 列的宽度为 20: f.SetColWidth("Sheet1", "A", "D", 20) //根据给定的工作表名称(大小写敏感)、行号和高度值设置单行高度。 //例如设置名为 Sheet1 工作表第二行行的高度为 50: f.SetRowHeight("Sheet1", 2, 50) // 设置单元格的值 f.SetCellValue("Sheet1", "A2", 100) //根据给定的工作表名(大小写敏感)和单元格坐标区域合并单元格。例如,合并名为 Sheet1 的工作表上 D3:E9 区域内的单元格: f.MergeCell("Sheet1", "D3", "D4") f.SetCellValue("Sheet1", "D3", 1000) f.SetCellValue("Sheet1", "D5", "hello") // 设置工作簿的默认工作表 f.SetActiveSheet(index) // 根据指定路径保存文件 if err := f.SaveAs("Book1.xlsx"); err != nil { println(err.Error()) }}
结果如下图
5.2 读取excel
表格内容
代码:
package mainimport "github.com/360EntSecGroup-Skylar/excelize"func main() { f, err := excelize.OpenFile("book.xlsx") if err != nil { println(err.Error()) return } // 获取工作表中指定单元格的值 cell := f.GetCellValue("Sheet1", "B2") println(cell) // 获取 Sheet1 上所有单元格 rows := f.GetRows("Sheet1") for _, row := range rows { for _, colCell := range row { print(colCell, "\t") } println() }}
代码输出:
参考链接:
文章来源:智云一二三科技
文章标题:golang基础学习-Excel使用
文章地址:https://www.zhihuclub.com/3519.shtml