java对象的List导出为excel工具类

6 阅读1分钟
public static void exportToExcel(List<Map<String, String>> data, String filePath) throws IOException {
    // 创建工作簿
    Workbook workbook = new XSSFWorkbook();

    // 创建工作表
    Sheet sheet = workbook.createSheet("医生科室数据");

    // 创建标题行样式
    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);

    // 创建标题行
    Row headerRow = sheet.createRow(0);
    String[] headers = {"Code", "Name"};
    for (int i = 0; i < headers.length; i++) {
        Cell cell = headerRow.createCell(i);
        cell.setCellValue(headers[i]);
        cell.setCellStyle(headerStyle);
    }

    // 填充数据
    int rowNum = 1;
    for (Map<String, String> item : data) {
        Row row = sheet.createRow(rowNum++);
        row.createCell(0).setCellValue(item.get("code"));
        row.createCell(1).setCellValue(item.get("name"));
    }

    // 自动调整列宽
    for (int i = 0; i < headers.length; i++) {
        sheet.autoSizeColumn(i);
    }

    // 写入文件
    try (FileOutputStream outputStream = new FileOutputStream(filePath)) {
        workbook.write(outputStream);
    }

    // 关闭工作簿
    workbook.close();
}