jeecg项目将workbook 的Excel流添加到zip压缩包里导出
1、直接献出代码
Map<String,List<ConfidentialInformation>> typeMap = new HashMap<>();
try {
//设置导出
response.addHeader("Cache-Control","no-cache");
response.setCharacterEncoding("UTF-8");
response.setContentType("application/octet-stream;charset=UTF-8");
String ua = request.getHeader("user-agent");
ua = ua == null ? null : ua.toLowerCase();
String docFileName = dateMonth.toString()+"月凭证信息情况.zip";
if(ua != null && (ua.indexOf("firefox") > 0 || ua.indexOf("safari")>0)){
try {
docFileName = new String(docFileName.getBytes(),"ISO8859-1");
response.addHeader("Content-Disposition","attachment;filename=" + docFileName);
} catch (Exception e) {
}
}else{
try {
docFileName = URLEncoder.encode(docFileName, "utf-8");
response.addHeader("Content-Disposition","attachment;filename=" + docFileName);
} catch (Exception e) {
}
} ByteArrayOutputStream out = new ByteArrayOutputStream();
ZipOutputStream zipOut = new ZipOutputStream(out); byte[]buffer=new byte[1024];
for (String names:typeMap.keySet()){
Map<String,Object> outMaps = new HashMap<>(); outMaps.put( "datac",typeMap.get( names ) ); //Excel处理成zip包
XLSTransformer transformer = new XLSTransformer();
String srcFilePath = request.getServletContext().getRealPath("/")+"/export/template/credentialReport.xls"; InputStream is = new BufferedInputStream(new FileInputStream(srcFilePath));
Workbook workbook =null; workbook = transformer.transformXLS(is, outMaps); //压缩包zip留。
ByteArrayOutputStream outtemp = new ByteArrayOutputStream();
workbook.write(outtemp);
ByteArrayInputStream bais =new ByteArrayInputStream(outtemp.toByteArray());
String nickname = ResourceUtil.getCacheDicDetail("apportion",names,"typename");
zipOut.putNextEntry(new ZipEntry(nickname+"凭证信息表.xls"));
int dataLen;
//读入需要下载的文件的内容,打包到zip文件
while((dataLen=bais.read(buffer))>0){
zipOut.write(buffer,0,dataLen); }
zipOut.closeEntry();
bais.close();
outtemp.close();
is.close(); }
zipOut.close();
out.close(); byte[] zipByte=out.toByteArray(); OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
toClient.write(zipByte);
toClient.flush(); }catch (Exception e){
e.printStackTrace();
}
jeecg项目将workbook 的Excel流添加到zip压缩包里导出的更多相关文章
- [java][JEECG] Maven settings.xml JEECG项目初始化 RouYi settings.xml配置
好吧一下是经验之谈,原本这些坑不应该躺的,从头看手册完全可以避免这些. 懒得整理了,看懂了就看,看不懂自己琢磨JEECG的帮助文档去,不过嘛我喜欢用Intelij IDEA,他里面都是别的IDE,不喜 ...
- Excel中添加并使用宏实现批量更新数据
一.状况描述 当我们需要后台更新大量数据的时候,可以使用该功能.二.解決方案 (1)新建一个Excel文件,并另存为启用宏的Excel工作簿,扩展名为.xlsm. (2)在Excel ...
- Myeclipse的web项目移植到Eclipse中需要添加的包
3.jstl.jar 4.standard-1.1.2.jar 把Myeclipse的web项目一直到Eclipse当中需要添加的包主要有一下4个: 1.servlet-api.jar 2.jsp-a ...
- jeecg项目子窗口获得父窗口元素id
jeecg项目子窗口获得父窗口元素id, var parentWin = frameElement.api.opener;alert($(parentWin.document).find(" ...
- 给你的流添加缓冲装置——字节块ByteChunk
这是一个很重要的一个字节数组处理缓冲工具,它封装了字节缓冲器及对字节缓冲区的操作,包括对缓冲区的写入.读取.扩展缓冲区大小等等,另外还提供相应字符编码的转码操作.此工具让缓冲操作变得更加方便,除了缓冲 ...
- iOS - UICollectionView 瀑布流 添加表头视图的坑
UICollectionView 瀑布流 添加表头视图的坑 首先是,需求加了个头视图在顶部,在collectionView中的头视图跟TableView的不一样,TableView的表头只要设置tab ...
- excel怎么设置密码保护?Excel文件添加密码保护教程
excel怎么设置密码保护?Excel文件添加密码保护教程 众所周知,Excel具有强大的数据处理和数据分析能力,广泛应用于加工学统计及金融统计中.特别是金融统计需要较高的安全性,那么就一定要为Exc ...
- 基于.NetCore开发博客项目 StarBlog - (10) 图片瀑布流
系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...
- python 导出数据到excel 中,一个好用的导出数据到excel模块,XlsxWriter
最近公司有项目需要导出数据到excel,首先想到了,tablib,xlwt,xlrd,xlwings,win32com[还可以操作word],openpyxl,等模块但是 实际操作中tablib 写入 ...
随机推荐
- QByteArray与QString的互相转换
QByteArray baData; QString str = QString(baData); // 反过来转换: QByteArray by1 = str.toLatin1(); QByteAr ...
- linux命令历史
本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加). QQ群: 281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29Lo ...
- /etc/fstab 下的配置参数
第一列:分区的label或者UUID 若要查看/dev/sdb1设备的label或者UUID[root@localhost ~]# dumpe2fs -h /dev/sdb1dumpe2fs 1.42 ...
- 微信小程序-饮食日志_开发日志
针对假期作业为父母或者身边的人做一款“小软件”这个课题,由于对 android 开发不熟悉 ,所以决定做一款微信小程序. 项目名称:饮食管理日志 目的:身边的人群对摄入食物热量及消耗不清楚,对健康需求 ...
- requests中text,content,json之间的区别
response.text : 返回一个字符串\n",content : 返回二进制\n",json() : 返回对象"
- Arduino连接MPU6050陀螺仪
一.线路连接 Arduino MPU6050 VCC 3.3V/5V GND GND SCL A5 SDA A4 INT D2 二.库下载 https://pan.baidu.com/s/1nvt75 ...
- 如何使用dump文件进行调试
转载[文尾出处链接] 1 简介第一次遇到程序崩溃的问题,之前为单位开发了一个插件程序,在本机运行没有出现问题,但把生成的可执行文件拷贝到服务器上一运行程序,刚进入插件代码,插件服务就崩溃了,当时被这个 ...
- java中的浅拷贝和深拷贝
复制 将一个对象的引用复制给另一个对象,一共有三种方式.第一种方式是直接赋值,第二种方式是浅复制,第三种方式是深复制. 1.直接赋值 在Java中,A a1 = a2,这实际上复制的是引用,也就是说 ...
- Android使用SDKManager下载SDK速度慢 容易丢包和异常的解决办法
第一步, SDK Manager启动之后,会先解析一些google的xml文件,会在Log里面打印出一些日志信息. 解析完之后,把日志全部拷贝到一个记事本里(这一步是因为日志窗口不支持查找),在里面查 ...
- Sql Server2008中自定义函数调用存储过程解决方案
1.开启sql server 2008远程连接 打开sql server配置管理器 配置SSCM,选中左侧的“SQL Server服务”,确保右侧的“SQL Server”以及“SQL Server ...