导出接口报表
- 支持版本
1.9.6+
此方案提供接口导出报表的pdf、excel、word格式,纯JAVA实现,导出速度快,支持批量导出;不依赖python和selenium环境。 支持图表导出(暂不支持地图)、图片、二维码、条形码的导出。
该方案默认不支持图表的导出,如果需要导出图表,需要额外依赖以下插件。导出图表方式:
<!-- 图表生成 -->
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-echarts-starter</artifactId>
<version>2.0.0</version>
</dependency>
接口一: /jmreport/exportReport
- Get方式导出报表
- 支持单个报表和批量报表导出,单文件导出直接下载,批量导出打包成zip包下载。
- 调用后直接通过流下载,不会记录导出记录。
接口文档
接口地址
https://<domain>/[contextPath]/jmreport/exportReport
请求方式
GET
请求Header参数
参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|---|
X-Access-Token | - | string | 是 | 认证令牌(与参数token二选一) |
请求参数
属性名 | 是否必填 | 类型 | 说明 | 用法 |
---|---|---|---|---|
token | 否 | string | 令牌 | 认证令牌(与header中token二选一) |
zipName | 否 | sting | zip文件名称 | 导出zip文件的名称,仅批量导出是有效,不填默认为批量导出_[时间戳] |
exportParams | 是 | array | 导出参数 | |
exportParams.reportId | 是 | string | 报表id | |
exportParams.exportType | 是 | string | 导出类型 | 可选范围: pdf、excel、word |
exportParams.fileName | 否 | string | 文件名称 | 导出的文件名称,不传则为当前报表名称 |
exportParams.queryParam | 是 | Obj | 报表参数 | eg. { year: "2025", month: "04", participants:"admin,jeecg" } |
前端调用
let exportParams = [
{
//必传
reportId: '1074182775962648576',
//必传
exportType:'pdf',
//非必传,默认为当前报表名称
fileName: '第一季度销售预览表',
//报表查询参数
queryParam: JSON.stringify({ year: "2025", month: "04", participants:"admin,jeecg" })
},
//多个
...
]
//其中http://localhost:8086替换成自己的项目请求地址
window.open("http://localhost:8086/jmreport/exportReport?zipName=批量导出&token=123456&exportParams=" + encodeURIComponent(JSON.stringify(exportParams)));
接口二: /jmreport/auto/export/
- 支持版本
1.9.6+
- POST方式导出报表
- 支持单个报表和批量报表导出,但无论单文件还是多文件都统一打包成zip包下载。
- 调用后直接通过流下载,会记录导出记录,可以在导出记录中重复下载。
- 支持邮件通知,导出完成后会发送邮件通知。
- 支持上传文件到对象存储的指定目录。
接口文档
请求接口
https://<domain>/[contextPath]/jmreport/auto/export/
请求方式
POST
请求Header参数
参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|---|
X-Access-Token | - | string | 是 | 认证令牌(与参数token二选一) |
请求参数
属性名 | 是否必填 | 类型 | 说明 | 用法 |
---|---|---|---|---|
token | 否 | string | 令牌 | 认证令牌(与header中token二选一) |
receiverEmail | 否 | sting | 通知消息接收邮箱 | 导出完成后,会将成功(或失败)消息发送至接口中的接收邮箱中;邮件中有下载地址,通过下载地址可以下载已导出的文件。 |
fileSyncPath | 否 | sting | 同步文件路径 | 导出完成后同步文件到对象存储的这个目录下 |
exportParams | 是 | array | 导出参数 | |
exportParams.id | 是 | string | 报表id | |
exportParams.exportType | 是 | string | 导出类型 | 可选范围: pdf、excel、word |
exportParams.params | 是 | Obj | 报表参数 | eg. { year: "2025", month: "04", participants:"admin,jeecg" } |
请求示例:
curl --location 'http://<hostname>/jmreport/auto/export/' \
--header 'X-Tenant-Id: ???' \
--header 'X-Access-Token: ???' \
--header 'Content-Type: application/json' \
--data-raw '{
"reportParams": [
{
"id": "???",
"params": {
"???": "???"
},
"exportType": "excel"
}
],
"receiverEmail": "???@??.com",
"fileSyncPath": "your_sync_path",
"token": "???"
}'
导出记录
调用该接口导出的报表会被记录,可以在导出记录中查看并重新下载报表。
要使用该功能首先要确保积木报表的数据库中有
jimu_report_export_log
表,如果没有请检阅升级日志并执行更新脚本。