java中的接口是类吗
889
2022-11-06
Java中EasyPoi导出复杂合并单元格的方法
前言:
上星期做了一个Excel的单元格合并,用的是EasyPoi,我之前合并单元格都是原生的,第一次使用EasyPoi合并也不太熟悉,看着网上自己套用,使用后发现比原生的方便些,贡献一下,也给其他用到合并而且用的是EasyPoi的小伙伴节省下时间。
导出模板:
坐标:
版本号,自己来定,可以去官网查看:EasyPoi官网
实现代码:
//表头设置
List
ExcelExportEntity colEntity = new ExcelExportEntity("经销商", "distributorName");
colEntity.setNeedMerge(true);
colEntity.setWidth(20);
colList.add(colEntity);
colEntity = new ExcelExportEntity("科室", "dept");
colEntity.setNeedMerge(true);
colList.add(colEntity);
colEntity = new ExcelExportEntity("部门", "region");
colEntity.setNeedMerge(true);
colList.add(colEntity);
colEntity = new ExcelExportEntity("省份", "province");
colEntity.setNeedMerge(true);
colList.add(colEntity);
colEntity = new ExcelExportEntity("门店数量", "storeNum");
colEntity.setNeedMerge(true);
colEntity.setStatistics(true);
colList.add(colEntity);
Map
Integer dayNum = map.get("dayNum");
for (int i = 1; i <= dayNum; i++) {
ExcelExportEntity group_1 = new ExcelExportEntity(i + "日", "day");
List
ExcelExportEntity appalyExcel = new ExcelExportEntity("申请数量", "applyNum" + i);
appalyExcel.setStatistics(true);
exportEntities.add(appalyExcel);
ExcelExportEntity adoptExcel = new ExcelExportEntity("通过数量", "adoptNum" + i);
adoptExcel.setStatistics(true);
exportEntities.add(adoptExcel);
group_1.setList(exportEntities);
colList.add(group_1);
}
//文件数据
List
List
int size = disList.size();
for (int i = 0; i < size; i++) {
StoreNewAddReportVO.DistributorStoreNewAddReportVO dis = disList.get(i);
Map
valMap.put("distributorName", dis.getDistributorName());
valMap.put("dept", dis.getDept());
valMap.put("region", dis.getRegion());
valMap.put("province", dis.getProvince());
valMap.put("storeNum", dis.getStoreNum());
List
Map
if (CollectionUtils.isNotEmpty(dayDataList)) {
collectMap = dayDataList.stream().collect(Collectors.groupingBy(StoreNewAddReportVO.dayData::getDayStr));
}
List
Map
for (int j = 1; j <= dayNum; j++) {
List
int applyflag = 0;
int adoptflag = 0;
if (CollectionUtils.isNotEmpty(dayData)) {
applyflag = dayData.get(0).getApplyNum();
adoptflag = dayhttp://Data.get(0).getAdoptNum();
}
valMap_1.put("applyNum" + j, applyflag);
valMap_1.put("adoptNum" + j, adoptflag);
}
list_1.add(valMap_1);
valMap.put("day", list_1);
list.add(valMap);
}
//导出
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("【" + request.getMonthStr() + "】门店注册日明细数据", "数据"), colList, list);
Sheet sheet = workbook.YxFRDrgetSheet("数据");
Row row = sheet.getRow(sheet.getLastRowNum());
Cell cell = row.getCell(0);
cell.setCellValue("总计");
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setAlignment(HorizontalAlignment.CENTER);//水平居中
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中
Font font = workbook.createFont();
font.setFontHeightInPoints((short) 15);
font.setFontName("Trebuchet MS");
cellStyle.setFont(font);
cell.setCellStyle(cellStyle);
CellRangeAddress range_0 = new CellRangeAddress(sheet.getLastRowNum(), sheet.getLastRowNum(), 0, 3);
sheet.addMergedRegion(range_0);
File file = new File("D:\\".concat(UUID.randomUUID().toString().concat(".xls")));
FileOutputStream fileOutputStream = null;
try {
fileOutputStream = new FileOutputStream(file);
workbook.write(fileOutputStream);
} catch (Exception e) {
log.error("门店注册日workbook写入到文件中失败,错误信息:{}", ExceptionUtils.getStackTrace(e));
} finally {
if (null != fileOutputStream) {
try {
fileOutputStream.close();
} catch (IOException e) {
//skip
}
}
}
具体的API细节就不介绍了可以去官网,关键在于ExcelExportEntity 这个类,它是以map形式展现的,创建的时候设置key,设置value的根据key进行设置,上面一些StoreNewAddReportVO还有其他是我的业务类, 到时候可以替换掉。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~