背景

今天遇到个要做导出的需求,很快就确定了技术方案用easyExcel,因为poi据说会有OOM问题,作为没有接触特别大型项目的我就不去深究这个问题了。在操作过程中发现了一个问题,直接拷用官方文档的文件导出的文件是空的,在一番研究之下写出了后面的代码,实现了用easyExcel的导出。直接上干货

包引入

这里说个贼有意思的事情,官方文档也是写的简介,简介到pom依赖都没有写。官方文档传送门:
https://www.yuque.com/easyexcel/doc/write

<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.9</version></dependency>

请求处理代码

 @ApiOperation(value = "xxxx", notes = "xxxxxx")@GetMapping("/xxxx")@SneakyThrowspublic void exportProductInfo(@RequestBody @Valid QualifiedProductCommand command, HttpServletResponse response){command.getPagination().setPageSize(5000);ExportDTO exportDTO = finishedGoodsService.qualifiedProduct(command).getData();String fileName = System.currentTimeMillis() + ".xlsx";response.setContentType("application/vnd.ms-excel");response.setCharacterEncoding("utf8");response.setHeader("Content-disposition", "attachment;filename=" + fileName);response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();WriteSheet writeSheet =new WriteSheet();writeSheet.setHead(exportDTO.getTitle());writeSheet.setSheetName("xxx");excelWriter.write(exportDTO.getContent(),writeSheet);// 千万别忘记finish 会帮忙关闭流excelWriter.finish();}

此处对比官方文档的导出看:

@Testpublic void dynamicHeadWrite() {String fileName = TestFileUtil.getPath() + "dynamicHeadWrite" + System.currentTimeMillis() + ".xlsx";EasyExcel.write(fileName)// 这里放入动态头.head(head()).sheet("模板")// 当然这里数据也可以用 List<List<String>> 去传入.doWrite(data());}

当时看这官方代码有点蒙圈,也纳闷为啥流都没有处理还能导出呢。怀疑这是导出到磁盘文件的写法,没去测试过。用官方给出的方式导出文件是空的。加上**EasyExcel.write(response.getOutputStream())**后,便有流可以导出。

如有问题,希望大家评论区留言多多指教!

easyExcel导出文件为空解决相关推荐

  1. EasyExcel文件导出错误解决

    EasyExcel文件导出错误解决 最近在做一个项目,有将记录导出Excle的需求,采用了阿里的EasyExcel工具,导出功能学习很快,很快参考网站上的代码和官网上资料搞定,并且开发环境(windo ...

  2. mysql master status_show master status为空解决办法

    show master status为空解决办法 kerwin 五月 29, 2014 默认yum安装了mysql,现在想调试一下主从,结果发现执行show master status为空. Welc ...

  3. win10系统适配器选项网络连接文件夹为空解决办法

    描述: win10系统适配器选项网络连接文件夹为空解决办法 步骤: 点击左下角win图标->Windows系统->命令提示符->右键更多以管理员身份运行命令提示符 输入命令:nets ...

  4. json解析出来数据为空解决方法

    json解析出来数据为空解决方法 参考文章: (1)json解析出来数据为空解决方法 (2)https://www.cnblogs.com/yifan72/p/8900825.html (3)http ...

  5. U盘突然为空-解决方法记录

    U盘突然为空-解决方法记录 此方法测试有效,但尚不能确定是否适用于所有情况 参考原文:original 方法步骤 在U盘里面新建一个.txt文档 在上述.txt文档中输入attrib -s -h /s ...

  6. MVC5 Controller构造方法获取User为空解决方法

    用如下方法获取UserId报空引用异常 public class BaseController : Controller {protected SiteContext db = new SiteCon ...

  7. EasyExcel 读取excel表 解决Empty row EasyExcel末尾出现非常多空白行跳过 EasyExcel跳过末尾空白行

    警告:本文仅适合忽略末尾空白行 不适合跳过空白行 请按需修改 首先客户是上帝 很烦 查询了EasyExcel官方github issue 没能找到解决问题  客户给的excel表是这样的 如图 特么 ...

  8. 嘉立创打印出现阻焊层为空解决方法

    花了一天解决了问题.虽然没找到原因,但是可以供大家参考,欢迎大佬评论区答. AD导出Gerber文件可以参考 [硬件设计]AD 生成 Gerber 文件_Top嵌入式的博客-CSDN博客 关注干货博主 ...

  9. EasyExcel导出文件加密

    最近做了一些相关导入问题用到了easyExcel,需求涉及到导出excel导出文件需要密码打开,这里直接贴出写法,比之前的poi实现起来简单太多: EasyExcel.write(response.g ...

最新文章

  1. 第十二讲 二阶非齐次线性ODE解的结构
  2. 2018刑侦推理 java_2018年刑侦科目推理试题
  3. html四边形的的框怎么编写,html知识点之利用css四边形切角并且加上边框
  4. vim-录制命令的使用
  5. linux中_Linux基础知识(Linux系统、Linux中的链表)
  6. php 获取TZ时间格式
  7. java访问rabbitMQ 一
  8. H5横竖屏的两种解决方法
  9. XPS格式文件如何编辑?
  10. Windows下GetLastError()返回值介绍
  11. 三维实景拍摄虚拟现实!- Panorama
  12. 数据可视化,2022的春运地图
  13. 【小家Spring】Spring AOP之Advisor、PointcutAdvisor、IntroductionAdvisor、IntroductionInterceptor(引介增强)
  14. 佛祖保佑,永无bug,代码注释大全
  15. python哈姆雷特词频统计_《哈姆雷特与三国演义》词频统计,Hamlet,和
  16. 新合同解决风波,阅文与作者以后要怎么走?
  17. HDU-4540 威威猫系列故事——打地鼠
  18. 18.(地图工具篇)PostgreSQL实现shape数据转geojson数据
  19. 东莞横沥注塑模具设计与制造细节
  20. 使命召唤15服务器位置,《使命召唤15》服务器网络已重新设置

热门文章

  1. C语言——简单图形打印学习
  2. 第06章 Tableau仪表板和故事
  3. image失败 安装scikit_安装scikit-image问题
  4. csgo举报机器人怎么安排_求一个CSGO的举报和点赞用的机器人
  5. 世界 6 大航空动力巨头企业
  6. MATLAB 残差分析
  7. Vue中keep-alive用法
  8. mw325r 服务器无响应),新版水星(Mercury)MW325R拨不上号怎么办?【图解】
  9. ssdb leveldb ldb文件恢复 ext4magic extundelete
  10. 微信公众平台推广攻略