概述

  • 接下来的代码演示基于Gin框架。
  • Excel具体使用技巧可查看Github:https://github.com/qax-os/excelize
  • 运行上述代码,浏览器上输入"127.0.0.1: 1080/downlaod",此时便会获取想要Excel文件
package mainimport ("fmt""github.com/gin-gonic/gin""github.com/xuri/excelize/v2""strconv""time"
)func main() {router := gin.Default()router.GET("/download", func(c *gin.Context) {err := downloadExcel(c)if err != nil {fmt.Sprintf("下载文件失败,error:%v", err.Error())}//c.JSON(200, gin.H{//  "message": "Success",//})})router.Run(":1080")
}func downloadExcel(c *gin.Context) error {f := excelize.NewFile()index := f.NewSheet("Sheet1")headers := []string{"ID", "姓名", "年龄"}letters := []string{"A", "B", "C"}for k, v := range headers {f.SetCellValue("Sheet1", letters[k]+"1", v)}f.SetCellValue("Sheet1", "A"+strconv.Itoa(2), 1)f.SetCellValue("Sheet1", "B"+strconv.Itoa(2), "Lewis")f.SetCellValue("Sheet1", "C"+strconv.Itoa(2), 18)f.SetActiveSheet(index)// 保存文件到本地//if err := f.SaveAs("./" + "Book1.xlsx"); err != nil {//  fmt.Println(err.Error())//}c.Writer.Header().Set("Content-Type", "application/octet-stream")disposition := fmt.Sprintf("attachment; filename=\"%s_%s.xlsx\"", "demo-", time.Now().Format("20060102 150405"))c.Writer.Header().Set("Content-Disposition", disposition)_ = f.Write(c.Writer)return nil
}

问题: 

1.如果在调用downloadExcel()方法下面,调用c.JSON()方法(正常不需要调用),当打开excel会提示"需要尝试修复"之类的提示,只要点击修复即可打开,去掉c.JSON()就正常了;此问题出现我个人猜想应该是调用c.JSON()方法导致Header中信息改变导致,具体也不知道,如果有哪位大神可以解释一下,感谢!!!

Go生成Excel文件并下载及问题相关推荐

  1. Asp.net生成Excel文件并下载(解决使用迅雷下载页面而不是文件的问题)

    这里采用的是在服务端先生成Excel文件,然后利用文件地址下载的方法. 先试用Response.WriteFile的方法: FileInfo fi = new FileInfo(excelFile); ...

  2. 【原】Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)...

    这里采用的是在服务端先生成Excel文件,然后利用文件地址下载的方法. 生成Excel文件的方法,见:[原].Net创建Excel文件(插入数据.修改格式.生成图表)的方法 先试用Response.W ...

  3. java迅雷下载excel,Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)...

    (一) 如果在迅雷的下载对话框中点取消,则会使用IE的下载,这里的文件又是正确的了: 怀疑迅雷是根据下载对话框中的网址重新请求下载,与发起请求的页面已经无关,而IE又不会把ViewState信息传到迅 ...

  4. Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)...

    这里采用的是在服务端先生成Excel文件,然后利用文件地址下载的方法. 生成Excel文件的方法,见:[原].Net创建Excel文件(插入数据.修改格式.生成图表)的方法 先试用Response.W ...

  5. 超详细的java生成excel文件并下载

    在网上随手一搜,可以搜到很多java生成excel文件相关的博客,但每个都有不同,核心点说清楚了,但具体运用的时候,相信大家或多或少都没法一次直接运用,这样每次去找并且运用的时候很费时间,所以这也是我 ...

  6. SpringBoot生成Excel文件并下载到浏览器

    SpringBoot生成并下载Excel文件到浏览器 前言 分析业务 如何实现下载 工具类及实现方法 导出 导出工具类 下载 以请求方式下载 前言 今天又接到了如题的需求,突然脑子一抽不记得这个逻辑是 ...

  7. spring集成poi生成excel文件并下载

    第一步:引入jar包,我引入的是3.17,低版本和该版本及其以上样式操作上有差别 <!--excel处理--><dependency><groupId>org.ap ...

  8. java生成Excel文件,下载

    pom引入poi的maven依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>po ...

  9. 获取jqGrid中的所有数据导出并生成Excel文件流供用户下载(post请求实现文件下载)...

    最近有一个需求是: 将jqGrid表格中的数据生成报表Excel文件返回给用户. 我的想法是获取jqGrid中的数据然后生成json数据,传给后端,生成文件流,响应到前端,保存为excel文件. aj ...

最新文章

  1. BESR备份还原SERVER 2003域控制器
  2. 机器学习7—AdaBoost学习笔记
  3. 补充 宝玉 之《URL欺骗之以假乱真!》之 POST 方法提交数据 之 处理!
  4. 第四百一十七天 how can I 坚持
  5. 两个数组的交集 II---简单
  6. java届的黄埔军校_法学界的“黄埔军校”:拒绝与985合并,是其最大遗憾
  7. 前端工程师如何理解 TCP/IP 传输层协议?| 技术头条
  8. arm 交叉编译找不到so_交叉编译v8时,提示找不到libstdc++.so.6里面GLIBCXX_3.4.20版本的某个符号...
  9. lopatkin俄大神精简系统Windows 10 Pro 18362.10006 19H2 PreRelease x86-x64 ZH-CN MICRO
  10. 记录一个Markdown编写的接口文档模版
  11. C# OpenCV OpenCVSharp应用实例--LCD屏幕脏污检测
  12. 数据库连接池运行的原理:
  13. 创建Qsys_PIO IP核
  14. 简明 s3cmd 安装与使用手册
  15. Python字符串日常练习(基础向)
  16. 如何在把微信公众号生成链接
  17. ArcGIS教程:解决裁剪功能输出的数据集为空的情况。
  18. 噪声特性及matlab函数
  19. 用计算机处理文本教学反思,四年级信息技术下册 使用压缩软件教学反思 冀教版...
  20. python导入siri_python实现一个简洁siri功能

热门文章

  1. 重装系统服务器不识别u盘,电脑使用u盘重装系统无法识别怎么办?
  2. mysql 输入法表情数据,mysql 5.7 版本输入法表情符问题-----java解决办法
  3. java 根据环境导包_java环境变量配置原理解析以及eclipse导入外包的方法
  4. Tableau 2020.2版本如何做环形图
  5. 机器学习面试题总结(转)
  6. project下build.gradle文件和module下buil.gradle
  7. 一文汇总新三板所有问题
  8. 最大子序列和问题c语言力扣,力扣
  9. gazebo无人机仿真显示:failsafe enabled: no rc
  10. linux 根目录变为只读了,如何在 Web 服务器文档根目录上设置只读文件权限 | Linux 中国...