java实体类分两种情况导出excel
时间: 2023-07-28 13:10:38 浏览: 185
好的,针对你的问题,我可以给出以下两种情况下导出Excel的方法:
1. 使用Apache POI库
Apache POI是一个Java库,可以处理Microsoft Office格式的文件,包括Excel。如果你的实体类是基于JavaBean规范的,那么可以使用Apache POI来导出Excel文件。
首先,你需要将实体类的属性与Excel表格中的列一一对应,定义一个数据模型。然后,使用Apache POI的API将数据写入Excel文件中。
以下是一个基于Apache POI的示例代码:
```java
public void exportExcel(List<Book> bookList, OutputStream outputStream) {
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Book List");
// 创建表头
HSSFRow headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("Book ID");
headerRow.createCell(1).setCellValue("Title");
headerRow.createCell(2).setCellValue("Author");
headerRow.createCell(3).setCellValue("Price");
// 填充数据
int rowNum = 1;
for (Book book : bookList) {
HSSFRow row = sheet.createRow(rowNum++);
row.createCell(0).setCellValue(book.getId());
row.createCell(1).setCellValue(book.getTitle());
row.createCell(2).setCellValue(book.getAuthor());
row.createCell(3).setCellValue(book.getPrice());
}
// 输出Excel文件
try {
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
```
2. 使用EasyExcel库
EasyExcel是一个基于阿里巴巴开发的Java库,可以方便地导入和导出Excel文件。如果你的实体类是基于Java Bean规范的,那么可以使用EasyExcel来导出Excel文件。
以下是一个基于EasyExcel的示例代码:
```java
public void exportExcel(List<Book> bookList, OutputStream outputStream) {
List<BookDTO> bookDTOList = bookList.stream().map(BookDTO::new).collect(Collectors.toList());
ExcelWriter excelWriter = EasyExcel.write(outputStream, BookDTO.class).build();
WriteSheet writeSheet = EasyExcel.writerSheet("Book List").build();
excelWriter.write(bookDTOList, writeSheet);
excelWriter.finish();
}
```
在这个示例代码中,我们先将Book实体类转换为BookDTO数据传输对象,然后使用EasyExcel的API将数据写入Excel文件中。注意,EasyExcel的API比Apache POI更加简洁易用,但是可能会比较耗费内存。
阅读全文