go 实现从服务器导出excel 到浏览器
生活随笔
收集整理的這篇文章主要介紹了
go 实现从服务器导出excel 到浏览器
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
需要引入 “github.com/tealeg/xlsx” 這個第三方庫
關(guān)鍵代碼:
file := xlsx.NewFile() sheet,_ :=file.AddSheet("sheet") //設(shè)置表格頭 row := sheet.AddRow() var headers = []string {"row1","row2"....} for _,header := range headers{row.AddCell().Value = header } //寫入數(shù)據(jù) 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)其中采取的是直接把數(shù)據(jù)寫入responsewriter 中進(jìn)行返回,數(shù)據(jù)量大的情況下可能會出問題
也可以先把文件保存在服務(wù)器上,然后通過 http.ServeFile返回給瀏覽器
總結(jié)
以上是生活随笔為你收集整理的go 实现从服务器导出excel 到浏览器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 锚链常见的几种连接方式
- 下一篇: 如何用golang远程控制浏览器