開發(fā)后臺(tái) 或者 數(shù)據(jù)類網(wǎng)站 把 數(shù)據(jù)導(dǎo)出excel的需求比較常用负蚊。
這里我用gin web框架 結(jié)合 github.com/360EntSecGroup-Skylar/excelize 庫 寫一個(gè)簡(jiǎn)單的demo护戳。
提供同行學(xué)習(xí)交流 自己也mark個(gè)案例。
第一步: 下載 庫
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", "我要下載一個(gè)excel文件")
xlsx.SetCellValue("Sheet1", "A1", "有沒有看到我?guī)洑獾哪橗?)
//保存文件方式
//_ = 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
第四部:測(cè)試
用瀏覽器訪問 http://localhost:8080/download
下載頁面.png
so_easy.png
就是這樣容易蝇摸。把數(shù)據(jù)庫的數(shù)據(jù)直接寫到excel 接口 Write 回到流就可以了。