easyExcel导出文件为空解决
背景
今天遇到个要做导出的需求,很快就确定了技术方案用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导出文件为空解决相关推荐
- EasyExcel文件导出错误解决
EasyExcel文件导出错误解决 最近在做一个项目,有将记录导出Excle的需求,采用了阿里的EasyExcel工具,导出功能学习很快,很快参考网站上的代码和官网上资料搞定,并且开发环境(windo ...
- mysql master status_show master status为空解决办法
show master status为空解决办法 kerwin 五月 29, 2014 默认yum安装了mysql,现在想调试一下主从,结果发现执行show master status为空. Welc ...
- win10系统适配器选项网络连接文件夹为空解决办法
描述: win10系统适配器选项网络连接文件夹为空解决办法 步骤: 点击左下角win图标->Windows系统->命令提示符->右键更多以管理员身份运行命令提示符 输入命令:nets ...
- json解析出来数据为空解决方法
json解析出来数据为空解决方法 参考文章: (1)json解析出来数据为空解决方法 (2)https://www.cnblogs.com/yifan72/p/8900825.html (3)http ...
- U盘突然为空-解决方法记录
U盘突然为空-解决方法记录 此方法测试有效,但尚不能确定是否适用于所有情况 参考原文:original 方法步骤 在U盘里面新建一个.txt文档 在上述.txt文档中输入attrib -s -h /s ...
- MVC5 Controller构造方法获取User为空解决方法
用如下方法获取UserId报空引用异常 public class BaseController : Controller {protected SiteContext db = new SiteCon ...
- EasyExcel 读取excel表 解决Empty row EasyExcel末尾出现非常多空白行跳过 EasyExcel跳过末尾空白行
警告:本文仅适合忽略末尾空白行 不适合跳过空白行 请按需修改 首先客户是上帝 很烦 查询了EasyExcel官方github issue 没能找到解决问题 客户给的excel表是这样的 如图 特么 ...
- 嘉立创打印出现阻焊层为空解决方法
花了一天解决了问题.虽然没找到原因,但是可以供大家参考,欢迎大佬评论区答. AD导出Gerber文件可以参考 [硬件设计]AD 生成 Gerber 文件_Top嵌入式的博客-CSDN博客 关注干货博主 ...
- EasyExcel导出文件加密
最近做了一些相关导入问题用到了easyExcel,需求涉及到导出excel导出文件需要密码打开,这里直接贴出写法,比之前的poi实现起来简单太多: EasyExcel.write(response.g ...
最新文章
- 第十二讲 二阶非齐次线性ODE解的结构
- 2018刑侦推理 java_2018年刑侦科目推理试题
- html四边形的的框怎么编写,html知识点之利用css四边形切角并且加上边框
- vim-录制命令的使用
- linux中_Linux基础知识(Linux系统、Linux中的链表)
- php 获取TZ时间格式
- java访问rabbitMQ 一
- H5横竖屏的两种解决方法
- XPS格式文件如何编辑?
- Windows下GetLastError()返回值介绍
- 三维实景拍摄虚拟现实!- Panorama
- 数据可视化,2022的春运地图
- 【小家Spring】Spring AOP之Advisor、PointcutAdvisor、IntroductionAdvisor、IntroductionInterceptor(引介增强)
- 佛祖保佑,永无bug,代码注释大全
- python哈姆雷特词频统计_《哈姆雷特与三国演义》词频统计,Hamlet,和
- 新合同解决风波,阅文与作者以后要怎么走?
- HDU-4540 威威猫系列故事——打地鼠
- 18.(地图工具篇)PostgreSQL实现shape数据转geojson数据
- 东莞横沥注塑模具设计与制造细节
- 使命召唤15服务器位置,《使命召唤15》服务器网络已重新设置