easyexcel 合并列
时间: 2023-09-19 13:12:13 浏览: 121
在 EasyExcel 中合并列可以通过 `merge` 方法实现。具体步骤如下:
1. 创建一个 `WriteSheet` 对象,定义表格的基本信息。
```java
WriteSheet writeSheet = EasyExcel.writerSheet("合并列示例").build();
```
2. 定义表头信息,并添加到 `WriteSheet` 对象中。
```java
List<List<String>> head = new ArrayList<>();
head.add(Arrays.asList("姓名", "性别", "年龄"));
writeSheet.setHead(head);
```
3. 定义要写入的数据,并添加到 `WriteSheet` 对象中。
```java
List<DemoData> data = new ArrayList<>();
data.add(new DemoData("张三", "男", 20));
data.add(new DemoData("李四", "女", 22));
data.add(new DemoData("王五", "男", 25));
writeSheet.setClazz(DemoData.class);
EasyExcel.write(fileName).sheet().doWrite(data);
```
4. 使用 `merge` 方法合并指定的单元格。
```java
// 合并第一列中姓名相同的单元格
int firstRow = 1;
int lastRow = 1;
String lastName = data.get(0).getName();
for (int i = 1; i < data.size(); i++) {
if (data.get(i).getName().equals(lastName)) {
lastRow++;
} else {
if (lastRow > firstRow) {
writeSheet.merge(firstRow, lastRow, 0, 0);
}
firstRow = i + 1;
lastRow = firstRow;
lastName = data.get(i).getName();
}
}
if (lastRow > firstRow) {
writeSheet.merge(firstRow, lastRow, 0, 0);
}
```
上面的代码中,我们首先定义了要合并的单元格的行和列的起始和结束位置,然后使用 `merge` 方法将这些单元格合并起来。其中,`merge` 方法接受 4 个参数,分别表示要合并的单元格的行和列的起始和结束位置。在本例中,我们将第一列中姓名相同的单元格进行了合并。
阅读全文