以下是示例代码:

// 创建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() 方法进行合并。最后,将用户列表写入表格中即可。

java依赖easyexcel导出excel文件表头包含序号、编号、姓名、年龄编号列是合并单元格

原文地址: https://www.cveoy.top/t/topic/brZ0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录