easyexcel动态生成表头和数据
时间: 2025-04-29 10:34:03 浏览: 34
### 使用 EasyExcel 动态创建表格的标题行和填充数据
为了满足不同场景下的需求,EasyExcel 提供了强大的灵活性来处理动态表头和数据。以下是具体实现方法:
#### 创建依赖项
首先,在项目中引入必要的 Maven 或 Gradle 依赖。
对于 Maven 用户:
```xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.0.5</version>
</dependency>
```
对于 Gradle 用户:
```groovy
implementation 'com.alibaba:easyexcel:3.0.5'
```
#### 编写服务层代码
接下来展示一段用于动态生成 Excel 文件的服务端 Java 实现[^4]。
```java
import com.alibaba.excel.EasyExcel;
import java.util.ArrayList;
import java.util.List;
public class DynamicExportService {
public void exportDynamicData(String fileName, List<List<String>> head, List<List<Object>> data) {
// 设置文件名以及指定要写的 sheet 名字
String fullFileName = fileName + ".xlsx";
// 调用 easyexcel 的 write 方法进行导出操作
EasyExcel.write(fullFileName).head(convertHead(head)).sheet("Sheet1").doWrite(data);
}
private static List<List<String>> convertHead(List<List<String>> originalHeads){
return new ArrayList<>(originalHeads);
}
}
```
此段代码展示了如何接收两个参数 `head` 和 `data` 来分别表示动态变化的列名称列表(即表头)及实际的数据记录集合。其中 `convertHead()` 函数负责转换传入的表头信息以便于后续处理。
#### 测试案例
这里给出一个简单的测试例子说明上述函数的应用方式:
```java
@Test
void testExport() throws Exception{
// 定义动态表头
List<List<String>> heads = Arrays.asList(
Collections.singletonList("姓名"),
Collections.singletonList("年龄"),
Collections.singletonList("性别")
);
// 构建模拟数据集
List<List<Object>> dataList = new ArrayList<>();
for (int i=0;i<10;i++){
List<Object> row = Lists.newArrayList();
row.add("张三"+i);
row.add(20+i);
row.add(i%2==0?"男":"女");
dataList.add(row);
}
// 执行导出动作
dynamicExportService.exportDynamicData("/path/to/exportedFile",heads,dataList);
}
```
这段测试代码构建了一个包含三个字段(姓名、年龄、性别)作为表头,并随机生成了一些样例条目填充实表格内容。最后调用了之前定义好的 `exportDynamicData()` 方法完成整个流程。
阅读全文
相关推荐




















