Golang导出并下载excel封装

   日期:2020-09-04     浏览:116    评论:0    
核心提示:Gin导出并下载excel封装这里使用的是: github.com/tealeg/xlsx v3版本没有用过,好像差别挺大的package mainimport ( fmt github.com/gin-gonic/gin github.com/tealeg/xlsx time)func main() { //表头 titleList := []string{ID, 用户, IP地址, 登陆时间, 说明} r := gin.Default(

Gin导出并下载excel封装

这里使用的是: https://github.com/tealeg/xlsx v3版本没有用过,好像差别挺大的
package main

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"github.com/tealeg/xlsx"
	"time"
)

func main() {
	//表头
	titleList := []string{"ID", "用户", "IP地址", "登陆时间", "说明"}

	r := gin.Default()
	r.GET("/ping", func(c *gin.Context) {
		var data []interface{}
		//调用方法
		ExportToExcel(c, titleList, data, "xx导出")
	})
	_ = r.Run()
}

//数据导出excel并下载
func ExportToExcel(c *gin.Context, titleList []string, data []interface{}, fileName string) {
	// 生成一个新的文件
	file := xlsx.NewFile()
	// 添加sheet页
	sheet, _ := file.AddSheet("Sheet1")
	// 插入表头
	titleRow := sheet.AddRow()
	for _, v := range titleList {
		cell := titleRow.AddCell()
		cell.Value = v
		//表头字体颜色
		cell.GetStyle().Font.Color = "00FF0000"
		//居中显示
		cell.GetStyle().Alignment.Horizontal = "center"
		cell.GetStyle().Alignment.Vertical = "center"
	}
	// 插入内容
	for _, v := range data {
		row := sheet.AddRow()
		row.WriteStruct(v, -1)
	}
	c.Writer.Header().Set("Content-Type", "application/octet-stream")
	disposition := fmt.Sprintf("attachment; filename=\"%s-%s.xlsx\"", fileName, time.Now().Format("2006-01-02 15:04:05"))
	c.Writer.Header().Set("Content-Disposition", disposition)
	_ = file.Write(c.Writer)
}

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服