分享
golang web 开发 从数据库 导出到excel案例
aside section ._1OhGeD · · 3130 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
开发后台 或者 数据类网站 把 数据导出excel的需求比较常用。
这里我用gin web框架 结合 github.com/360EntSecGroup-Skylar/excelize 库 写一个简单的demo。
提供同行学习交流 自己也mark个案例。
第一步: 下载 库
go get github.com/360EntSecGroup-Skylar/excelize
go get github.com/gin-gonic/gin
第二步: 撸代码
package main
import (
"github.com/360EntSecGroup-Skylar/excelize"
"github.com/gin-gonic/gin"
)
func HanderDownload(c *gin.Context) {
xlsx := excelize.NewFile()
xlsx.SetCellValue("Sheet1", "A2", "我要下载一个excel文件")
xlsx.SetCellValue("Sheet1", "A1", "有没有看到我帅气的脸庞")
//保存文件方式
//_ = xlsx.SaveAs("./aaa.xlsx")
c.Header("Content-Type", "application/octet-stream")
c.Header("Content-Disposition", "attachment; filename="+"Workbook.xlsx")
c.Header("Content-Transfer-Encoding", "binary")
//回写到web 流媒体 形成下载
_ = xlsx.Write(c.Writer)
}
func main() {
r := gin.Default()
r.GET("/download", HanderDownload)
r.Run()
}
第三步:编译跑起来
我的ide.png
第四部:测试
用浏览器访问 http://localhost:8080/download
下载页面.png
so_easy.png
就是这样容易。把数据库的数据直接写到excel 接口 Write 回到流就可以了。
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信3130 次点击
下一篇:用 go 实现一个分布式限流器
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
开发后台 或者 数据类网站 把 数据导出excel的需求比较常用。
这里我用gin web框架 结合 github.com/360EntSecGroup-Skylar/excelize 库 写一个简单的demo。
提供同行学习交流 自己也mark个案例。
第一步: 下载 库
go get github.com/360EntSecGroup-Skylar/excelize
go get github.com/gin-gonic/gin
第二步: 撸代码
package main
import (
"github.com/360EntSecGroup-Skylar/excelize"
"github.com/gin-gonic/gin"
)
func HanderDownload(c *gin.Context) {
xlsx := excelize.NewFile()
xlsx.SetCellValue("Sheet1", "A2", "我要下载一个excel文件")
xlsx.SetCellValue("Sheet1", "A1", "有没有看到我帅气的脸庞")
//保存文件方式
//_ = xlsx.SaveAs("./aaa.xlsx")
c.Header("Content-Type", "application/octet-stream")
c.Header("Content-Disposition", "attachment; filename="+"Workbook.xlsx")
c.Header("Content-Transfer-Encoding", "binary")
//回写到web 流媒体 形成下载
_ = xlsx.Write(c.Writer)
}
func main() {
r := gin.Default()
r.GET("/download", HanderDownload)
r.Run()
}
第三步:编译跑起来
我的ide.png
第四部:测试
用浏览器访问 http://localhost:8080/download
下载页面.png
so_easy.png
就是这样容易。把数据库的数据直接写到excel 接口 Write 回到流就可以了。