需求描述

生成包含多个Sheet页的Excel表格,并且每个Sheet的表头是动态的。

设计方案

一个workBook可以分为多个Sheet页,每一个Sheet页面又可以分为title,entity,data 3个部分。

详解

title:是一个ExportParams类实例,可以用于设置sheet页名和表格名

ExportParams userExportParams = new ExportParams("明细","方案1");

结果:方案1为Sheet页名,明细为表格最上面一行的题目。

entity:表头,可以是一个类,也可以是一个List。
动态表头需要生成一个List;静态表头可以使用对类加注解的方式。

ExcelExportEntity entity1 =  new ExcelExportEntity("姓名","name");
ExcelExportEntity entity1 =  new ExcelExportEntity("年龄","age");
ExcelExportEntity entity1 =  new ExcelExportEntity("班级","class");
entityList.add(entity1);

data:表格中的数据,一个List<Map<K,V>>。
表格中的每一行数据都是一个Map<K,V>,多行数据就成了一个List。

dataMap.put("name","张三");
dataMap.put("age","17");
dataMap.put("class","高三1班");

Sheet:一个有固定Key值的Map<String,Object>。
多个Sheet页可以用一个List<Map<String,Object>>来进行存储。

sheetMap.put("title", userExportParams );
sheetMap.put("entityList", entityList);
sheetMap.put("data", dataMap);

注意:“title”,“entityList”,"data"等key值是固定不变的,不能进行改动,每个Sheet页都必须包含这三个元素。

输出

可以输出到磁盘文件,也可以输出到二进制流。

//输出到文件Workbook workbook = new HSSFWorkbook();for(Map<String,Object> map : sheetList) {ExcelExportService server = new ExcelExportService();ExportParams param = (ExportParams) map.get("title");@SuppressWarnings("unchecked")List<ExcelExportEntity> entity = (List<ExcelExportEntity>) map.get("entityList");Collection<?> data = (Collection<?>) map.get("data");server.createSheetForMap(workbook, param, entity, data);}File targetFile = new File("D:\\excel\\temp.xls");FileOutputStream fos = new FileOutputStream(targetFile);workbook.write(fos);fos.close();

基于Easy-poi实现多Sheet页以及动态表头的excel表格的导出相关推荐

  1. 使用 poi 通过浏览器方式导出Excel表格(导出字段与表格字段不一样且取值逻辑改变)

    使用 poi 通过浏览器方式导出Excel表格(导出字段与表格字段不一样且取值逻辑改变) 思路:拿到表格页面查询的结果作为查询条件,表格页面的url和点击导出按钮的url是一样的,按钮的url多一个参 ...

  2. java excel 晒新年操作_java操作Excel的poi 创建一个sheet页

    package com.java.poi; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.us ...

  3. POI删除所有sheet页

      使用POI删除Sheet页时,不能使用下面的代码循环删除.因为执行一遍后第二个sheet页的下标变成了0,但是i变成了1,所以循环里面应该放workbook.removeSheetAt(0); f ...

  4. fastexcel读取excel追加写入sheet页_Python写入和读取excel

    xlrd:用于读取 Excel 文件: xlwt:用于写入 Excel 文件: xlutils:用于操作 Excel 文件的实用工具,比如复制.分割.筛选等: xlwt这个模块只能输出.xls文件,不 ...

  5. 表格表头php,Excel表格表头怎么设置每页都有?

    在打印excel表格时,会遇到除了第一页,其他页都没有表头的情况,该如何解决呢?一起来学习一下吧! Excel表格表头怎么设置每页都有 步骤一: 首先,我们在[页面布局]下找到[打印标题],点击进入. ...

  6. Java 操作POI 之复制sheet页

    2019独角兽企业重金招聘Python工程师标准>>> 来点干货直接上代码,就不细说了 package com.qs.web.tools.core.excel; import jav ...

  7. python拆分excel的sheet为单文件_python拆分Excel表格并发送邮件

    工作中经常会出现需要将数据按一定的条件拆分并分发给不同的收件人的情况,今天就来给大家分享一下如何使用python拆分Excel表格并分发邮件. 以下表(2019年下半年销量数据表)数据为例: 首先我们 ...

  8. python读取excel多个sheet页并合并成一页

    python读取excel多个sheet页并合并成一页 import xlrd import xlwtdata = xlrd.open_workbook("database.xlsx&quo ...

  9. 使用POI和EasyExcel实现Excel导入和导出功能

    需求场景 开发中经常会设计到excel的处理,需求场景如下所示: 1.将用户信息导出为excel表格(导出数据) 2.将Excel表中的信息录入到数据库中(导入数据) 操作Excel目前比较流行的就是 ...

最新文章

  1. WCF后续之旅(16): 消息是如何分发到Endpoint的--消息筛选(Message Filter)
  2. 如果没有了Redis...
  3. OpenCV 对图片亮度增强或减弱
  4. 用python让excel飞起来 pdf_电脑卡?用u盘制作一个提速工具飞起来
  5. Eclipse 下载 开源项目 maven依赖丢失和 Deployment Assembly 丢失
  6. Learning Spark中文版--第三章--RDD编程(1)
  7. tempdb相关文章
  8. 工业大数据有哪些特征
  9. mybatis3文档
  10. 【渝粤题库】陕西师范大学800003 中国地理
  11. 数据持久化基础知识——属性列表
  12. pyspark分类算法之随机森林分类器模型实践【randomForestClassifier】
  13. [Web 前端] 005 html 常用标签补充
  14. (一)流体力学基本概念
  15. 网地址和广播地址的计算
  16. 四级英语测试软件,英语四级必备软件推荐
  17. 黑雷苹果模拟器_精灵盛典iOS模拟器版本 已更新上架黑雷
  18. 【深度学习】眼底图像之视盘和黄斑分割的探索
  19. win7电脑插音响没声音的解决教程--win10专业版
  20. django问题mysqlclient 1.4.0 or newer is required

热门文章

  1. 纤亿通带您了解什么是综合布线
  2. js实现移动端手势放大缩小图片
  3. 随机算法:蒙特卡罗算法和拉斯维加斯算法
  4. rt-thread 使用libmodbus-rtu库
  5. 有什么软件可以学计算机二级,有没有学习计算机二级以及英语四级的软件推荐?...
  6. JAVA实现简单的斗地主洗牌,发牌,抢地主功能
  7. 第 09 章:虎行有雨,定义标记类型Aware接口,实现感知容器对象
  8. 思科Cisco路由器NAT的基础和应用场景
  9. GUI反编译去掉注释方法
  10. 刚做外贸,先做平台好还是独立站好?