欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java批量導出word壓縮后的zip文件案例

 更新時間:2020年10月01日 11:11:22   作者:Z丶royAl  
這篇文章主要介紹了Java批量導出word壓縮后的zip文件案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

一、js代碼,由于參數(shù)比較大所以利用form表單使用post導出

 function export_word(){
  var selectedRows = $("#dg").datagrid("getSelections");
  if (selectedRows.length==0) {
   showAlertWarning("請選擇一條的信息...");
   return;
  }
  if (selectedRows.length > 1) {//批量導出壓縮文件
   var id = "";
   for (var i = 0; i < selectedRows.length; i++) {
    var row = selectedRows[i];
    id += row.id+"name"+row.user_name+"@@";
   }
   layer.confirm('請選擇要導出考核表的類型?', {
    btn: ['次數(shù)','具體條目'] //按鈕
   }, function(index){
    postExportFile({"id":id,"type":0},"jee/AssessGradeSumC/exportWordsZip");
    layer.close(index);
   }, function(index){
    postExportFile({"id":id,"type":1},"jee/AssessGradeSumC/exportWordsZip");
   });
  } else {//導出單個
   layer.confirm('請選擇要導出考核表的類型?', {
    btn: ['次數(shù)','具體條目'] //按鈕
   }, function(index){
    window.location.href= "jee/AssessGradeSumC/exportWord?id="+selectedRows[0].id;
    layer.close(index);
   }, function(index){
    window.location.href= "jee/AssessGradeSumC/exportWordForSpecific?id="+selectedRows[0].id;
   });
  }
 }
 
 function postExportFile(params, url) { //params是post請求需要的參數(shù),url是請求url地址
  var form = document.createElement("form");
  form.style.display = 'none';
  form.action = url;
  form.method = "post";
  document.body.appendChild(form);
 
  for(var key in params){
   var input = document.createElement("input");
   input.type = "hidden";
   input.name = key;
   input.value = params[key];
   form.appendChild(input);
  }
 
  form.submit();
  form.remove();
 }

二、controller代碼(讀完壓縮文件后刪除文件)

 /**
 *
 * @Description 考核成績匯總考核表批量導出壓縮
 * @Fcunction exportWordsZip
 * @param response
 * @return ReturnDatas
 *
 */
 @ResponseBody
 @SystemControllerLog(description = "考核成績匯總考核表批量導出壓縮")
 @RequestMapping(value = "exportWordsZip")
 public ReturnDatas exportWordsZip(HttpServletResponse response, String id, String type) {
 ReturnDatas returnDatas = ReturnDatas.getSuccessReturnDatas();
 try {
 response.setCharacterEncoding("UTF-8");
 response.setContentType("application/msexcle");
 response.setHeader("content-disposition", "attachment;filename=" + new String("考核成績匯總表".getBytes("gb2312"), "ISO8859-1") + ".zip");
 String fileUrl = assessGradeSumService.exportWordsZip(id,type);
 OutputStream outputStream = response.getOutputStream();
 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(fileUrl));;
 BufferedOutputStream bos = new BufferedOutputStream(outputStream);
 byte[] buff = new byte[2048];
 int bytesRead;
 while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
 bos.write(buff, 0, bytesRead);
 }
 bis.close();
 bos.close();
 outputStream.close();
 File zip = new File(fileUrl);
 if (zip.exists() && zip.isFile()) {
 zip.delete();
 }
 return returnDatas;
 } catch (Exception e) {
 e.printStackTrace();
 LogUtil.error("考核成績匯總考核表批量導出壓縮異常:" + e.getMessage(), e);
 returnDatas.setStatus(ReturnDatas.ERROR);
 returnDatas.setMessage("考核成績匯總考核表批量導出壓縮異常。");
 }
 return returnDatas;
 }

三、實現(xiàn)類代碼,其中exportWord()和exportWordForSpecific()都是具體的word導出方法,生成zip壓縮文件后刪除word文件,ZipUtils是壓縮文件工具類

/**
 *
 * @Fcunction exportWordsZip
 * @param id
 * @param type
 * @return String
 *
 */
 @Override
 public String exportWordsZip(String id, String type)throws Exception{
 String[] ids = id.split("@@");
 List<File> fileList = new ArrayList<>();
 String url = "C:\\";
 for (int i = 0; i < ids.length; i++) {
 String id_name = ids[i];
 String id_value = id_name.split("name")[0];
 String name = id_name.split("name")[1];
 String docUrl = url + name + ".doc";
 fileList.add(new File(docUrl));
 XWPFDocument workbook = null;
 if ("0".equals(type)) {//按次
 workbook = exportWord(id_value);
 } else {//表單條目
 workbook = exportWordForSpecific(id_value);
 }
 FileOutputStream out = new FileOutputStream(docUrl);
 workbook.write(out);
 }
 String zipUrl = url+"考核成績匯總表.zip";
 FileOutputStream fos = new FileOutputStream(new File(zipUrl));
 ZipUtils.toZip(fileList, fos);
 for (File out:fileList) {
 if (out.exists() && out.isFile()) {
 out.delete();
 }
 }
 return zipUrl;
 }

以上這篇Java批量導出word壓縮后的zip文件案例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • MyBatis自定義類型轉(zhuǎn)換器實現(xiàn)加解密

    MyBatis自定義類型轉(zhuǎn)換器實現(xiàn)加解密

    這篇文章主要介紹了MyBatis自定義類型轉(zhuǎn)換器實現(xiàn)加解密的相關資料,需要的朋友可以參考下
    2016-07-07
  • Java實戰(zhàn)之小蜜蜂擴音器網(wǎng)上商城系統(tǒng)的實現(xiàn)

    Java實戰(zhàn)之小蜜蜂擴音器網(wǎng)上商城系統(tǒng)的實現(xiàn)

    這篇文章主要介紹了如何利用Java實現(xiàn)簡單的小蜜蜂擴音器網(wǎng)上商城系統(tǒng),文中采用到的技術(shù)有JSP、Servlet?、JDBC、Ajax等,感興趣的可以動手試一試
    2022-03-03
  • @CacheEvict 清除多個key的實現(xiàn)方式

    @CacheEvict 清除多個key的實現(xiàn)方式

    這篇文章主要介紹了@CacheEvict 清除多個key的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • SpringMVC全局異常處理小結(jié)

    SpringMVC全局異常處理小結(jié)

    在開發(fā)中,不管是dao層、service層還是controller層,都有可能拋出異常,在springmvc中,能將所有類型的異常處理從各處理過程解耦出來,既保證了相關處理過程的功能較單一,也實現(xiàn)了異常信息的統(tǒng)一處理和維護,本文介紹SpringMVC全局異常處理,感興趣的朋友一起看看吧
    2024-03-03
  • 基于javaMybatis存進時間戳的問題

    基于javaMybatis存進時間戳的問題

    這篇文章主要介紹了javaMybatis存進時間戳的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 跟我學Java Swing之游戲設計(1)

    跟我學Java Swing之游戲設計(1)

    跟我學Java Swing之游戲設計(1)...
    2006-12-12
  • idea同步y(tǒng)api插件的詳細步驟

    idea同步y(tǒng)api插件的詳細步驟

    yapi是一個很好的接口文檔維護工具,其swagger功能,可將接口信息同步到y(tǒng)api平臺上,這篇文章主要介紹了idea同步y(tǒng)api插件,需要的朋友可以參考下
    2024-04-04
  • Java中try-catch的使用及注意細節(jié)

    Java中try-catch的使用及注意細節(jié)

    現(xiàn)在有很多的語言都支持try-catch,比如常見的就是c++,java等,這篇文章主要給大家介紹了關于Java中try-catch的使用及注意細節(jié)的相關資料,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • Java excel數(shù)據(jù)導入mysql的實現(xiàn)示例詳解

    Java excel數(shù)據(jù)導入mysql的實現(xiàn)示例詳解

    今天教大家如何使用Java將excel數(shù)據(jù)導入MySQL,文中有非常詳細的代碼示例,對正在學習java的小伙伴呢很有幫助,需要的朋友可以參考下
    2022-08-08
  • SpringMVC @RequestMapping注解應用方法示例講解

    SpringMVC @RequestMapping注解應用方法示例講解

    通過@RequestMapping注解可以定義不同的處理器映射規(guī)則,下面這篇文章主要給大家介紹了關于SpringMVC中@RequestMapping注解用法的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09

最新評論