中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java實現批量導出word壓縮后的zip文件

發布時間:2020-10-29 16:33:44 來源:億速云 閱讀:328 作者:Leah 欄目:開發技術

本篇文章為大家展示了Java實現批量導出word壓縮后的zip文件,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

一、js代碼,由于參數比較大所以利用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: ['次數','具體條目'] //按鈕
      }, 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: ['次數','具體條目'] //按鈕
      }, function(index){
        window.location.href= "jee/AssessGradeSumC/exportWord&#63;id="+selectedRows[0].id;
        layer.close(index);
      }, function(index){
        window.location.href= "jee/AssessGradeSumC/exportWordForSpecific&#63;id="+selectedRows[0].id;
      });
    }
  }
 
  function postExportFile(params, url) { //params是post請求需要的參數,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;
 }

三、實現類代碼,其中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文件,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阜南县| 冀州市| 五大连池市| 宁阳县| 民县| 大石桥市| 芜湖市| 阳朔县| 铁岭县| 贵阳市| 清河县| 和平县| 峨边| 横山县| 二连浩特市| 平南县| 通道| 扶余县| 铜川市| 西城区| 资溪县| 江陵县| 镇平县| 雷波县| 道孚县| 浪卡子县| 永寿县| 崇信县| 邢台市| 历史| 门源| 临洮县| 腾冲县| 监利县| 洪洞县| 繁峙县| 晋宁县| 临澧县| 云和县| 堆龙德庆县| 宁阳县|