可以给一个完整的例子嘛
时间: 2024-09-21 09:03:53 浏览: 24
当然,下面是一个完整的Java示例,演示了如何使用EasyExcel导出一个包含嵌套列表的User对象:
```java
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
import java.io.FileOutputStream;
import java.util.List;
// 定义User和Address实体类
public class User {
private String name;
private List<Address> addresses; // 嵌套的地址列表
public User(String name, List<Address> addresses) {
this.name = name;
this.addresses = addresses;
}
// 省略getter和setter...
}
public class Address {
private String street;
private String city;
// 省略getter和setter...
}
public class Main {
public static void main(String[] args) throws Exception {
// 假设我们有这样的数据
User user = new User("张三",
Arrays.asList(
new Address("街道A", "城市A"),
new Address("街道B", "城市B")));
// 创建文件输出流
FileOutputStream outputStream = new FileOutputStream("users.xlsx");
// 设置EasyExcel的写入策略
WriteSheet writeSheet = EasyExcel.writer(outputStream)
.registerWriteHandler(new HorizontalCellStyleStrategy())
.build();
// 开始写入,这里使用User的toString()方法简化示例,实际应用中应根据实际情况提供转换方法
writeSheet.write(user.toString());
// 结束写入
writeSheet.finish();
// 关闭流
outputStream.close();
}
}
```
运行此代码,EasyExcel会将User对象及其嵌套的地址数据写入名为"users.xlsx"的Excel文件中,每一层嵌套都会在新的行显示出来。