easyexcel导出表,怎么在表头上方加标题
时间: 2023-10-29 16:12:20 浏览: 264
在 EasyExcel 中,可以通过 `WriteSheet` 类的 `setHead` 方法设置表头。如果需要在表头上方再添加一个标题,可以通过以下步骤实现:
1. 在创建 `WriteSheet` 对象时,设置表头:
```java
// 创建 WriteSheet 对象
WriteSheet sheet = EasyExcel.writerSheet().build();
// 设置表头
List<List<String>> head = new ArrayList<>();
head.add(Arrays.asList("姓名", "年龄", "性别"));
sheet.setHead(head);
```
2. 在写入数据之前,先利用 `WriteSheet` 对象的 `getSheet()` 方法获取到 `Sheet` 对象,然后使用 `Sheet` 对象的 `createRow(int rowNum)` 方法创建一行,并使用 `Sheet` 对象的 `addMergedRegion(CellRangeAddress region)` 方法合并单元格。
```java
// 获取 Sheet 对象
Sheet sheetObj = sheet.getSheet();
// 创建一行
Row titleRow = sheetObj.createRow(0);
// 创建标题单元格
Cell titleCell = titleRow.createCell(0);
// 设置标题单元格样式
CellStyle titleCellStyle = sheetObj.getWorkbook().createCellStyle();
Font titleFont = sheetObj.getWorkbook().createFont();
titleFont.setFontName("宋体");
titleFont.setFontHeightInPoints((short) 16);
titleFont.setBold(true);
titleCellStyle.setFont(titleFont);
titleCellStyle.setAlignment(HorizontalAlignment.CENTER);
// 设置标题单元格的值和样式
titleCell.setCellValue("学生信息表");
titleCell.setCellStyle(titleCellStyle);
// 合并单元格
CellRangeAddress mergedRegion = new CellRangeAddress(0, 0, 0, head.get(0).size() - 1);
sheetObj.addMergedRegion(mergedRegion);
```
这样就在表头上方添加了一个标题。完整的代码示例如下:
```java
// 创建 WriteSheet 对象
WriteSheet sheet = EasyExcel.writerSheet().build();
// 设置表头
List<List<String>> head = new ArrayList<>();
head.add(Arrays.asList("姓名", "年龄", "性别"));
sheet.setHead(head);
// 获取 Sheet 对象
Sheet sheetObj = sheet.getSheet();
// 创建一行
Row titleRow = sheetObj.createRow(0);
// 创建标题单元格
Cell titleCell = titleRow.createCell(0);
// 设置标题单元格样式
CellStyle titleCellStyle = sheetObj.getWorkbook().createCellStyle();
Font titleFont = sheetObj.getWorkbook().createFont();
titleFont.setFontName("宋体");
titleFont.setFontHeightInPoints((short) 16);
titleFont.setBold(true);
titleCellStyle.setFont(titleFont);
titleCellStyle.setAlignment(HorizontalAlignment.CENTER);
// 设置标题单元格的值和样式
titleCell.setCellValue("学生信息表");
titleCell.setCellStyle(titleCellStyle);
// 合并单元格
CellRangeAddress mergedRegion = new CellRangeAddress(0, 0, 0, head.get(0).size() - 1);
sheetObj.addMergedRegion(mergedRegion);
// 写入数据
List<Student> students = new ArrayList<>();
students.add(new Student("张三", 18, "男"));
students.add(new Student("李四", 19, "女"));
students.add(new Student("王五", 20, "男"));
EasyExcel.write(fileName, Student.class).sheet().doWrite(students);
```
阅读全文