# excel-report
**Repository Path**: mengfly_p/excel-report
## Basic Information
- **Project Name**: excel-report
- **Description**: Excel 报表框架
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 4
- **Forks**: 1
- **Created**: 2023-12-28
- **Last Updated**: 2025-08-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Excel 报表框架
> 极简化的复杂Excel报表导出框架,支持手动编码、模板文件两种方式导出Excel模板。
版本更新日志: [version log](VERSION.md)
## 特点
1. 几乎完全屏蔽POI操作,提供类UI框架的操作接口、定义报表极其简单
2. 提供模板文件定义,类似于各种模板框架,支持SPEL表达式的模板定义
3. 提供类似于 Themleaf 的 If, For 标签,更方便定义模板
4. 自动计算组件位置
5. 简化CellStyle设置
## 使用方式(模板方式、推荐)
1. 引入依赖
```xml
io.github.mengfly
excel-report
1.3.0
```
### 2. 定义报表模板
以下为实例:
具体的模板实例可以参考:[模板文件](src/test/resources/TestTemplate.xml)
```xml
true
```
### 3. 传递参数,渲染模板
```java
import io.github.mengfly.excel.report.excel.ExcelReport;
public static void main(String[] args) {
// 创建报表类
ExcelReport report = new ExcelReport();
// 构建数据参数
DataContext context = new DataContext();
context.put("image", TestDataUtil.getTestImageFile());
context.put("tableData", TestDataUtil.getData(10));
context.put("listData", TestDataUtil.getRandomStringList(9));
// ...
try (InputStream stream = getClass().getClassLoader().getResourceAsStream("TestTemplate.xml")) {
// 加载模板
ReportTemplate template = new ReportTemplate(stream);
// 导出模板到Sheet页, 一个ExcelReport 代表了一个Excel文件,每次调用export就是在向里面添加一个Sheet页
report.exportTemplate(template, FileUtil.mainName(templatePath), context);
}
// 存储文件
report.save(new File("test-template.xlsx"));
}
```
### 4. 最终效果
