
◆ 博主名称: QuZhengRong
AI俘虏,样式苦手
目录

一、项目简介
Luck-Report 是一款面向中国式复杂报表的开源报表引擎,基于单元格迭代 模型 ,可在浏览器里完成交叉表、分组表、主从表等版式的设计、预览与导出。
Luck-Report 由开源项目 UReport2 重构而来,后端基于 Spring Boot,支持独立部署,也可以通过 Starter 集成进现有后端项目。Luck-Report 已升级至 V2 版本,内置 AI 智能助手,可接入 大模型 和管理 RAG 知识库,用自然语言完成制表、改表与答疑。
Luck-Report 源码地址在 gitee,基于 Apache-2.0 开源,可免费商用。
二、相关资源
- 在线体验:https://www.quzhe.top:8060/login
- 技术文档:https://www.quzhe.top:8099/se/docs
- 源码仓库:https://gitee.com/LuckyPools/luck-report-server
- 问题反馈:Gitee Issues
三、核心能力
| 能力 | 说明 |
|---|---|
| 中国式复杂报表 | 基于单元格迭代模型,交叉表、分组表、主从表、套打等场景可在网页设计器中完成 |
| AI 智能助手 | 自然语言制表、改表与答疑,支持深度思考 |
| 知识库增强 | 报表知识库与业务知识库;PDF / Word / TXT / Markdown / 问答向量化检索;混合多路召回与可选 Rerank |
| 模型管理 | 提供管理页维护对话、嵌入、重排序模型 |
| 报表管理 | 提供管理页维护报表,支持角色权限与预览授权 |
| 项目集成 | 可通过 Starter 集成进后端项目 |
四、系统要求
| 环境 | 版本要求 |
|---|---|
| JDK | >= 1.8 |
| Maven | >= 3.6 |
| MySQL | >= 5.7 |
Redis、向量库仅在启用对应插件 / 配置时需要。
# 五、目录结构
仓库主要模块大致如下:
.
├── luck-report-core/ # 报表计算、表达式、导出等核心引擎
├── luck-report-web/ # Web 接口、设计器/预览页面资源、业务服务
├── luck-report-jdbc/ # JDBC 访问封装
├── luck-report-font/ # 内置字体资源
├── luck-report-plugins/ # 可选插件(缓存、向量库等)
├── luck-report-spring-boot2-starter/ # Spring Boot 2.x 适配
├── luck-report-spring-boot3-starter/ # Spring Boot 3.x 适配
├── luck-report-pub/ # 可独立运行的启动模块
├── sql/ # 建表与向量库初始化脚本
└── pom.xml
本地体验入口主要看 luck-report-pub;向量库、Redis 这类能力在 luck-report-plugins 里按需启用。
六、快速开始
1、初始化数据库
按所选数据库执行建表脚本,脚本在 sql/relation/ 下:
- MySQL:
sql/relation/mysql/luck_report.sql - PostgreSQL:
sql/relation/pgsql/luck_report.sql - Oracle:
sql/relation/oracle/luck_report.sql - SQL Server:
sql/relation/sqlserver/luck_report.sql
向量库相关脚本在 sql/vector/,启用知识库时再按需执行。
2、修改配置
编辑启动模块配置 luck-report-pub/src/main/resources/application-dev.yml,至少改数据源:
spring:
datasource:
username: root
password: root
# 按本机库名和时区改
url: jdbc:mysql://localhost:3306/luck_report?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8
driver-class-name: com.mysql.cj.jdbc.Driver
luck-report:
servletPrefix: luck-report
# 本地体验建议先用内存缓存,避免强依赖 Redis
disableLocalReportCache: false
token:
enabled: false
若暂不使用知识库 / 向量检索 ,可将同文件中的 luck-report.vector 整段注释掉,并视情况去掉 luck-report-pub 对向量插件的依赖,以免启动时连接向量库失败。
3、编译并启动
在仓库根目录执行:
mvn clean package -DskipTests
java -jar luck-report-pub/target/luck-report-pub.jar
也可以在 IDE 里跑主类 com.luck.report.pub.LuckReportApplication,Profile 用 dev。
默认开发端口看 application-dev.yml,一般是 8049,servletPrefix 为 luck-report。
4、访问页面
| 页面 | 地址 |
|---|---|
| 管理页 | http://localhost:8049/luck-report/manage |
| 设计器 | http://localhost:8049/luck-report/designer |
| 预览 | http://localhost:8049/luck-report/preview?reportPath=db:{报表ID} |
七、内置功能
- 报表设计器:网页端可视化设计器,拖拽绑定字段,配置单元格与版式,设计后可即时预览
- AI 智能助手:自然语言对话制表、改表与答疑,支持深度思考;示例:「做一个按部门分组的销售汇总表」「给 A 列加上合计行」
- 知识库:报表知识库与业务知识库;PDF / Word / TXT / Markdown / 问答向量化检索;混合多路召回 + 可选 Reranker,辅助智能助手
- 大模型配置:统一管理对话、嵌入、重排序模型
- 公共数据源 / 数据集:统一维护库连接与可复用数据集,可跨报表引用
- 数据源:JDBC、内置数据源、Spring Bean、静态 JSON
- 查询参数:URL、查询表单与内置参数(如用户 ID)驱动取数
- 表达式引擎:内置表达式与函数,支持复杂计算与动态 SQL
- 条件属性:按条件动态改样式、分页、链接等
- 行类型与分页:标题 / 重复表头表尾 / 总结行,补充空白行与固定行数分页
- 图表:饼图、柱图、折线、雷达、散点、气泡等 10 种图表(ECharts)
- 图片 / 条码:路径、Base64、表达式图片;一维条码与二维码
- 悬浮元素 / 套打:纸面悬浮图文;套打背景图对齐预印单据
- 预览与工具栏:预览 / 分页预览;工具栏按钮可按报表配置显隐
- 导出与打印:导出 PDF、Word、Excel(分页 / 分 Sheet);PDF 与浏览器打印
- 权限:管理端 / 设计器角色白名单,预览端按角色授权报表
- 缓存:本地缓存与 Redis 分布式缓存扩展
- 国际化:中英文界面切换(
zh_CN/en_US) - 旧版迁移:提供 UReport2、Luck‑Report V1 报表转化工具






