public static String ExcelWrite(ExportParamDto excelData) {
String fileName = getPath() + System.currentTimeMillis() + ".xlsx";
// 头的策略
WriteCellStyle headWriteCellStyle = new WriteCellStyle();
// 背景色
headWriteCellStyle.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex());
WriteFont headWriteFont = new WriteFont();
headWriteFont.setFontHeightInPoints((short) 12);
headWriteCellStyle.setWriteFont(headWriteFont);
// 内容的策略
WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
// 这里需要指定 FillPatternType 为FillPatternType.SOLID_FOREGROUND 不然无法显示背景颜色.头默认了 FillPatternType所以可以不指定
// contentWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);
// contentWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);
// 背景绿色
// contentWriteCellStyle.setFillForegroundColor(IndexedColors.GREEN.getIndex());
// 字体策略
WriteFont contentWriteFont = new WriteFont();
// 字体大小
contentWriteFont.setFontHeightInPoints((short) 12);
contentWriteCellStyle.setWriteFont(contentWriteFont);
//设置 自动换行
contentWriteCellStyle.setWrapped(true);
//设置 垂直居中
contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
// //设置 水平居中
// contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
// //设置边框样式
// contentWriteCellStyle.setBorderLeft(DASHED);
// contentWriteCellStyle.setBorderTop(DASHED);
// contentWriteCellStyle.setBorderRight(DASHED);
// contentWriteCellStyle.setBorderBottom(DASHED);
// 这个策略是 头是头的样式 内容是内容的样式 其他的策略可以自己实现
HorizontalCellStyleStrategy horizontalCellStyleStrategy =
new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
// 方法3 如果写到不同的sheet 不同的对象
// 这里 指定文件
ExcelWriter excelWriter = EasyExcel.write(fileName).build();
// 去调用写入,这里我调用了五次,实际使用时根据数据库分页的总的页数来。这里最终会写到5个sheet里面
WriteSheet writeSheet;
List<SheetAndMapListDto> testList = excelData.getSheetAndMapListDtoList();
for (int i = 0; i < testList.size(); i++) {
// 每次都要创建writeSheet 这里注意必须指定sheetNo。这里注意DemoData.class 可以每次都变,我这里为了方便 所以用的同一个class 实际上可以一直变
writeSheet = EasyExcel.writerSheet(i, testList.get(i).getRealSheetName())
.head(TestProTplDto.class)
.registerWriteHandler(horizontalCellStyleStrategy)
.registerWriteHandler(new CustomCellWriteHandler())
.build();
// 分页去数据库查询数据 这里可以去数据库查询每一页的数据
excelWriter.write((ArrayList) testList.get(i).getMapList(), writeSheet);
}
// finish 关闭流
excelWriter.finish();
return fileName;
}
~~~
https://my.oschina.net/u/4406817/blog/3350348
easyExcel写入
最新推荐文章于 2024-07-03 17:24:20 发布