最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java動態(tài)導(dǎo)出excel壓縮成zip下載的方法

 更新時間:2018年07月14日 12:39:32   作者:張虹旺  
這篇文章主要為大家詳細(xì)介紹了java動態(tài)導(dǎo)出excel壓縮成zip下載的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java動態(tài)導(dǎo)出excel壓縮成zip下載的具體代碼,供大家參考,具體內(nèi)容如下

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";
 //創(chuàng)建文件夾;
 createFile(path);
 //創(chuàng)建Excel文件;
 createExcelFile(path);
 //生成.zip文件;
 craeteZipPath(path);
 //刪除目錄下所有的文件;
 File file = new File(path);
 //刪除文件;
 deleteExcelPath(file);
 //重新創(chuàng)建文件;
 file.mkdirs();
 }
 
 /**
 * 創(chuàng)建文件夾;
 * @param path
 * @return
 */
 public static String createFile(String path){
 File file = new File(path);
 //判斷文件是否存在;
 if(!file.exists()){
  //創(chuàng)建文件;
  boolean bol = file.mkdirs();
  if(bol){
  System.out.println(path+" 路徑創(chuàng)建成功!");
  }else{
  System.out.println(path+" 路徑創(chuàng)建失敗!");
  }
 }else{
  System.out.println(path+" 文件已經(jīng)存在!");
 }
 return path;
 }
 
 /**
 * 在指定目錄下創(chuàng)建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++){
  //創(chuàng)建Excel;
  WritableWorkbook workbook = Workbook.createWorkbook(new File(path+"/" + new SimpleDateFormat("yyyyMMddHHmmsss").format(new Date() )+"_"+(i+1)+".xls"));
  //創(chuàng)建第一個sheet文件;
  WritableSheet sheet = workbook.createSheet("導(dǎo)出Excel文件", 0);
  //設(shè)置默認(rèn)寬度;
  sheet.getSettings().setDefaultColumnWidth(30);
  
  //設(shè)置字體;
  WritableFont font1 = new WritableFont(WritableFont.ARIAL,14,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,Colour.RED);
 
  WritableCellFormat cellFormat1 = new WritableCellFormat(font1);
  //設(shè)置背景顏色;
  cellFormat1.setBackground(Colour.BLUE_GREY);
  //設(shè)置邊框;
  cellFormat1.setBorder(Border.ALL, BorderLineStyle.DASH_DOT);
  //設(shè)置自動換行;
  cellFormat1.setWrap(true);
  //設(shè)置文字居中對齊方式;
  cellFormat1.setAlignment(Alignment.CENTRE);
  //設(shè)置垂直居中;
  cellFormat1.setVerticalAlignment(VerticalAlignment.CENTRE);
  //創(chuàng)建單元格
  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);
  
  //給第二行設(shè)置背景、字體顏色、對齊方式等等;
  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);
 
  //創(chuàng)建單元格;
  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();
  //關(guān)閉流;
  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);
  }
  //關(guān)閉;
  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<files.length;i++){
  boolean bol = deleteExcelPath(new File(file,files[i]));
  if(bol){
   System.out.println("刪除成功!");
  }else{
   System.out.println("刪除失敗!");
  }
  }
 }
 return file.delete();
 }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java實現(xiàn)一個簡單的線程池代碼示例

    Java實現(xiàn)一個簡單的線程池代碼示例

    線程池是管理線程的一個池子,通過阻塞隊列管理任務(wù),主要參數(shù)包括corePoolSize、maximumPoolSize、keepAliveTime等,這篇文章主要介紹了Java實現(xiàn)一個簡單的線程池的相關(guān)資料,需要的朋友可以參考下
    2024-09-09
  • Nacos設(shè)置為windows自啟動服務(wù)的步驟詳解

    Nacos設(shè)置為windows自啟動服務(wù)的步驟詳解

    這篇文章給大家介紹了Nacos設(shè)置為windows自啟動服務(wù)的操作步驟,文中通過代碼示例和圖文結(jié)合講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-12-12
  • SpringCloud學(xué)習(xí)筆記之OpenFeign進(jìn)行服務(wù)調(diào)用

    SpringCloud學(xué)習(xí)筆記之OpenFeign進(jìn)行服務(wù)調(diào)用

    OpenFeign對feign進(jìn)行進(jìn)一步的封裝,添加了springmvc的一些功能,更加強大,下面這篇文章主要給大家介紹了關(guān)于SpringCloud學(xué)習(xí)筆記之OpenFeign進(jìn)行服務(wù)調(diào)用的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • idea與eclipse項目相互導(dǎo)入的過程(圖文教程)

    idea與eclipse項目相互導(dǎo)入的過程(圖文教程)

    這篇文章主要介紹了idea與eclipse項目相互導(dǎo)入的過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 詳細(xì)了解MVC+proxy

    詳細(xì)了解MVC+proxy

    Java有兩種代理方式,一種是靜態(tài)代理,另一種是動態(tài)代理。對于靜態(tài)代理,其實就是通過依賴注入,對對象進(jìn)行封裝,不讓外部知道實現(xiàn)的細(xì)節(jié)。很多 API 就是通過這種形式來封裝的
    2021-07-07
  • MybatisPlus如何處理Mysql的json類型

    MybatisPlus如何處理Mysql的json類型

    這篇文章主要介紹了MybatisPlus如何處理Mysql的json類型,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 簡單了解springboot中的配置文件相關(guān)知識

    簡單了解springboot中的配置文件相關(guān)知識

    這篇文章主要介紹了簡單了解springboot中的配置文件相關(guān)知識,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • 淺談java安全編碼指南之死鎖dead lock

    淺談java安全編碼指南之死鎖dead lock

    java中為了保證共享數(shù)據(jù)的安全性,我們引入了鎖的機制。有了鎖就有可能產(chǎn)生死鎖。死鎖的原因就是多個線程鎖住了對方所需要的資源,然后現(xiàn)有的資源又沒有釋放,從而導(dǎo)致循環(huán)等待的情況。通常來說如果不同的線程對加鎖和釋放鎖的順序不一致的話,就很有可能產(chǎn)生死鎖。
    2021-06-06
  • Java?Collection?接口和常用方法綜合詳解

    Java?Collection?接口和常用方法綜合詳解

    Collection派生出三個子接口,Set代表不可重復(fù)的無序集合、List代表可重復(fù)的有序集合、Queue是java提供的隊列實現(xiàn),通過它們不斷的擴展出很多的集合類,接下來我們詳細(xì)介紹一下
    2021-11-11
  • 教你用java完美封裝微信模板消息的發(fā)送動態(tài)

    教你用java完美封裝微信模板消息的發(fā)送動態(tài)

    這篇文章主要介紹了教你用java完美封裝微信模板消息的發(fā)送動態(tài),文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04

最新評論

七台河市| 荆门市| 环江| 鹤山市| 永丰县| 吴桥县| 武鸣县| 灵寿县| 沁水县| 江山市| 资兴市| 永丰县| 滕州市| 孝感市| 青川县| 上思县| 绿春县| 杂多县| 新野县| 乐昌市| 怀远县| 东宁县| 昔阳县| 武功县| 上杭县| 龙游县| 甘德县| 河南省| 莎车县| 德兴市| 罗城| 临邑县| 昌黎县| 长垣县| 葵青区| 北海市| 富平县| 迁安市| 宁武县| 高邮市| 金阳县|