go 实现从服务器导出excel 到浏览器
生活随笔
收集整理的這篇文章主要介紹了
go 实现从服务器导出excel 到浏览器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
需要引入 “github.com/tealeg/xlsx” 這個第三方庫
關鍵代碼:
file := xlsx.NewFile() sheet,_ :=file.AddSheet("sheet") //設置表格頭 row := sheet.AddRow() var headers = []string {"row1","row2"....} for _,header := range headers{row.AddCell().Value = header } //寫入數據 for i, log := range logs {row := sheet.AddRow()row.AddCell().Value = strconv.Itoa(i)row.AddCell().Value = string(log.Operation)row.AddCell().Value = strconv.FormatInt(log.FileId, 10)...... } ctx.ResponseWriter.Header().Add("Content-Disposition", "attachment") //ctx.ResponseWriter.Header().Add("Content-Type", "application/vnd.ms-excel") //xlsx ctx.ResponseWriter.Header().Add("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")var buffer bytes.Buffer if err := file.Write(&buffer); err != nil {return err } r := bytes.NewReader(buffer.Bytes()) http.ServeContent(ctx.ResponseWriter, ctx.Request, filename, time.Now(), r)其中采取的是直接把數據寫入responsewriter 中進行返回,數據量大的情況下可能會出問題
也可以先把文件保存在服務器上,然后通過 http.ServeFile返回給瀏覽器
總結
以上是生活随笔為你收集整理的go 实现从服务器导出excel 到浏览器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 锚链常见的几种连接方式
- 下一篇: 在 Docker 中设置时区