java导出excel设置复杂表头标题
时间: 2023-09-04 15:17:28 浏览: 145
要设置复杂表头标题,你可以使用 Apache POI 库。下面是一个示例代码,可以帮助你了解如何创建具有多行和多列标题的 Excel 表格:
```java
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelExportExample {
public static void main(String[] args) throws IOException {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
// 创建标题行
Row titleRow1 = sheet.createRow(0);
Cell titleCell11 = titleRow1.createCell(0);
titleCell11.setCellValue("Title1");
sheet.addMergedRegion(titleCell11.getAddress().formatAsString() + ":"
+ sheet.getRow(1).getCell(0).getAddress().formatAsString());
Row titleRow2 = sheet.createRow(1);
Cell titleCell12 = titleRow2.createCell(0);
titleCell12.setCellValue("SubTitle1");
Cell titleCell13 = titleRow2.createCell(1);
titleCell13.setCellValue("SubTitle2");
sheet.addMergedRegion(titleCell12.getAddress().formatAsString() + ":"
+ titleCell13.getAddress().formatAsString());
// 创建数据行
Row dataRow1 = sheet.createRow(2);
Cell dataCell11 = dataRow1.createCell(0);
dataCell11.setCellValue("Data1");
Cell dataCell12 = dataRow1.createCell(1);
dataCell12.setCellValue("Data2");
// 设置标题行和数据行的样式
CellStyle titleStyle = workbook.createCellStyle();
titleStyle.setAlignment(CellStyle.ALIGN_CENTER);
titleStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
CellStyle dataStyle = workbook.createCellStyle();
dataStyle.setAlignment(CellStyle.ALIGN_LEFT);
dataStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
titleCell11.setCellStyle(titleStyle);
titleCell12.setCellStyle(titleStyle);
titleCell13.setCellStyle(titleStyle);
dataCell11.setCellStyle(dataStyle);
dataCell12.setCellStyle(dataStyle);
// 调整列宽
sheet.autoSizeColumn(0);
sheet.autoSizeColumn(1);
// 保存 Excel 文件
FileOutputStream outputStream = new FileOutputStream("example.xlsx");
workbook.write(outputStream);
workbook.close();
outputStream.close();
}
}
```
在这个示例中,我们创建了一个名为 `Sheet1` 的工作表,并在第一行和第二行上创建了标题。第一行标题是 `Title1`,第二行标题是 `SubTitle1` 和 `SubTitle2`。然后,在第三行创建了一些数据。我们还设置了标题行和数据行的样式,并调整了列的宽度。最后,我们将 Excel 文件保存到名为 `example.xlsx` 的文件中。
阅读全文