【分享】不展示报表,直接通过 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&paramString=arg1=zhangsan&columns=0&srcType=file
导出 pdf 加多个参数
http://localhost:6868/demo/reportServlet?action=6&file=test.rpx&paramString=arg1=zhangsan;&arg2=beijing&columns=0&srcType=file

对应不同的导出文件,润乾提供了不同的方法,除了常用的 pdf、word、excel,润乾还支持导出 csv、mht、Ofd 文件。具体 url 查看有个简单方法,可以先通过浏览器展示报表,然后页面端点击右键,选择查看网页源代码,在源代码里搜索下 saveAsMht,就能看到对应导出 Mht 的方法,比如:

1png

主要是如果需要传参数,将 reportParamsId(报表参数缓存 ID,如果不通过 jsp 展示,那么就没这个 id 了)换成 paramString 就可以了。

分享一个 pdf 直接打印的 url:
http://localhost:6868/demo/reportJsp/pdfBatchPrint.jsp?report=%7B 订单.rpx%7D&preview=no

如果需要预览界面,去掉 &preview=no 拼接即可。

其中 %7B 对应 {
%7D 对应 }