golang实现浏览器导出excel文件功能


Posted in Golang onMarch 25, 2022

1.依赖包

import (
"github.com/tealeg/xlsx"
)

2.示例

func (o *orderController) Export(request *restful.Request, response *restful.Response) {
username := request.Attribute(filters.UserName).(string)

orderService := service.NewOrderService(o.Db)

orders, _ := orderService.ListUserOrders(username)

file := xlsx.NewFile()
sheet, _ := file.AddSheet("订单信息")

titles := []string{"服务类型", "订单号", "创建时间", "订单类型", "订单金额(元)", "订单状态", "原因"}
row := sheet.AddRow()

var cell *xlsx.Cell
for _, title := range titles {
cell = row.AddCell()
cell.Value = title
}

for _, order := range *orders {
values := []string{
getServiceTypeStr(*order.ServiceType),
order.Id,
order.CreateTime.Format("2006-01-02 15:04:05"),
getOrderTypeStr(*order.OrderType),
"1",
getOrderStatusStr(*order.Status),
order.Reason,
}

row = sheet.AddRow()
for _, value := range values {
cell = row.AddCell()
cell.Value = value
}
}

filename := "订单信息" + ".xlsx"

response.AddHeader("Content-Type", "application/octet-stream")
response.AddHeader("Content-Disposition", "attachment; filename="+filename)
response.AddHeader("Content-Transfer-Encoding", "binary")

//回写到web 流媒体 形成下载
_ = file.Write(response.ResponseWriter)
}

3.分析

3.1先根据需求查询需要的list对象

golang实现浏览器导出excel文件功能

3.2新建文件,设置文件名,跟列名

golang实现浏览器导出excel文件功能

3.3设置标题单元格

golang实现浏览器导出excel文件功能

3.4设置内容单元格

golang实现浏览器导出excel文件功能

3.5流媒体返回web

golang实现浏览器导出excel文件功能

这个示例是没有封装过的,如果想要封装,可以参考我的另一篇文章,下面是链接,喜欢小编的点点关注

golang实现浏览器导出excel文件功能

到此这篇关于golang实现浏览器导出excel文件功能的文章就介绍到这了,更多相关golang excel文件导出内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Golang 相关文章推荐
go:垃圾回收GC触发条件详解
Apr 24 Golang
解决Go gorm踩过的坑
Apr 30 Golang
go语言中GOPATH GOROOT的作用和设置方式
May 05 Golang
浅谈golang package中init方法的多处定义及运行顺序问题
May 06 Golang
试了下Golang实现try catch的方法
Jul 01 Golang
golang fmt格式“占位符”的实例用法详解
Jul 04 Golang
golang中的struct操作
Nov 11 Golang
Go语言基础map用法及示例详解
Nov 17 Golang
golang生成并解析JSON
Apr 14 Golang
Golang获取List列表元素的四种方式
Apr 20 Golang
Golang 实现 WebSockets 之创建 WebSockets
Apr 24 Golang
Golang实现可重入锁的示例代码
May 25 Golang
Golang使用Panic与Recover进行错误捕获
Mar 22 #Golang
Go语言特点及基本数据类型使用详解
详解Golang如何优雅的终止一个服务
Mar 21 #Golang
Go语言实现一个简单的并发聊天室的项目实战
Mar 18 #Golang
浅谈GO中的Channel以及死锁的造成
Mar 18 #Golang
Golang 并发下的问题定位及解决方案
Mar 16 #Golang
如何利用golang运用mysql数据库
You might like
php mysql索引问题
2008/06/07 PHP
php对二维数组按指定键值key排序示例代码
2013/11/26 PHP
实现PHP多线程异步请求的3种方法
2014/01/17 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
firefox和IE系列的相关区别整理 以备后用
2009/12/28 Javascript
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
JavaScript排序算法之希尔排序的2个实例
2014/04/04 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
jQuery动画效果图片轮播特效
2016/01/12 Javascript
基于javascript实现图片左右切换效果
2016/01/25 Javascript
jquery实现手机端单店铺购物车结算删除功能
2017/02/22 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
2017/11/22 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
详解基于React.js和Node.js的SSR实现方案
2019/03/21 Javascript
基于jQuery实现可编辑的表格
2019/12/11 jQuery
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
[05:09]DOTA2-DPC中国联赛2月22日Recap集锦
2021/03/11 DOTA
python 文件与目录操作
2008/12/24 Python
Python制作爬虫采集小说
2015/10/25 Python
python使用opencv进行人脸识别
2017/04/07 Python
基于Django模板中的数字自增(详解)
2017/09/05 Python
python中实现将多个print输出合成一个数组
2018/04/19 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
浅谈tensorflow中几个随机函数的用法
2018/07/27 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
python获取本机所有IP地址的方法
2018/12/26 Python
英国工具中心:UK Tool Centre
2017/07/10 全球购物
意大利奢侈品综合电商网站:MODES
2019/12/14 全球购物
用友笔试题目
2016/10/25 面试题
老师推荐信
2013/10/28 职场文书
党员查摆问题及整改措施
2014/10/10 职场文书
Win11使用CAD卡顿或者致命错误怎么办?Win11无法正常使用CAD的解决方法
2022/07/23 数码科技