首页 > 其他分享 >导出多个文件到一个Excel中的不同sheets

导出多个文件到一个Excel中的不同sheets

时间:2024-04-08 09:33:22浏览次数:19  
标签:goodsExportMap Excel 导出 ExportParams sheetsList sheets put new List

@ApiOperation(value = "导出多个文件到一个Excel中的不同sheets", produces = "application/octet-stream")
@PostMapping("/exportMultipleExcel")
public void exportMultipleExcel(@RequestBody DataCountVO dataCountVO, HttpServletResponse response) throws Exception {
// 设置响应的ContentType和Header,告诉浏览器下载文件
response.setContentType("application/vnd.ms-excel");
response.setHeader("Access-Control-Expose-Headers","Content-Disposition");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("数据统计表.xls", "UTF-8"));

// 创建Excel工作簿
Workbook workbook = new HSSFWorkbook();

// 获取各个数据集
List<goodsStatusVO> goodsStatusList = snShipmentManageService.goodsStatus(dataCountVO);
List<goodsPartVO> goodsPartList = snShipmentManageService.goodsPart(dataCountVO);
List<shipCountVO> shipCountList = snShipmentManageService.shipCount(dataCountVO);
List<loadingStatusVO> loadingStatusList = snShipmentManageService.loadingStatus(dataCountVO);


// 创建参数对象(用来设定excel得sheet得内容等信息)
ExportParams goodsExport = new ExportParams();
// 设置sheet得名称
goodsExport.setSheetName("品种销售情况");
// 创建sheet1使用得map
Map<String, Object> goodsExportMap = new HashMap<>();
// title的参数为ExportParams类型,目前仅仅在ExportParams中设置了sheetName
goodsExportMap.put("title", goodsExport);
// 模版导出对应得实体类型
goodsExportMap.put("entity", goodsStatusVO.class);
// sheet中要填充得数据
goodsExportMap.put("data", goodsStatusList);

ExportParams partExport = new ExportParams();
partExport.setSheetName("品种销量占比");
// 创建sheet2使用得map
Map<String, Object> partExportMap = new HashMap<>();
partExportMap.put("title", partExport);
partExportMap.put("entity", goodsPartVO.class);
partExportMap.put("data", goodsPartList);

ExportParams shipExport = new ExportParams();
shipExport.setSheetName("客户发运量统计");
// 创建sheet3使用得map
Map<String, Object> shipExportMap = new HashMap<>();
shipExportMap.put("title", shipExport);
shipExportMap.put("entity", shipCountVO.class);
shipExportMap.put("data", shipCountList);

ExportParams loadingExport = new ExportParams();
loadingExport.setSheetName("当日装车情况");
// 创建sheet4使用得map
Map<String, Object> loadingExportMap = new HashMap<>();
loadingExportMap.put("title", loadingExport);
loadingExportMap.put("entity", loadingStatusVO.class);
loadingExportMap.put("data", loadingStatusList);
// 将sheet1、sheet2、sheet3、sheet4使用得map进行包装
List<Map<String, Object>> sheetsList = new ArrayList<>();
sheetsList.add(goodsExportMap);
sheetsList.add(partExportMap);
sheetsList.add(shipExportMap);
sheetsList.add(loadingExportMap);

workbook = ExcelExportUtil.exportExcel(sheetsList, ExcelType.HSSF);

// 将工作簿写入到响应输出流中
try (ServletOutputStream out = response.getOutputStream()) {
workbook.write(out);
}
// 关闭工作簿
workbook.close();
}
还有就是实体类:::::::VO

 序号是一个虚拟展示序号 导出文件的时候有几个数据就有几个序号  在查询的时候可以进行设置

 

记得加判空哦!!!!!!!!

标签:goodsExportMap,Excel,导出,ExportParams,sheetsList,sheets,put,new,List
From: https://www.cnblogs.com/yzxsx/p/18120430

相关文章

  • STK入门(星座建立、导出卫星位置csv、地图源图片位置)
    1.建立星座1.1初始化场景打开STK,依次点击continue-createanewscenario记住场景命名和保存位置默认的仿真时间是一天,暂不需要修改点击ok耐心等待较长时间1.2建立种子卫星场景建立好以后自动弹出Insert 选择Satellite-Orbitwizard主要定义参数为:轨道倾角Incl......
  • 使用Python插入100万条数据到MySQL数据库并将数据逐步写出到多个Excel
    Python插入100万条数据到MySQL数据库步骤一:导入所需模块和库首先,我们需要导入MySQL连接器模块和Faker模块。MySQL连接器模块用于连接到MySQL数据库,而Faker模块用于生成虚假数据。importmysql.connector#导入MySQL连接器模块fromfakerimportFaker#导入......
  • ABAP 读取EXCEL 文件内容,函数 TEXT_CONVERT_XLS_TO_SAP
    EXCEL内容:读取内容:代码:TYPES:BEGINOFITAB,   FL1(50) TYPEC,   FL2(50) TYPEC,   FL3(50) TYPEC,   FL4(50) TYPEC,   FL5(50) TYPEC,   FL6(50) TYPEC,ENDOFITAB.DATA:T_ITEMTYPETABLEOFI......
  • Solidworks导出urdf,在ros2中使用gazebo仿真教程
    1.前言本人目前初学ros2,最近在实践ros2中的gazebo仿真,入门跟着鱼香ros老师和古月居老师来学习相关的知识,在gazebo仿真环节,发现教程里基本都是采用自写urdf来生成几何图像(圆柱、立方体)来组成简单的机器人,因此在后期仿真的真实性带来了一定的局限性,因此我最近在研究如何在ros2中......
  • easyExcel导入类
    一、基础类描述ExcelImport(导入工具类)ExcelRow(导入实体类)Consumer(函数参数)二、代码1、ExcelImportimportcom.alibaba.excel.context.AnalysisContext;importcom.alibaba.excel.event.AnalysisEventListener;importorg.itxl.common.utils.Consumer;importjava.uti......
  • [工具] 批量BMP图片转为PNG透明图片,去掉BMP黑色背景,去黑底,压缩导出png图片V1.1
    批量BMP图片转为PNG透明图片,去掉BMP黑色背景,压缩导出png图片V1.1前段时间上传了一款bmp转png并去黑底的demo软件,非常受欢迎,  上一版本地址:批量BMP图片转为PNG透明图片,去掉BMP黑色背景应广大爱好者的要求,完善了一下软件的功能,增加了导出png图片压缩功能,界面如下:  压......
  • POI之EXCEL导出封装(未测试)
    基础类描述ExcelWriter(导出工具类)Query(通用查询)Consumer(函数参数)SpringBeanUtil(获取bean)代码ExcelWriterimportcn.hutool.core.collection.CollUtil;importcn.hutool.core.collection.ListUtil;importcn.hutool.core.util.PageUtil;importcn.hutool.json.JSONObj......
  • easyExcel通用导出(非注解,多线程)
    1、基础类描述ExcelWriter(导出工具类)Query(通用查询)Consumer(函数参数)SpringBeanUtil(获取bean)2、代码ExcelWriterimportcn.hutool.core.collection.CollUtil;importcn.hutool.core.collection.ListUtil;importcn.hutool.core.util.PageUtil;importcn.hutool.core.u......
  • 【Java】轻量Excel读写框架学习
     参考黑马教程:https://www.bilibili.com/video/BV1eA41157va?p=5写着写着发现有更好的Demo案例:https://cloud.tencent.com/developer/article/1966065所需依赖:<dependency><groupId>org.apache.tika</groupId><artifactId>tika-core</artifa......
  • Qt 处理excel
    处理Excel文件在Qt中通常涉及到使用第三方库,因为Qt本身并不直接支持Excel文件的读写。下面我将提供一个使用QAxObject(ActiveX封装)来操作Excel的基本代码示例。请注意,这个方法要求你的系统上安装有MicrosoftExcel。首先,确保你的Qt项目配置中包含了ActiveQt模块。在你的.pro文......