【分享】不展示报表,直接通过 url 进行导出
一、需求:
在实际业务系统中,经常需要实现报表的自动导出功能,而不是每次都在浏览器中预览报表后再手动导出。本文将详细介绍如何通过 URL 直接调用润乾报表的导出功能,实现不展示报表页面直接下载文件的效果。
二、实现原理:
润乾报表提供了 reportServlet 作为报表处理的核心入口,通过不同的 action 参数值来控制不同的操作类型。
三、实现方式
将制作好的报表 test.rpx 文件放在 reportFiles 目录下。
不展示直接导出 pdf 的 URL:
http://localhost:6868/demo/reportServlet?action=6&file=test.rpx&columns=0&srcType=file
不展示直接导出 excel 的 URL:
http://localhost:6868/demo/reportServlet?action=3&file=test.rpx&columns=0&srcType=file&excelFormat=xlsx&pageStyle=0&formula=0&tips=no
不展示直接导出 word 的 URL:
http://localhost:6868/demo/reportServlet?action=7&file=test.rpx&columns=0&srcType=file
参数详解
| 参数名 | 取值 | 说明 |
|---|---|---|
| action | 固定值 | 6,表示执行导出 PDF 操作 7,表示执行导出 word 的操作 3,表示执行导出 excel 的操作 |
| file | 报表文件名 | 指定要导出的报表文件,如 test.rpx |
| columns | 0 | 页面列数设置,0 表示不进行分栏 |
| srcType | file | 报表来源类型,file 表示从文件系统读取 |
| pageStyle | 0,1 | 分页方式,0 表示不分页,1 表示分页 |
| formula | 0,1 | 是否导出公式,导出公式时候需要注意是不分页的 |
| tips | no,yes | 是否导出批注 |
四、带参数报表的导出
润乾报表使用 paramString 参数来传递报表所需的查询参数,格式如下:
paramString= 参数名 1= 参数值 1; 参数名 2= 参数值 2; 参数名 3= 参数值 3
例:导出 pdf 加一个参数
http://localhost:6868/demo/reportServlet?action=6&file=test.rpx¶mString=arg1=zhangsan&columns=0&srcType=file
导出 pdf 加多个参数
http://localhost:6868/demo/reportServlet?action=6&file=test.rpx¶mString=arg1=zhangsan;&arg2=beijing&columns=0&srcType=file
对应不同的导出文件,润乾提供了不同的方法,除了常用的 pdf、word、excel,润乾还支持导出 csv、mht、Ofd 文件。具体 url 查看有个简单方法,可以先通过浏览器展示报表,然后页面端点击右键,选择查看网页源代码,在源代码里搜索下 saveAsMht,就能看到对应导出 Mht 的方法,比如:

主要是如果需要传参数,将 reportParamsId(报表参数缓存 ID,如果不通过 jsp 展示,那么就没这个 id 了)换成 paramString 就可以了。
分享一个 pdf 直接打印的 url:
http://localhost:6868/demo/reportJsp/pdfBatchPrint.jsp?report=%7B 订单.rpx%7D&preview=no
如果需要预览界面,去掉 &preview=no 拼接即可。
其中 %7B 对应 {
%7D 对应 }
