go语言使用echo框架实现将数据导出到excel文件

准备工作:
首先需要下载需要的对应包
echo框架包:github.com/labstack/echo
excel包:github.com/tealeg/xlsx

代码部分:

package main
import(
	"bytes"
	"fmt"
	"net/http"
	
	"github.com/labstack/echo"
	"github.com/labstack/echo/middleware"
	"github.com/tealeg/xlsx"
)

func main(){
	e := echo.New()
	e.Use(middleware.Logger())
	e.Use(middleware.Recover())
	//路由设置
	e.GET("/download", fileDownload)

	//设置启动端口
	e.Logger.Fatal(e.Start(":8080"))
}

//文件下载
func fileDownload(c echo.Context) error {
	name := "test.xlsx"
	xFile := xlsx.NewFile()
	sheet, err := xFile.AddSheet("test")
	if err != nil {
		panic(err)
	}
	header := []string{"姓名", "性别", "年龄"}
	r := sheet.AddRow()
	var ce *xlsx.Cell
	for _, v := range header {
		ce = r.AddCell()
		ce.Value = v
	}
	for i:=1;i<5;i++{
		r = sheet.AddRow()
		ce = r.AddCell()
		ce.Value = "张三"
		ce = r.AddCell()
		ce.Value = "男"
		ce = r.AddCell()
		ce.Value = fmt.Sprintf("%d",23)
	}
	//将数据存入buff中
	var buff bytes.Buffer
	if err = xFile.Write(&buff); err != nil {
		panic(err)
	}
	//设置请求头  使用浏览器下载
	c.Response().Header().Set(echo.HeaderContentDisposition, "attachment; filename="+name)
	return c.Stream(http.StatusOK, echo.MIMEOctetStream, bytes.NewReader(buff.Bytes()))
}

技术不精,如有不当之处,请告知

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值