java导出excel压缩包_java动态导出excel压缩成zip下载的方法
本文实例为大家分享了java动态导出excel压缩成zip下载的具体代码,供大家参考,具体内容如下
package pack.java.io.demo;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
/**
* zip压缩文件实例
* add by 周海涛
* @author Administrator
*
*/
public class ZipDemo {
/**
* @param args
* @throws IOException
* @throws WriteException
* @throws RowsExceededException
*/
public static void main(String[] args) throws RowsExceededException, WriteException, IOException {
String path = "C:/document/excel";
//创建文件夹;
createFile(path);
//创建Excel文件;
createExcelFile(path);
//生成.zip文件;
craeteZipPath(path);
//删除目录下所有的文件;
File file = new File(path);
//删除文件;
deleteExcelPath(file);
//重新创建文件;
file.mkdirs();
}
/**
* 创建文件夹;
* @param path
* @return
*/
public static String createFile(String path){
File file = new File(path);
//判断文件是否存在;
if(!file.exists()){
//创建文件;
boolean bol = file.mkdirs();
if(bol){
System.out.println(path+" 路径创建成功!");
}else{
System.out.println(path+" 路径创建失败!");
}
}else{
System.out.println(path+" 文件已经存在!");
}
return path;
}
/**
* 在指定目录下创建Excel文件;
* @param path
* @throws IOException
* @throws WriteException
* @throws RowsExceededException
*/
public static void createExcelFile(String path) throws IOException, RowsExceededException, WriteException{
for(int i =0;i<3;i++){
//创建Excel;
WritableWorkbook workbook = Workbook.createWorkbook(new File(path+"/" + new SimpleDateFormat("yyyyMMddHHmmsss").format(new Date() )+"_"+(i+1)+".xls"));
//创建第一个sheet文件;
WritableSheet sheet = workbook.createSheet("导出Excel文件", 0);
//设置默认宽度;
sheet.getSettings().setDefaultColumnWidth(30);
//设置字体;
WritableFont font1 = new WritableFont(WritableFont.ARIAL,14,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,Colour.RED);
WritableCellFormat cellFormat1 = new WritableCellFormat(font1);
//设置背景颜色;
cellFormat1.setBackground(Colour.BLUE_GREY);
//设置边框;
cellFormat1.setBorder(Border.ALL, BorderLineStyle.DASH_DOT);
//设置自动换行;
cellFormat1.setWrap(true);
//设置文字居中对齐方式;
cellFormat1.setAlignment(Alignment.CENTRE);
//设置垂直居中;
cellFormat1.setVerticalAlignment(VerticalAlignment.CENTRE);
//创建单元格
Label label1 = new Label(0, 0, "第一行第一个单元格(测试是否自动换行!)",cellFormat1);
Label label2 = new Label(1, 0, "第一行第二个单元格",cellFormat1);
Label label3 = new Label(2, 0, "第一行第三个单元格",cellFormat1);
Label label4 = new Label(3, 0, "第一行第四个单元格",cellFormat1);
//添加到行中;
sheet.addCell(label1);
sheet.addCell(label2);
sheet.addCell(label3);
sheet.addCell(label4);
//给第二行设置背景、字体颜色、对齐方式等等;
WritableFont font2 = new WritableFont(WritableFont.ARIAL,14,WritableFont.NO_BOLD,false,UnderlineStyle.NO_UNDERLINE,Colour.BLUE2);
WritableCellFormat cellFormat2 = new WritableCellFormat(font2);
cellFormat2.setAlignment(Alignment.CENTRE);
cellFormat2.setBackground(Colour.PINK);
cellFormat2.setBorder(Border.ALL, BorderLineStyle.THIN);
cellFormat2.setWrap(true);
//创建单元格;
Label label11= new Label(0, 1, "第二行第一个单元格(测试是否自动换行!)",cellFormat2);
Label label22 = new Label(1, 1, "第二行第二个单元格",cellFormat2);
Label label33 = new Label(2, 1, "第二行第三个单元格",cellFormat2);
Label label44 = new Label(3, 1, "第二行第四个单元格",cellFormat2);
sheet.addCell(label11);
sheet.addCell(label22);
sheet.addCell(label33);
sheet.addCell(label44);
//写入Excel表格中;
workbook.write();
//关闭流;
workbook.close();
}
}
/**
* 生成.zip文件;
* @param path
* @throws IOException
*/
public static void craeteZipPath(String path) throws IOException{
ZipOutputStream zipOutputStream = null;
File file = new File(path+new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+".zip");
zipOutputStream = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(file)));
File[] files = new File(path).listFiles();
FileInputStream fileInputStream = null;
byte[] buf = new byte[1024];
int len = 0;
if(files!=null && files.length > 0){
for(File excelFile:files){
String fileName = excelFile.getName();
fileInputStream = new FileInputStream(excelFile);
//放入压缩zip包中;
zipOutputStream.putNextEntry(new ZipEntry(path + "/"+fileName));
//读取文件;
while((len=fileInputStream.read(buf)) >0){
zipOutputStream.write(buf, 0, len);
}
//关闭;
zipOutputStream.closeEntry();
if(fileInputStream != null){
fileInputStream.close();
}
}
}
if(zipOutputStream !=null){
zipOutputStream.close();
}
}
/**
* 删除目录下所有的文件;
* @param path
*/
public static boolean deleteExcelPath(File file){
String[] files = null;
if(file != null){
files = file.list();
}
if(file.isDirectory()){
for(int i =0;i
boolean bol = deleteExcelPath(new File(file,files[i]));
if(bol){
System.out.println("删除成功!");
}else{
System.out.println("删除失败!");
}
}
}
return file.delete();
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持聚米学院。
java导出excel压缩包_java动态导出excel压缩成zip下载的方法相关推荐
- Java导出多个excel压缩成zip下载
Java导出多个excel压缩成zip下载 maven <!--hutoos工具类根据需要可以导入不同的模块,我这里是导入全部的模块--><dependency><gro ...
- java批量文件打包成压缩成zip下载和大量数据导出excel时的处理方法
对于我们来说,java导出数据成excel或其他数据文件,或者下载资源是开发中的家常便饭, 但是在导出的时候,如果点击一个按钮导出几百万条数据,如果不作处理的话很可能会出现一系列的问题. 这里介绍打包 ...
- java后台批量下载文件并压缩成zip下载
因项目需要,将服务器上的图片文件压缩打包zip,下载到本地桌面. 首先,前端js: function doQueryPic() {var picsDate = $("#picsDate&qu ...
- excel导出时 如何根据java后台返回的结果 动态实现excel复选框的勾选
现在有一个excel的模板,供导出的时候使用(如下图),我们要根据java后台出从数据库取出的数据动态实现P单元格中复选框的勾选, 如果返回的结果是在职,那么在职复选框就被勾选,以此类推. 问题是我们 ...
- java zip压缩 加密码_java 压缩成zip文件、解压zip文件(可设置密码)
1.情景展示 java实现将文件夹进行压缩打包的功能及在线解压功能 2.解决方案 方式一:压缩.解压zip 准备工作:slf4j-api.jar org.slf4j slf4j-api 1.7.25 ...
- java压缩zip文件夹错误_Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题)...
项目场景: Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题) 问题描述: 最近的项目需要将多级文件夹压缩成zip,网上找了几个工具类,都会报错,所以 ...
- Java把文件压缩成.zip压缩包和解压.zip压缩包(ZipOutputStream、ZipInputStream)
文章目录 压缩成.zip 解压.zip 压缩成.zip 代码如下: /*** 压缩成ZIP** @param srcDir 压缩文件夹路径* @param out 压缩文件输出流* @throws R ...
- java 把文件打包成zip文件_java将文件或是文件夹打包压缩成zip格式
导读热词 下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. import java.io.BufferedInputStream; impo ...
- Java实现将文件或者文件夹压缩成zip
Java实现将文件或者文件夹压缩成zip 最近碰到个需要下载zip压缩包的需求,于是我在网上找了下别人写好的zip工具类.但找了好多篇博客,总是发现有bug.因此就自己来写了个工具类. 这个工具类的功 ...
最新文章
- 《我想进大厂》之mysql夺命连环13问
- ACL 2021 | 腾讯AI Lab、港中文杰出论文:用单语记忆实现高性能NMT
- 送你一份概率图模型笔记
- 使用Wisdom RESTClient如何在Linux和Mac上获取测试报告和API文档?
- ASP.NET MVC WebAPI实现文件批量上传
- 小程序跳转样式布局错乱_小程序 wxss 样式毁三观
- 速卖通现在好做吗?深耕产品供应,优化售后发货才能走的更远
- 【面试招聘】非科班小白上岸的学习路线
- Python数据结构学习笔记——树和图
- Windows—JDK安装与环境变量配置
- 增加 processon 免费文件数
- ffmpeg sws_scale函数详解
- 图像匹配,基于深度学习DenseNet实现以图搜图功能
- OpenGL超级宝典第5版基础渲染
- linux device or,Linux rm -rf 之rm: cannot remove `linux': Device or resource busy
- 深入计算机组成原理(二十六)Superscalar和VLIW:如何让CPU的吞吐率超过1?
- 活动|QuarkChain 高TPS悬赏令:看你能有多快!2.4BTC等你拿!
- 纯前端JS导出Word包含图片
- 猿辅导编程python_猿辅导旗下品牌猿编程,宣布成立少儿编程研究院
- 基于libVLC的视频播放器之二:使用VLC-Qt播放RTSP流
热门文章
- 15Proxy(代理)模式
- CVPR 2021 Oral | 室内动态场景中的相机重定位
- ECCV2020 | Gen-LaneNet:百度Apollo提出两阶段的3D车道线检测算法,已开源
- 基于三维模型的目标识别和分割在杂乱的场景中的应用
- 深入浅出CMake(一):基础篇
- NLP(1) | 词向量one hot编码词向量编码思想
- java fseek_转到C中的二进制文件的某个点(使用fseek),然后从该位置读取(使用fread)...
- Windows/Linux 下功能强大的桌面截图软件
- R-Bioconductor安装
- 操作系统、Linux、CPU的几个疑惑点