自定义批量导出

编辑
文档创建者:文档助手1 (67727 )     浏览次数:6997次     编辑次数:28次     最近更新:susie 于 2019-04-09     

目录:

1. 问题描述编辑

当需要根据不同用户不同地区导出多个报表时,不希望分别导出相应格式进行备份,比较麻烦,希望可以把多个报表同时导出成某种格式了。这样要怎样实现呢?下面详细介绍使用步骤:

2. 原理编辑

  参数示例  
 http://ip:port/webroot/decision/view/report?reportlets=   http://localhost:8075/webroot/decision/view/report?reportlets=
1)报表中无参数时:

[{reportlet:"/doc/reportname.cpt"},{reportlet:"/doc/reportname.cpt"},{...}] 
 
其中{reportlet:"/doc/reportname.cpt"},是模板的访问路径;
[{reportlet:"/doc/Primary/CrossReport/Cross.cpt"},{reportlet:"/doc/Primary/DetailReport/Details.cpt"}] 
2)报表中有参数时:
[{reportlet:"/doc/reportname.cpt",paraname1:"paravalue1",paraname2:"paravalue2",...},{reportlet:"/doc/reportname.cpt",paraname1:"paravalue1",paraname2:"paravalue2",...},{...}]
paraname1:"paravalue1",是指导出各模板内容时,对应的参数名和参数值,多个参数中间用逗号隔开。 

 [{reportlet:"/doc/Primary/Parameter/Parameter.cpt",地区:"华北"},{reportlet:"/doc/Primary/CrossReport/Cross.cpt"}]
  &format=XX,format后面的XX,是指导出文件的格式 &format=excel 批量导出时导出的是一个文件,如果是excel,则会将多个报表导出在多个sheet中。
 &__filename__=name,对导出的文件重命名"name"就是自定义的文件名&__filename__=export 重命名为export。 

完整的示例:
http://localhost:8075/webroot/decision/view/report?reportlets=[{reportlet:"/doc/Primary/Parameter/Parameter.cpt",地区:"华北"},{reportlet:"/doc/Primary/CrossReport/Cross.cpt"}]&format=excel&__filename__=export 
含义:
导出地区参数为华北的Parameter.cpt和无参数Cross.cpt到excel中,其中sheet1显示Cross里的内容,sheet2显示Detatil里的内容;并且excel重命名为export。

3. 实现步骤编辑

我们用一个按钮来实现导出地区参数为华北的Parameter.cpt和无参数Cross.cpt到excel中,代码如下:
<button type="button" onclick="window.open(encodeURI('/webroot/decision/view/report?reportlets=[{reportlet:"/doc/Primary/Parameter/Parameter.cpt",地区:"华北"},{reportlet:"/doc/Primary/CrossReport/Cross.cpt"}]'+'&format=excel'))">导出[Excel]</button>
注:高版本的tomcat不支持 [] / {} 特殊符号,url需要使用编码后的url,否则无法生效,详细点击编码转换
注:自定义批量导出时,如果在导出的同时还在下载多个文件,推荐将浏览器的安全级别降低,避免被浏览器将导出文件判定为不安全文件。

但是由于html中,双引号 " 需要转义成 &quot;  修改后,代码如下:

<button type="button" onclick="window.open(encodeURI('/webroot/decision/view/report?reportlets=[{reportlet:&quot;/doc/Primary/Parameter/Parameter.cpt&quot;,地区:&quot;华北&quot;},{reportlet:&quot;/doc/Primary/CrossReport/Cross.cpt&quot;}]'+'&format=excel'))">导出[Excel]</button>

完整代码如下:

<html> <head> <title>FineReport自定义导出</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <button type="button" onclick="window.open(encodeURI('/webroot/decision/view/report?reportlets=[{reportlet:&quot;/doc/Primary/Parameter/Parameter.cpt&quot;,地区:&quot;华北&quot;},{reportlet:&quot;/doc/Primary/CrossReport/Cross.cpt&quot;}]'+'&format=excel'))">导出[Excel]</button> <iframe id="reportFrame" width="100%" height="100%" ></iframe> </body> </html>

4. 效果预览编辑

已完成示例请参照%FR_HOME%/webapps/webroot/help/page_demo/export.html

启动设计器,输入http://localhost:8075/webroot/help/page_demo/export.html,点击导出Excel,即可导出Excel,效果如下图:
222

附件列表


主题: 部署集成
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

此页面有帮助吗?只是浏览 [ 去社区提问 ]