【笔记】Go语言将数据导出为Excel文件

前言

Go语言将数据导出为Excel文件

下载依赖

1
go get github.com/tealeg/xlsx

导出为Excel文件

1
2
3
4
type User struct {
Username string
Password string
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// 准备数据
var userList []User

// 创建Excel文件
var file = xlsx.NewFile()

// 创建工作簿
sheet, err := file.AddSheet("工作簿1")

// 向工作簿添加表头
var headRow = sheet.AddRow()
headRow.AddCell().Value = "Username"
headRow.AddCell().Value = "Password"

// 向工作簿添加数据
for _, user := range userList {
var contentRow = sheet.AddRow()
contentRow.AddCell().SetValue(user.Username)
contentRow.AddCell().SetValue(user.Password)
}

// 保存为Excel文件
var fileName = fmt.Sprintf("%d.xlsx", time.Now().Unix())
var filePath = filepath.Join(os.TempDir(), fileName)
err := file.Save(filePath)

配合Gin实现通过浏览器下载

context:Gin的上下文对象

1
2
3
4
// 作为文件下载
context.Header("Content-Disposition", fmt.Sprintf("attachment; filename=%s", fileName))
context.Header("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
context.File(filePath)

完成

参考文献

哔哩哔哩——郭宏志-老郭