java中excel导出list集合,并且list集合的对象里面的一个属性是list的怎么导出ezcel
时间: 2024-09-20 21:12:30 浏览: 39
在Java中,将List集合及其嵌套List对象导出到Excel文件,通常使用Apache POI库。这里是一个基本的例子,假设你有一个名为`Person`的类,其中包含一个List属性`address`:
```java
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class Main {
public static void exportListToExcel(List<Person> people) throws IOException {
Workbook workbook = new XSSFWorkbook(); // 使用XSSFWorkbook处理xlsx格式
Sheet sheet = workbook.createSheet("人员信息");
// 定义列标题
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("姓名");
headerRow.createCell(1).setCellValue("地址");
// 遍历people列表,每一行代表一个Person对象
int rowNum = 1;
for (Person person : people) {
Row dataRow = sheet.createRow(rowNum++);
dataRow.createCell(0).setCellValue(person.getName());
// 导出嵌套的address List
List<String> addresses = person.getAddress();
if (addresses != null && !addresses.isEmpty()) {
for (int i = 0; i < addresses.size(); i++) {
dataRow.createCell(1 + i).setCellValue(addresses.get(i));
}
} else {
// 如果address为空,可以用一个默认值或者其他合适的方式处理
dataRow.createCell(1).setCellValue("");
}
}
// 保存到文件
try (OutputStream outputStream = new FileOutputStream("person_info.xlsx")) {
workbook.write(outputStream);
System.out.println("Excel文件已保存至person_info.xlsx");
} finally {
workbook.close();
}
}
public static class Person {
private String name;
private List<String> address;
// 构造方法、getter和setter省略
}
}
```
当你运行这个程序时,它会创建一个包含`people`列表中每个`Person`对象信息的Excel文件,包括姓名和地址。
阅读全文