easyexcel 追加列
时间: 2023-07-24 22:26:13 浏览: 129
easyExcel 动态列以及自适应列宽的实现步骤.md
在 EasyExcel 中,可以通过 `com.alibaba.excel.metadata.Sheet` 类的 `getHead` 方法获取表头信息,并且可以通过 `com.alibaba.excel.metadata.CellData` 类的 `newString(String value)` 方法创建一个新的单元格数据。因此,我们可以在表头信息中添加新的列名,然后在每一行数据中添加对应的单元格数据,实现追加列的功能。具体代码如下:
```java
// 构造数据
List<User> list = new ArrayList<>();
// ... 添加数据 ...
// 构造 Sheet 对象
Sheet sheet = new Sheet(1, 0, User.class);
// 获取表头信息
List<List<String>> head = sheet.getHead();
// 添加新的列名
head.get(0).add("新列名");
// 添加每一行对应的单元格数据
for (int i = 0; i < list.size(); i++) {
User user = list.get(i);
CellData<String> cell = new CellData<>("新列数据" + i);
List<CellData> rowData = new ArrayList<>(head.size());
rowData.addAll(sheet.getRow(i + 1));
rowData.add(cell);
sheet.setRow(i + 1, rowData);
}
// 写出数据
ExcelWriter writer = new ExcelWriter(out);
writer.write(list, sheet);
writer.finish();
```
其中,`User` 是自定义的数据类型,`out` 是输出流。我们首先构造数据,并创建一个 `Sheet` 对象,然后获取表头信息,将新的列名添加到表头中。接着,我们遍历每一行数据,分别获取该行的单元格数据,再新建一个单元格数据并添加到该行数据的末尾,将修改后的行数据设置回 `Sheet` 对象中。最后,我们通过 `ExcelWriter` 将数据写出到输出流中。
阅读全文