用easyPoi导出excel,带多sheet,合并单元格,合计,单元格金额类型

文档连接:http://easypoi.mydoc.io/
1.引入依赖

  <!-- 导出文件工具 EasyPoi实现Excel读写管理测试用例  --><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-spring-boot-starter</artifactId><version>4.2.0</version></dependency>

2.书写结构:合并单元格,合计

@ExcelTarget("repayBackFlowTables")
public class RepayBackFlow implements Serializable {//    needMerge  =true  合并单元格@Excel(name = "业务日期", width = 30, needMerge = true)private String statDt;@ExcelCollection(name = "")private List<RepayBackFlowDto> repayBackFlowDtos;
}
@ExcelTarget("tT")
public class RepayBackFlowDto implements Serializable {//    needMerge  =true  合并单元格@Excel(name = "机构", width = 30 , needMerge = true)private String accountingorgid;@ExcelCollection(name = "")private List<RepayBackFlowDetailDto> detailDtos;
}
@ExcelTarget("bb")
public class RepayBackFlowDetailDto {@Excel(name = "资产类型名称", width = 30)private String grdNm;// isStatistics:true要合计 ,type=10表示数值@Excel(name = "累计数量", width = 30,isStatistics=true,type = 10,dict = "type_1" )private Integer cnl;// isStatistics:true要合计 ,type=10表示数值@Excel(name = "代偿金额", width = 30,isStatistics=true,type = 10)private BigDecimal amt;
}

3.生成Excel,多sheet

       //贷款五级分类   假设有值List<RepayBackFlowTables>  repayBackFlows1 =Lists.newArrayList();List<RepayBackFlowTables>  repayBackFlows2 =Lists.newArrayList();ExportParams deptExportParams1 = new ExportParams();deptExportParams1.setTitle("贷款还款回流表");deptExportParams1.setSheetName("贷款还款回流表");deptExportParams1.setStyle(ExcelExportStatisticStyler.class);Map<String, Object> deptExportMap1 = new HashMap<>();deptExportMap1.put("title", deptExportParams1);deptExportMap1.put("entity", RepayBackFlow.class);deptExportMap1.put("data", repayBackFlows1);ExportParams deptExportParams2 = new ExportParams();deptExportParams2 .setTitle("贷款还款回流表");deptExportParams2 .setSheetName("贷款还款回流表");deptExportParams2 .setStyle(ExcelExportStatisticStyler.class);Map<String, Object> deptExportMap2 = new HashMap<>();deptExportMap2 .put("title", deptExportParams2);deptExportMap2 .put("entity", RepayBackFlow.class);deptExportMap2 .put("data", repayBackFlows2);List<Map<String, Object>> sheetsList = new ArrayList<>();sheetsList.add(deptExportMap1);sheetsList.add(deptExportMap2);
 Workbook workBook = ExcelExportUtil.exportExcel(sheetsList, ExcelType.HSSF);workBook.write(fos);file = new File(filepath);

4.自定义金额样式

先定义一个styler类继承ExcelExportStylerDefaultImpl,重写getStyles方法,在ExportParams 时加上
deptExportParams1.setStyle(ExcelExportStatisticStyler.class);

public class ExcelExportStatisticStyler extends ExcelExportStylerDefaultImpl {private CellStyle numberCellStyle;private CellStyle numberCellStyle1;public ExcelExportStatisticStyler(Workbook workbook) {super(workbook);createNumberCellStyler();createNumberCellStyler1();}private void createNumberCellStyler(){numberCellStyle = workbook.createCellStyle();numberCellStyle.setAlignment(HorizontalAlignment.CENTER);numberCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);numberCellStyle.setDataFormat((short)BuiltinFormats.getBuiltinFormat("#,##0.00"));numberCellStyle.setWrapText(true);}private void createNumberCellStyler1(){numberCellStyle1 = workbook.createCellStyle();numberCellStyle1.setAlignment(HorizontalAlignment.CENTER);numberCellStyle1.setVerticalAlignment(VerticalAlignment.CENTER);numberCellStyle1.setDataFormat((short)BuiltinFormats.getBuiltinFormat("#,##0"));numberCellStyle1.setWrapText(true);}@Overridepublic CellStyle getStyles(boolean noneStyler, ExcelExportEntity entity){if (entity != null&& 10==entity.getType()) {if("type_1".equals(entity.getDict())){return numberCellStyle1;}return numberCellStyle;}return super.getStyles(noneStyler, entity);}}

用easyPoi导出excel,带多sheet,合并单元格,合计,单元格金额类型相关推荐

  1. Easypoi 导出excel 使用注解实现一二级标题行的单元格合并

    Easypoi 导出excel 使用注解实现一二级标题行的单元格合并 先看一下最终效果图 上代码 Excel 模板实体类 @Data public class HxAdvisoryZJEndExcel ...

  2. 编码技巧——使用Easypoi导出Excel、多sheet

    本文主要介绍easypoi导出Excel的代码示例:自己之前手动实现过导出工具类<编码技巧--导出工具类>,基于实体和注解,通过反射来映射实体字段和exce列的关系:在部分工程里面看到了e ...

  3. EasyPoi导出excel多Sheet遇到的坑

    问题描述 1.项目中需要多shee导出,需要动态生成列. 2.我的方法是在执行ExcelExportUtil.exportExcel之后,插入自定义的列. 3.发现在执行ExcelExportUtil ...

  4. POI导出EXCEL带水印 以及单元格格式设置

    客户提个需求,需要将报表导出 excel带水印 和 pdf带水印 2个版本. 做的时候连excel本身怎么带水印都不知道,更不用说用java了.后来在网上搜到了excel添加水印的2个方法. 1.艺术 ...

  5. 使用EasyPOI导出Excel模板数据(含图片)

    使用EasyPOI导出Excel模板数据(含图片) EasyPOI功能如同名字Easy,主打的功能就是容易,让一个没接触过POI的人员可以方便的写出Excel导出,Excel模板导出,Excel导入, ...

  6. java导出excel带图片_JAVA的poi实现模版导出excel(带图片).doc

    JAVA的poi实现模版导出excel(带图片) 下面是本人使用java的poi实现使用模板到处excel,内容包含图片,使用两种不同的方式实现其到处excel.但是使用jxl实现到处excel只能到 ...

  7. Hutool导出excel带前台Base64图片

    Hutool导出excel带前台Base64图片,hutool并没有封装具体方法,需要自己手动插入. @Data public class PicDto {private String chartBa ...

  8. 使用easypoi导出excel实现动态列

    使用easypoi导出excel实现动态列 说明 使用的是easypoi进行导出 行头是动态生成 依据key进行列匹配,进行数据填充 第一列进行纵向动态合并 自己的一个使用,记录一下 工具依赖 < ...

  9. POI 导出excel带小数点的数字格式显示不对解决方法

    POI 导出excel带小数点的数字格式显示不对解决方法 参考文章: (1)POI 导出excel带小数点的数字格式显示不对解决方法 (2)https://www.cnblogs.com/firstd ...

最新文章

  1. pip包管理工具-install执行流程简单查看
  2. Html内容超出标记宽度后自动隐藏
  3. lunix系统安装及分区补充安装包
  4. Winform中使用zxing和Graphics实现自定义绘制二维码布局
  5. ASP.NET中过滤HTML字符串的两个方法
  6. 宠物商店(pet-shop) 学习笔记
  7. ubuntu上安装nodejs
  8. 动态换ip如何实现_动态IP可以实现哪些功能及用途
  9. Spring中都用到了哪些设计模式?
  10. 【计算机网络复习】1.1.1 概念、组成、功能和分类
  11. Android 如何在Eclipse中查看Android API源码 及 support包源码
  12. C语言volatile的本质(三十四)
  13. iOS之中国银联移动支付控件升级的问题
  14. tplink 服务器未响应,详解win10安装tplink网卡免驱版无法用关键操作方法
  15. android开发中悬浮窗被禁用,无权限开启悬浮窗的解决方案
  16. 阿里UX矢量图标库–最强大的矢量图标库(Icon font制作力荐工具)
  17. Java开发工具(二):Intellij Idea IU-2019.2.3版安装配置简明教程
  18. 招聘网站职位分析数据可视化系统(Hadoop课设)
  19. 黑苹果登录apple id_充分利用Apple登录功能
  20. Linux内核启动去掉企鹅,linux更换启动时的小企鹅图片

热门文章

  1. 灵魂拷问:嵌入式行业真的没前途吗?
  2. Matlab中fft函数的使用与原理
  3. 移动硬盘读不出来怎么办?试试这么做!
  4. 考勤机服务器位置,考勤机云服务器地址怎么改
  5. Qt自定义控件 -- 仪表盘01
  6. 局域网arp攻击_一篇文章告诉你,什么是ARP协议与ARP欺骗
  7. Linux:文件管理
  8. 1397 火车票退票费计算(函数专题)
  9. Android开发:调用系统图库选择图片
  10. 冯杰的手写艺术签名怎么写好看