多表批量导出txt及打压缩包下载
在一些特殊的业务系统中,有些客户查看报表数据时不需要在浏览器上逐一查看,需要在页面端选择要查看的报表名称(可多选),选择条件,然后将所选中的报表批量导出到txt文件中并且要把批量导出的结果文件打成压缩包下载,这样就能在其他时间统一查看报表数据。
解决方案:润乾提供了丰富的开发接口,可通过API实现该需求。
String raqNames="1,2";//批量导出报表名称,此处可从其他页面获得
String burs="BDP";//定义参数,可从其他页面获得
String root = getServletContext().getRealPath("/"); //获得应用根目录
String fileName = "srbbfx";//定义批量导出压缩包名称
String txtPath = root+"txtPath\\"+Double.toString(Math.random()*100000000).toString().substring(0,6)+"\\";
java.io.File file = new java.io.File(txtPath);
if(!file.exists()) {
file.mkdirs();
} else {
}
//报表导出后涉及到打压缩包下载,此处为每次导出新建临时文件夹
Context context = new Context();//构建报表环境
context.setParamValue("date1","20101101");//设置起始时间
context.setParamValue("date2","20101231");//设置结束时间,实际应用由程序获得或循环取值
context.setMacroValue("macro1"," and bur_sta_tel='"+bur[j]+"'");//给润乾宏赋值,每次取相应站数据
Engine enging = new Engine( rd, context);//构建润乾引擎
IReport iReport = enging.calc();//计算报表,生成结果文件
java.io.FileOutputStream fos=new FileOutputStream(txtPath+"b"+raqN[i]+bur[j]+"20101101"+".txt");
//txt文件名称格式
报表文件名:b+表名+单位代码+日.txt
ReportUtils.exportToText(fos,iReport,",",true);//导出txt文件
//将导出的txt文件放到待压缩的zip包中
String filePath=txtPath+"b"+raqN[i]+bur[j]+"20101101"+".txt";
File f = new File(filePath);
if(f.exists())
{
FileInputStream fis1 = new FileInputStream(f);
ZipEntry ze = new ZipEntry(f.getName());
zos.putNextEntry(ze);
int b;
while((b = fis1.read()) != -1)
zos.write(b);
fis1.close();
}
fos.flush();
fos.close();
}
}
zos.flush();
zos.close();
//将生成的压缩包下载到客户端,此处可自写代码实现,可自增代码将生成的文件删除
response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName+".zip"+ "\"");
try
{
java.io.OutputStream os = response.getOutputStream();
java.io.FileInputStream fiss = new java.io.FileInputStream(txtPath+fileName+".zip");
byte[] b = new byte[10240];
int i = 0;
while ( (i = fiss.read(b)) > 0 )
{
os.write(b, 0, i);
}
fiss.close();
os.flush();
os.close();
}
catch ( Exception e )
{}
out.clear();
out = pageContext.pushBody();
这样报表就能实现批量导出txt并打压缩包下载。
具体代码见附件。打压缩包用到了其他类,将附件中的jar包放到WEB-INF/lib下,这里为导出txt文件,导出其他文件类似
多表批量导出txt及打压缩包下载的更多相关文章
- asp.net用zip方法批量导出txt
首先: 引用 ICSharpCode.SharpZipLib.dll,百度下载 然后引用命名空间: using ICSharpCode.SharpZipLib.Zip;using ICSharpCod ...
- 批量导出access某表内容到word文档
一.需求: 需要将表中每一条记录中的某些内容导出在一个word文档中,并将这些文档保存在指定文件夹目录下 二.界面,简单设计如下: 三.添加office相关引用 添加后可在解决方案资源管理器中看到: ...
- 批量导出数据库表(oracle)
批量导出数据库表(oracle) 要求:导出sql文件,包含表结构和数据. 方案一 1:用cmd进入命令行输入:tnsping cmstar就是测试172.18.13.200是否连接成功2:导入与导出 ...
- C# 导出word文档及批量导出word文档(1)
这里用到了两个dll,一个是aspose.word.dll,另外一个是ICSharpCode.SharpZipLib.dll,ICSharpCode.SharpZipLib.dll是用于批量 ...
- C# 导出word文档及批量导出word文档(4)
接下来是批量导出word文档和批量打印word文件,批量导出word文档和批量打印word文件的思路差不多,只是批量打印不用打包压缩文件,而是把所有文件合成一个word,然后通过js来调用 ...
- ajax+ashx:实现文件的批量导出
背景: 最近公司有一个需求,就是实现excle的批量导出(一次性导出多个excle). 实现方式: 想到的实现方式: 1.发起一个导出请求,然后批量生产需要导出的excle文件,最后将文件生成一个压缩 ...
- Gitlab用户信息批量导出
前言 因运维体系中涉及到用户权限管理及统计,需将Gitlab用户数据提取出来并录入到公司内部自建的权限统计平台. 本文将对Gitlab的用户信息数据批量导出进行操作说明! 思路 A)要对数据进行批量的 ...
- Oracle sqlldr导入导出txt数据文件详解
一.sqlldr导入txt 1.预备 a).txt文件 这里要保存成无签名的UTF-8 b).oracle建表 2.编写控制文件input_test.ctl LOAD DATA CHARACTERSE ...
- 解决Oracle 11g在用EXP导出时,空表不能导出
实践结论可行,看"2.解决办法" 一.问题原因: 11G中有个新特性,当表无数据时,不分配segment,以节省空间 1.insert一行,再rollback就产生 ...
随机推荐
- RabbitMQ和Kafka对比以及场景使用说明
我目前的项目最后使用的是RabbitMQ,这里依然是结合网上大神们的优秀博客,对kafka和rabbitmq进行简单的比对.最后附上参考博客. 1.架构模型 rabbitmq RabbitMQ遵循AM ...
- iis 如何设置http访问转向https
把网站设置成https后,发现在浏览器输入域名后,并不能所期望的看到成功访问页面,在输入如:http://www.alipay.com后浏览器自动导航到https://www.alipay.com. ...
- 《Mysql技术内幕,Innodb存储引擎》——事物
事物 事物中的操作要么都成功要么都不做,这是事物的目的,也是事物模型与文件系统的重要特征之一. 扁平事物(Flat Transactions) 所有操作都处于同一层次,要么都做要么都执行要么都回滚,无 ...
- lintcode-->翻转字符串
给定一个字符串,逐个翻转字符串中的每个单词. 您在真实的面试中是否遇到过这个题? Yes 说明 单词的构成:无空格字母构成一个单词 输入字符串是否包括前导或者尾随空格?可以包括,但是反转后的字符不能包 ...
- redis-集群创建脚本
之前建好了redis集群, 但没有找到集群重启的机制, 停电2次, 重新创建太麻烦, 于是写了个脚本辅助启动 redis的创建过程可以看: http://www.cnblogs.com/wenbron ...
- 使用aapt解析apk,得到package内容
$cmd = C('APPT_PREFIX'); exec(C('APPT_PREFIX') . UPLOAD_RES_PATH . $up_az, $out, $return); && ...
- Go RabbitMQ (一)
RabbitMQ 简介 RabbitMQ是一个消息代理,用来负责接收和转发消息. 术语 生产者:生产者是负责发送消息的 队列:队列是RabbitMQ用来存储消息的,受主机内存和磁盘大小的限制,本质上是 ...
- redis实战笔记(4)-第4章 数据安全与性能保障
本章主要内容 4.1 将数据持久化至硬盘 4.2 将数据复制至其他机器 4.3 处理系统故障 4.4 Redis事务 4.5 非事务型流水线( non-transactional pipeline) ...
- 在你的 Rails App 中开启 ETag 加速页面载入同时节省资源
转自http://huacnlee.com/blog/use-etag-in-your-rails-app-to-speed-up-loading/ 什么是 ETag 网上关于 ETag 的解释有很多 ...
- bet阶段验收互评
小组名字和链接 优点 缺点,bug报告 最终名次 Gakki赛高[二十四点小游戏] 1.界面与上阶段相比更好了2.新增闯关设计,提升游戏性3.功能完善 1.下载方式不方便2.排行榜设计较为简陋 1 编 ...