1. 首页
  2. 主题
  3. Go问与答

golang web服务 生成excel文件并下载

windy_ · · 5207 次点击
我想请教一下怎样 ==不保存== 生成的文件而直接返回给浏览器 ``` func (this *MyHandler)DownloadHandler(w http.ResponseWriter, r *http.Request) () { file := xlsx.NewFile() sheet, _ := file.AddSheet("Sheet1") row := sheet.AddRow() row.SetHeightCM(1) //设置每行的高度 cell := row.AddCell() cell.Value = "haha" cell = row.AddCell() cell.Value = "xixi" // ================================== err := file.Save("./files/file.xlsx") if err != nil { panic(err) } w.Header().Set("Content-Disposition", "attachment; filename=file.xls") //io.Copy(w, f) http.ServeFile(w, r, "./files/haha2.xls") return } ``` 我目前这种实现方式服务端必须先保存到服务器,然后再通过文件服务返回给浏览器
windy_
君子知命不惧,日日自省
哦哦,多谢多谢,ヾ(๑╹◡╹)ノ"
#7
更多评论
你把文件直接写入ResponseWriter就可以了〜
#1
windy_
君子知命不惧,日日自省
``` file := xlsx.NewFile() sheet, _ := file.AddSheet("Sheet1") row := sheet.AddRow() row.SetHeightCM(1) //设置每行的高度 cell := row.AddCell() cell.Value = "haha" cell = row.AddCell() cell.Value = "xixi" w.Header().Set("Content-Disposition", "attachment; filename=file.xls") ret, _ := json.Marshal(file) w.Write(ret) ``` 我这样写会报栈溢出
#2

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中