Contents

Excelize 是 Go 语言编写的一个用来操作 Office Excel 文档类库,基于 ECMA-376 Office OpenXML 标准。可以使用它来读取、写入 XLSX 文件。相比较其他的开源类库,Excelize 支持写入原本带有图片(表)的文档,还支持向 Excel 中插入图片,并且在保存后不会丢失图表样式。

安装

1
go get github.com/360EntSecGroup-Skylar/excelize

Aarron Swartz

读取已有文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package main

import "fmt"
import "github.com/360EntSecGroup-Skylar/excelize"

func main() {
xlsx, err := excelize.OpenFile("./这是一个文字马赛克用来隐藏我真实的文件名称.xlsx")
if err != nil {
fmt.Println(err)
return
}
// Get all the rows in the Sheet1.
rows := xlsx.GetRows("Sheet1")
for _, row := range rows {
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
}

run后会展示出表格中的sheet1信息

Aarron Swartz

创建新的excel表格并写入内容

比如我现在有一个二维的数组xlsdata,每个元素代表一行数据,利用循环写入创建的表格中
需要引入strconv、excel的第三方包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
xlsx := excelize.NewFile()
// 创建一个新的工作表
index := xlsx.NewSheet("Sheet1")
// 写入值到单元格
var hang []string
hang = append(hang, "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P")
for i := 0; i < len(xlsdata); i++ {
for j := 0; j < len(xlsdata[i]); j++ {
xlsx.SetCellValue("Sheet1", hang[j]+strconv.Itoa(i+1), xlsdata[i][j])
}
}
// 设置工作表的活动页
xlsx.SetActiveSheet(index)
// 保存文件到指定目录
timestamp := time.Now().Unix()
tm := time.Unix(timestamp, 0)
err := xlsx.SaveAs("./" + tm.Format("2006-01-02") + ".xlsx")
if err != nil {
fmt.Println(err)
}

接下来还有其他用法,持续更新中,会贴出经过测试的实战代码

参考源地址https://blog.csdn.net/mrxuri/article/details/53842834

Contents