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 Gin实现文件上传下载的示例代码
Apr 02 Golang
golang正则之命名分组方式
Apr 25 Golang
golang http使用踩过的坑与填坑指南
Apr 27 Golang
解决golang在import自己的包报错的问题
Apr 29 Golang
浅谈golang package中init方法的多处定义及运行顺序问题
May 06 Golang
go mod 安装依赖 unkown revision问题的解决方案
May 06 Golang
Golang实现AES对称加密的过程详解
May 20 Golang
Golang中异常处理机制详解
Jun 08 Golang
go goroutine 怎样进行错误处理
Jul 16 Golang
Go 语言中 20 个占位符的整理
Oct 16 Golang
Golang流模式之grpc的四种数据流
Apr 13 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 清除网页病毒的方法
2008/12/05 PHP
基于curl数据采集之正则处理函数get_matches的使用
2013/04/28 PHP
php获取YouTube视频信息的方法
2015/02/11 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
js中substr,substring,indexOf,lastIndexOf的用法小结
2013/12/27 Javascript
Jquery实现自定义弹窗示例
2014/03/12 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
node.js使用require()函数加载模块
2014/11/26 Javascript
JavaScript中的some()方法使用详解
2015/06/09 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
浅析 NodeJs 的几种文件路径
2017/06/07 NodeJs
DataTables添加额外的查询参数和删除columns等无用参数实例
2017/07/04 Javascript
js动态设置select下拉菜单的默认选中项实例
2018/08/21 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
React 源码中的依赖注入方法
2018/11/07 Javascript
Webpack4+Babel7+ES6兼容IE8的实现
2019/04/10 Javascript
Vue使用watch监听一个对象中的属性的实现方法
2019/05/10 Javascript
js实现滚动条自动滚动
2020/12/13 Javascript
Python实现简单的用户交互方法详解
2018/09/25 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
Python 可变类型和不可变类型及引用过程解析
2019/09/27 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
2019/12/12 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
python开发前景如何
2020/06/11 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
HTML5新特性之用SVG绘制微信logo
2016/02/03 HTML / CSS
美国购买汽车零件网站:Buy Auto Parts
2018/04/02 全球购物
财务助理岗位职责
2013/11/10 职场文书
电脑饰品店的创业计划书
2014/01/21 职场文书
合作经营协议书
2014/04/17 职场文书
2016年母亲节广告语
2016/01/28 职场文书
千万级用户系统SQL调优实战分享
2022/03/03 MySQL