public class ExportEasyDemo {
@Test
public void test(){
List<String> dyncCols = Arrays.asList("列1","列2","列3","列4");
//列数组
List<ExcelExportEntity> colList = new ArrayList<>();
ExcelExportEntity nameEntity = new ExcelExportEntity("名称", "name", 20);
nameEntity.setWrap(true);
colList.add(nameEntity);
//动态列设置:name(excel中导出的列名)、key(数据对应的属性名)
//new ExcelExportEntity(name, key)
dyncCols.forEach(col-> colList.add(new ExcelExportEntity(col, col)));
List<LinkedHashMap<String, String>> result = setTestData(dyncCols);
try {
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), colList, result);
//设置表头样式
//setHeaderStyle(workbook);
FileOutputStream fos = new FileOutputStream("H:/测试导出结果集.xlsx");
workbook.write(fos);
fos.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
//设置测试数据
private List<LinkedHashMap<String, String>> setTestData(List<String> dyncCols){
List<LinkedHashMap<String, String>> result = new ArrayList<>();
for (int i = 1; i <= 10; i++) {
LinkedHashMap<String, String> map = new LinkedHashMap<>();
map.put("name","测试name" + i);
int finalI = i;
dyncCols.forEach(col-> map.put(col, col + "数据" + finalI));
result.add(map);
}
return result;
}
//设置表头样式
private void setHeaderStyle(Workbook workbook) {
// 获取工作簿的第一个工作表
Sheet sheet = workbook.getSheetAt(0);
// 创建表头样式
CellStyle headerStyle = workbook.createCellStyle();
// 设置字体加粗
Font headerFont = workbook.createFont();
headerFont.setBold(true);
headerStyle.setFont(headerFont);
// 设置背景色为灰色
headerStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
//自动换行
headerStyle.setWrapText(true);
headerStyle.setAlignment(HorizontalAlignment.CENTER);
headerStyle.setVerticalAlignment(VerticalAlignment.CENTER);
// 设置表头高度
sheet.getRow(0).setHeightInPoints(20);
// 应用样式到所有表头单元格
for (Cell cell : sheet.getRow(0)) {
cell.setCellStyle(headerStyle);
}
}
}
03-29
3256

07-14
567

12-14
1882

04-01
667
