Java 将List<CompanyStaffDTO> staffDTOS 写入到Excel文件
时间: 2024-10-16 22:15:08 浏览: 44
在Java中,将`List<CompanyStaffDTO>`类型的对象写入到Excel文件通常需要借助一些第三方库,如Apache POI或者最近流行的IcePDF等。这里是一个简单的步骤概述:
1. **添加依赖**:
首先,你需要在项目中引入相关的库。对于Apache POI,你可以通过Maven或Gradle添加如下依赖:
```xml
<!-- Maven -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.0.0</version>
</dependency>
<!-- Gradle -->
implementation 'org.apache.poi:poi-ooxml:5.0.0'
```
2. **创建Excel writer**:
创建一个`XSSFWorkbook`对象作为工作簿,并选择一个合适的sheet来写入数据。
3. **遍历List并写入数据**:
使用一个for-each循环遍历`CompanyStaffDTO`列表,然后获取每个对象的相关属性,例如姓名、职位等,将其转换成字符串形式。
4. **设置单元格**:
创建`XSSFSheet`和`XSSFRow`对象,然后创建`XSSFCell`来存储数据,比如使用`setCellValue()`方法。
5. **写入行数据**:
对于每个DTO对象,创建一个新的行,并依次将属性值写入对应的单元格。
6. **保存Excel**:
最后,调用`workbook.write()`方法将整个工作簿保存到指定的文件路径。
示例代码片段(简化版):
```java
import org.apache.poi.ss.usermodel.*;
public void writeToExcel(List<CompanyStaffDTO> staffDTOS, String outputPath) {
try (FileOutputStream outputStream = new FileOutputStream(outputPath);
Workbook workbook = new XSSFWorkbook()) {
XSSFSheet sheet = workbook.createSheet("员工信息");
Row headerRow = sheet.createRow(0);
// 设置表头列名
for (String fieldName : CompanyStaffDTO.class.getDeclaredFields()) {
Cell cell = headerRow.createCell(getCellIndex(fieldName));
cell.setCellValue(field.getName());
}
for (int i = 1; i <= staffDTOS.size(); i++) {
CompanyStaffDTO dto = staffDTOS.get(i - 1); // 减一,因为从0开始计数
Row row = sheet.createRow(i);
for (Field field : dto.getClass().getDeclaredFields()) {
field.setAccessible(true);
Object value = field.get(dto);
Cell cell = row.createCell(getCellIndex(field.getName()));
cell.setCellValue(value.toString());
}
}
workbook.write(outputStream);
} catch (Exception e) {
e.printStackTrace();
}
}
private int getCellIndex(String columnName) {
// 根据列名找到索引,假设列名就是列序号
return Integer.parseInt(columnName) - 1;
}
```
阅读全文
相关推荐















