java代码 导出excel 设置表头序号,议题,种类 要求表头合并两行
时间: 2023-05-12 14:05:31 浏览: 128
可以使用 Apache POI 库来实现这个功能。以下是示例代码:
```java
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelExporter {
public static void export() throws IOException {
// 创建工作簿
Workbook workbook = new XSSFWorkbook();
// 创建工作表
Sheet sheet = workbook.createSheet("Sheet1");
// 创建表头样式
CellStyle headerStyle = workbook.createCellStyle();
headerStyle.setAlignment(HorizontalAlignment.CENTER);
headerStyle.setVerticalAlignment(VerticalAlignment.CENTER);
headerStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
Font headerFont = workbook.createFont();
headerFont.setBold(true);
headerStyle.setFont(headerFont);
// 创建表头行
Row headerRow1 = sheet.createRow(0);
headerRow1.setHeightInPoints(30);
Cell headerCell1 = headerRow1.createCell(0);
headerCell1.setCellValue("序号");
headerCell1.setCellStyle(headerStyle);
Cell headerCell2 = headerRow1.createCell(1);
headerCell2.setCellValue("议题");
headerCell2.setCellStyle(headerStyle);
Cell headerCell3 = headerRow1.createCell(2);
headerCell3.setCellValue("种类");
headerCell3.setCellStyle(headerStyle);
// 合并表头行
sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 0));
sheet.addMergedRegion(new CellRangeAddress(0, 1, 1, 1));
sheet.addMergedRegion(new CellRangeAddress(0, 1, 2, 2));
// 创建数据行
Row dataRow = sheet.createRow(2);
dataRow.createCell(0).setCellValue(1);
dataRow.createCell(1).setCellValue("议题1");
dataRow.createCell(2).setCellValue("种类1");
// 输出到文件
FileOutputStream outputStream = new FileOutputStream("export.xlsx");
workbook.write(outputStream);
workbook.close();
outputStream.close();
}
}
```
这个代码会创建一个名为 "Sheet1" 的工作表,表头包括三列:序号、议题和种类。表头的第一行合并了三列,第二行是实际的表头。数据从第三行开始,可以根据需要添加更多的数据行。最后,将工作簿输出到文件 "export.xlsx"。
阅读全文