# 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 ``` ### 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. 最终效果 ![导出图片结果](img/export.jpg)