跳到主要内容

导出接口报表

  • 支持版本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二选一)

请求参数

属性名是否必填类型说明用法
tokenstring令牌认证令牌(与header中token二选一)
zipNamestingzip文件名称导出zip文件的名称,仅批量导出是有效,不填默认为批量导出_[时间戳]
exportParamsarray导出参数
exportParams.reportIdstring报表id
exportParams.exportTypestring导出类型可选范围: pdf、excel、word
exportParams.fileNamestring文件名称导出的文件名称,不传则为当前报表名称
exportParams.queryParamObj报表参数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二选一)

请求参数

属性名是否必填类型说明用法
tokenstring令牌认证令牌(与header中token二选一)
receiverEmailsting通知消息接收邮箱导出完成后,会将成功(或失败)消息发送至接口中的接收邮箱中;邮件中有下载地址,通过下载地址可以下载已导出的文件。
fileSyncPathsting同步文件路径导出完成后同步文件到对象存储的这个目录下
exportParamsarray导出参数
exportParams.idstring报表id
exportParams.exportTypestring导出类型可选范围: pdf、excel、word
exportParams.paramsObj报表参数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表,如果没有请检阅升级日志并执行更新脚本