java依赖easyexcel导出excel文件表头包含序号、编号、姓名、年龄编号列是合并单元格
以下是示例代码:
// 创建Excel写入器
ExcelWriter writer = new ExcelWriter(outputStream, ExcelTypeEnum.XLSX);
// 创建表格样式
CellStyle headStyle = writer.getWorkbook().createCellStyle();
headStyle.setAlignment(HorizontalAlignment.CENTER);
headStyle.setVerticalAlignment(VerticalAlignment.CENTER);
headStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
headStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
// 创建表格头部
List<List<String>> head = new ArrayList<>();
head.add(Arrays.asList("序号", "编号", "姓名", "年龄"));
List<Integer> mergedCells = Arrays.asList(1, 2, 3); // 合并单元格
head.add(Arrays.asList("", "编号", "", ""));
head.add(Arrays.asList("", "1-3", "", ""));
// 将表格头部写入Excel
Sheet sheet = writer.write(0, "Sheet1");
for (int i = 0; i < head.size(); i++) {
Row row = sheet.createRow(i);
List<String> rowData = head.get(i);
for (int j = 0; j < rowData.size(); j++) {
Cell cell = row.createCell(j);
cell.setCellValue(rowData.get(j));
if (mergedCells.contains(j)) {
CellRangeAddress range = new CellRangeAddress(i, i + 2, j, j);
sheet.addMergedRegion(range);
}
if (i == 0) {
// 设置表格头部样式
cell.setCellStyle(headStyle);
}
}
}
// 写入数据
List<User> userList = getUserList(); // 假设已经获取了用户列表
for (int i = 0; i < userList.size(); i++) {
User user = userList.get(i);
Row row = sheet.createRow(i + 3);
Cell cell0 = row.createCell(0);
cell0.setCellValue(i + 1);
Cell cell1 = row.createCell(1);
cell1.setCellValue(user.getNo());
Cell cell2 = row.createCell(2);
cell2.setCellValue(user.getName());
Cell cell3 = row.createCell(3);
cell3.setCellValue(user.getAge());
}
// 关闭Excel写入器
writer.finish();
其中,getUserList() 方法用于获取用户列表,User 类表示用户信息,包含编号、姓名、年龄等属性。在表格头部中,通过 mergedCells 参数指定了编号列需要合并单元格,然后在写入表格头部时调用 sheet.addMergedRegion() 方法进行合并。最后,将用户列表写入表格中即可。
原文地址: https://www.cveoy.top/t/topic/brZ0 著作权归作者所有。请勿转载和采集!