easyexcel 动态列
时间: 2023-06-11 09:07:26 浏览: 113
在 EasyExcel 中,动态列是指列数不固定,需要根据实际数据来动态生成的列。实现动态列的方法如下:
1. 定义实体类时,将需要动态生成的列定义为 List 类型。
```java
public class DemoData {
@ExcelProperty("姓名")
private String name;
@ExcelProperty("年龄")
private Integer age;
@ExcelProperty("科目")
private List<String> subjects;
}
```
2. 在写入 Excel 数据时,通过 Lambda 表达式将 List 中的数据写入到动态列中。
```java
List<DemoData> list = new ArrayList<>();
DemoData data1 = new DemoData();
data1.setName("张三");
data1.setAge(20);
List<String> subjects1 = new ArrayList<>();
subjects1.add("语文");
subjects1.add("数学");
data1.setSubjects(subjects1);
list.add(data1);
// 写入 Excel 数据
ExcelWriter writer = EasyExcel.write(fileName).build();
Sheet sheet = new Sheet(1, 0, DemoData.class);
writer.write(list, sheet);
// 动态生成列
int lastColumnIndex = sheet.getLastColumnIndex(); // 获取最后一列的列号
for (int i = 0; i < list.size(); i++) {
// 获取当前行的数据
Row row = sheet.getRow(i);
DemoData data = list.get(i);
List<String> subjects = data.getSubjects();
// 将 List 中的数据写入到动态列中
for (int j = 0; j < subjects.size(); j++) {
Cell cell = row.createCell(lastColumnIndex + j + 1);
cell.setCellValue(subjects.get(j));
}
}
writer.finish();
```
通过以上方法,就可以实现 EasyExcel 中的动态列了。
阅读全文