Excelize 是用 Go 语言编写的免费开源的跨平台 Go API,Excelize 提供 API 给 Go 语言程序对 Excel 电子表格文档进行读写操作。
开源代码
GitHub: https://github.com/xuri/excelize
基本介绍
Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Excel、WPS、OpenOffice 等办公应用创建的电子表格文档。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。
版本记录
- Version 2.7.1 (2023-04-10)
- Version 2.7.0 (2023-01-09)
- Version 2.6.1 (2022-08-22)
- Version 2.6.0 (2022-04-11)
- Version 2.5.0 (2022-01-03)
- Version 2.4.1 (2021-08-02)
- Version 2.4.0 (2021-04-19)
- Version 2.3.2 (2021-01-04)
- Version 2.3.1 (2020-09-23)
- Version 2.3.0 (2020-08-06)
- Version 2.2.0 (2020-05-11)
- Version 2.1.0 (2020-02-10)
- Version 2.0.2 (2019-10-09)
- Version 2.0.1 (2019-07-01)
- Version 2.0.0 (2019-05-02)
- Version 1.4.1 (2019-01-01)
- Version 1.4.0 (2018-08-14)
- Version 1.3.0 (2018-05-13)
- Version 1.2.0 (2017-12-01)
- Version 1.1.0 (2017-08-19)
代码示例
创建工作簿
f := excelize.NewFile()
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
// 创建一个工作表
index, err := f.NewSheet("Sheet2")
if err != nil {
fmt.Println(err)
return
}
// 设置单元格的值
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 文档
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 文档中插入图片
f, err := excelize.OpenFile("Book1.xlsx")
if err != nil {
fmt.Println(err)
return
}
defer func() {
// 关闭工作簿
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
// 插入图片
if err := f.AddPicture("Sheet1", "A2", "image.png", nil); err != nil {
fmt.Println(err)
}
// 在工作表中插入图片,并设置图片的缩放比例
if err := f.AddPicture("Sheet1", "D2", "image.jpg",
&excelize.GraphicOptions{ScaleX: 0.5, ScaleY: 0.5}); err != nil {
fmt.Println(err)
}
// 在工作表中插入图片,并设置图片的打印属性
enable, disable := true, false
if err := f.AddPicture("Sheet1", "H2", "image.gif",
&excelize.GraphicOptions{
PrintObject: &enable,
LockAspectRatio: false,
OffsetX: 15,
OffsetY: 10,
Locked: &disable,
}); err != nil {
fmt.Println(err)
}
// 保存工作簿
if err = f.Save(); err != nil {
fmt.Println(err)
}
复制
运行环境
支持 macOS、Linux 和 Windows 等平台 32 位和 64 位操作系统。
发展历史
2023年5月,在“2022中国互联网发展创新与投资大赛暨2022年中国开源创新大赛”中被评为一等奖
用户评价
功能很丰富的开源基础库 

1年前

评论
1
2
相关文章
《Excelize权威指南》新书发布
xuri
33次阅读
2024-08-12 21:48:53
Excelize 开源基础发布 2.8.1 版本,2024 年首个更新
xuri
88次阅读
2024-02-26 14:11:32
Excelize 开源基础库入选 2023 开源创新榜「优秀开源项目 」
xuri
92次阅读
2024-01-12 12:56:01
Excelize 开源基础库 2.8.0 版本正式发布
xuri
113次阅读
2023-08-28 13:57:33
Excelize 2.7.0 发布, 2023 年首个更新
xuri
282次阅读
2023-01-09 15:01:02
Excelize 发布 2.6.1 版本,支持工作簿加密
xuri
532次阅读
2022-08-22 18:08:19
Excelize 发布 2.6.0 版本,功能强大的 Excel 文档基础库
GitHub
272次阅读
2022-04-11 11:04:31
Excelize 2.5.0 正式发布,这些新增功能值得关注
xuri
360次阅读
2022-01-03 18:01:03
Excelize 开源五周年 🎉
xuri
696次阅读
2021-09-01 23:09:39
Excelize 发布 2.4.1 版本,新增并发安全支持
xuri
1304次阅读
2021-08-17 10:08:06