@GetMapping("/exportFwxxgl")
@ApiOperation(value = “房屋信息导出”, notes = “房屋信息导出”)
public void exportFwxxgl(HttpServletResponse response) throws IOException {

    String fileName = "test2.zip";response.setCharacterEncoding("utf-8");response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);response.setHeader("Content-Disposition", "attachment;filename*=UTF-8''" + URLEncoder.encode(fileName, "UTF-8"));

// response.addHeader(“Content-Disposition”, “attachment; filename*=UTF-8’’” + fileName);

    ArrayList<ArrayList<ExportFwxxglVo>> aa = itestService.exportFwxxgl(response);exportExcel9(aa, response);
}

/**
*
* @param d 对象,Object实体类
* @param response
* @throws IOException
*/
private void exportExcel9(ArrayList<ArrayList> d, HttpServletResponse response) throws IOException {
ServletOutputStream outputStream = response.getOutputStream();
ZipOutputStream zipOutputStream = new ZipOutputStream(outputStream);
try {
for (ArrayList vos : d) {
//构建一个excel对象,这里注意type要是xls不能是xlsx,否则下面的写入后流会关闭,导致报错
ExcelWriter excelWriter = EasyExcel.write().excelType(ExcelTypeEnum.XLS).build();
WriteSheet writeSheet = exportExcel(excelWriter, 0, “房屋信息管理列表数据”, vos, ExportFwxxglVo.class);
excelWriter.write(vos, writeSheet);

            //创建压缩文件ZipEntry zipEntry = new ZipEntry(UUID.randomUUID().toString() + ".xls");zipOutputStream.putNextEntry(zipEntry);Workbook workbook = excelWriter.writeContext().writeWorkbookHolder().getWorkbook();//将excel对象以流的形式写入压缩流workbook.write(zipOutputStream);}zipOutputStream.flush();} catch (IOException e) {//抛出异常结束程序throw new RuntimeException("项目导出文件失败:" + e.getMessage());} finally {//关闭数据流,注意关闭的顺序zipOutputStream.close();outputStream.close();}}
/*** 导出文件** @param excelWriter excel导出对象* @param sheetNo     导出顺序(0,1,2...)* @param sheetName   导出的excel表格文件名* @param dataList    导出的数据* @param object      导出数据的类型*/
private WriteSheet exportExcel(ExcelWriter excelWriter, Integer sheetNo, String sheetName, List<?> dataList, Class<?> object) {return EasyExcel.writerSheet(sheetNo, sheetName).head(object).build();
}

后台生成多个Excel文件并且压缩成压缩包导出相关推荐

  1. 关于多线程生成Excel文件并压缩成ZIP(输入输出流形式非file创建)

    这几天因为创建Excel的性能问题,头疼了几天. 先说下我的需求:根据场次导出Excel,有多少个场次就有多少个sheet页.根据工具调试,发现创建WorkBook和Sheet真的很耗时,差不多要大约 ...

  2. java将文件夹压缩成压缩包

    1.代码 将文件夹递归达成压缩包,并且支持删除源文件 public class PackageToZIp {public static boolean toZip(String source, Str ...

  3. electron中使用adm-zip将多个excel文件压缩进文件夹,使用XLSX以及XLSXStyle生成带样式excel文件

    需求:electron环境下想要实现根据多个表生成多个Excel文件,打包存入文件夹内并压缩下载到本地.(实际场景描述:界面中有软件工程一班学生信息.软件工程二班学生信息.软件工程三班学生信息,上方有 ...

  4. springboot导出多excel文件并压缩

    业务场景: 需要导出多个excel文件并压缩为一个文件,最后返回给前端 解决思路: 将每个业务数据导出一个excel文件,然后通过ZipOutputStream写入一个zip文件就可以了 代码层面: ...

  5. Java生成和操作Excel文件

    JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过 ...

  6. Java基础系列19:使用JXL或者POI生成和解析Excel文件

    一 简介 如题所示,当我们需要在Java中解析Excel文件时,可以考虑使用JXL或POI的API来解析. 二者的区别如下: jxl现在基本上没被维护了,最近一次更新时间还是几年前.相反,poi属于A ...

  7. Android中生成.xls的Excel文件

    Java操作Excel的两种方式 1.通过第三方框架Apache POI实现 2.通过第三方框架Java Excel实现 Apache POI实现步骤: 1.下载jar包[poi-bin-3.15-2 ...

  8. python 实现读取excel中的所有sheet后,增加新的sheet,生成新的excel文件

    python 实现读取excel中的所有sheet后,增加新的sheet,生成新的excel文件 import pandas as pd import osPath = r"C:\Users ...

  9. java 生成操作excel文件_Java生成和操作Excel文件

    AVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过纯 ...

最新文章

  1. TRUNCATE,DELETE,DROP的区别
  2. 牛客小白月赛7 B 自杀游戏
  3. 中国式创新技术“步态识别”终于来临,你大胆地走两步,我就知道你是谁
  4. Django运维后台的搭建之四:用bootstrap模板让运维前台变得更漂亮
  5. 统一项目管理平台(UMPlatForm.NET)-4.7 组织机构管理模块
  6. 使用meterpreter让没有安装python解释器的肉鸡设备执行任意python程序
  7. (数据科学学习手札05)Python与R数据读入存出方式的总结与比较
  8. 光伏农业七大问题不解决 投资者恐“先驱”变“先烈”
  9. 9.6.1 三维数据可视化之平面图
  10. Doris 之Frontend(FE)和Backend(BE)配置
  11. sql server 日期时间操作
  12. 图解设计模式:责任链模式
  13. 质量工程师(QA)岗位初介绍
  14. itools 苹果录屏大师 java_itools录屏大师
  15. TCP攻击实战及其简略防御措施
  16. 面试前端实习生 经验(1)
  17. Whois接口查询文档
  18. windows下服务或SYSTEM权限读取当前用户注册表HKEY_CURRENT_USER
  19. 微信 8.0.22 内测版:6 大更新第 1 个最实用
  20. 解决linux的-bash: ./xx: Permission denied/tensorflow 运行cpu还是gpu的方法

热门文章

  1. pwnable.kr [Toddler's Bottle] - uaf
  2. Mac OSX下的tree命令
  3. additivity为false
  4. 帅呆了,靠近就发光的宝石婚戒
  5. 安装sublime成功经验linux-ubuntu
  6. java使用ElasticSearch的scroll查询,高效的解决es查询数量的限制。
  7. 将视频转换成音乐 - MP4toMP3!
  8. 【CSS】用CSS画某个突出列表的书签/标签
  9. 写前端页面很容易,你只是没找对方法而已
  10. 服务器支持m2固态,关于IBM X3650M2和固态硬盘的若干问题