<u id="1k2el"></u>
<u id="1k2el"></u>

      咨詢(xún)電話(huà):0551-62903161

      學(xué)術(shù)交流

      首頁(yè)>官網(wǎng)首頁(yè) > 教育教學(xué) > 學(xué)術(shù)交流 >
      JSP生成Excel文件并導(dǎo)出過(guò)程
      作者:原創(chuàng)??時(shí)間:2018-12-06 13:37
      1、選中要導(dǎo)出的文件列表



      2、把文件列表對(duì)應(yīng)的記錄id保存到數(shù)組中
      <button class="checkOutxls easyui-linkbutton">導(dǎo)出到Excel</button>
      //導(dǎo)出excel表格
      $(".checkOutxls").click(function(){
          var arr = [];
          var sl = $(".sl");
          $.each(sl, function(index) {
              if(this.checked){
                  arr.push($(this).val());
              }
          });
          if(arr.length==0){
              alert("你還沒(méi)有選擇任何信息!");
          }else{
              location= "jsp/generateExcel.jsp?arr="+arr;
          }
      });

      3、把數(shù)組提交給產(chǎn)生Excel的jsp頁(yè)面,查詢(xún)所有的記錄封裝成對(duì)象存放到集合中
      <%
          //1、獲得id數(shù)組
          String arr = request.getParameter("arr");
          //2、存放用戶(hù)的集合
          List<User> list = new ArrayList<User>();
          //3、創(chuàng)建用戶(hù)業(yè)務(wù)類(lèi)
          UserService userService = new UserServiceImpl();
          //4、分解arr數(shù)組,通過(guò)id獲得對(duì)象
          if (arr != null && !arr.equals("")) {
              String[] ids = arr.split(",");
              for (int i = 0; i < ids.length; i++) {
              //5、存放對(duì)象到集合中
                  list.add(userService.getUserById(Integer.parseInt(ids[i])));
              }
          }
      %>
       
      4、使用POI技術(shù)創(chuàng)建一個(gè)工作簿、工作頁(yè)、及對(duì)應(yīng)對(duì)象字段的列,對(duì)存放對(duì)象的集合進(jìn)行遍歷,
      把所有的對(duì)象屬性值寫(xiě)到excel工作薄中,通過(guò)IO流操作保存工作薄
      // 把list中的user對(duì)象讀出來(lái),寫(xiě)到excel中
           public static int creatUserExcel(List<User> list, String path) {
                // 1、指定目標(biāo)文件
                File target = new File(path);
                OutputStream out = null;
                XSSFWorkbook book = null;
                try {
                    out = new FileOutputStream(target);
                    // 2、創(chuàng)建工作簿
                    book = new XSSFWorkbook();
                    // 3、創(chuàng)建工作簿中的頁(yè),指定頁(yè)的名稱(chēng)
                    XSSFSheet sheet = book.createSheet("userInfo");
                    // 4、創(chuàng)建行
                    int rowNum = 0;
                    XSSFRow row = sheet.createRow(rowNum++);
                    // 5、創(chuàng)第一行的單元格并設(shè)置值
                    int coulumNum = 0;
                    row.createCell(coulumNum++).setCellValue("序號(hào)");
                    row.createCell(coulumNum++).setCellValue("用戶(hù)名");
                    row.createCell(coulumNum++).setCellValue("密碼");
                    row.createCell(coulumNum++).setCellValue("年齡");
                    row.createCell(coulumNum++).setCellValue("生日");
                    row.createCell(coulumNum++).setCellValue("備注");
                    // 6、循環(huán)輸出user對(duì)象
                    for (int i = 0; i < list.size(); i++) {
                         User st = list.get(i);
                         coulumNum = 0;
                         row = sheet.createRow(rowNum++);
                         row.createCell(coulumNum++).setCellValue(st.getId());
                         row.createCell(coulumNum++).setCellValue(st.getUserName());
                         row.createCell(coulumNum++).setCellValue(st.getPassWord());
                         row.createCell(coulumNum++).setCellValue(st.getAge());
                         row.createCell(coulumNum++).setCellValue(DateUtil.convertUtilDateToString(st.getBirthday()));
                         row.createCell(coulumNum++).setCellValue("");
                    }
                    // 7、保存文件
                    book.write(out);
                    System.out.println("創(chuàng)建表成功");
                    return 1;
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    // 8、關(guān)閉流
                    if (book != null) {
                         try {
                              book.close();
                         } catch (Exception e) {
                         }
                    }
                }
                return 0;
           }

      5、指定工作簿在項(xiàng)目中的位置路徑
      <%
      //6、獲得文件夾file的路徑
      String file = application.getRealPath("file");
      String fileName = Commons.getFileName("user.xlsx");
      String filePath = file + "\\" + fileName;
      //7、把對(duì)象放到指定的excel中
      userService.creatUserExcel(list, filePath);
      %>

      <%
      //8、執(zhí)行下載功能
      File origin = new File(filePath);
      InputStream is = null;
      out.clear();
      OutputStream ot = null;
      try {
          is = new FileInputStream(origin);
          // 9、 設(shè)置響應(yīng)頭,控制瀏覽器下載該文件
          response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
          // 10、設(shè)置文件ContentType類(lèi)型,這樣設(shè)置,會(huì)自動(dòng)判斷下載文件類(lèi)型
          response.setContentType("multipart/form-data");
          // 11、 獲得輸出輸出流
          ot = response.getOutputStream();
          byte[] bt = new byte[1024];
          int len;
          while ((len = is.read(bt)) != -1) {
              ot.write(bt, 0, len);
          }
          ot.flush();
      } catch (Exception e) {
          e.printStackTrace();
      }finally {
          try {
              if (ot != null) {
                  ot.close();
              }
              if (is != null) {
                   is.close();
              }
          } catch (Exception e) {
              e.printStackTrace();
          }
      }
      %>

      7、完成導(dǎo)出excel表格



      友情鏈接:北大青鳥(niǎo)科海學(xué)院合肥濱湖職業(yè)技術(shù)學(xué)院合肥公交技校 安徽衛(wèi)生健康職業(yè)學(xué)院
      獲獎(jiǎng)信息:

      地鐵:乘地鐵1號(hào)線(xiàn)到合工大南區(qū)B出口,向南800米即到。

      聯(lián)系我們:招生老師15056993965(微信手機(jī)同號(hào))??????0551-62903161

      地址:合肥市包河區(qū)馬鞍山路富成大廈4樓北大青鳥(niǎo)(合工大東門(mén)斜對(duì)面)

      日韩黄色毛片在线观看_96精品人妻大胆无码_亚洲一区二区在线波多野_在线视频一区二区三期
      <u id="1k2el"></u>
      <u id="1k2el"></u>

          亚洲国产午夜精品大秀视频 | 久久这里只有精品青草 | 日本真人作爱视频免费大全 | 日本欧美亚洲另类 | 亚洲一级aⅴ在线免费播放 香港三级日本三级a视频 | 亚洲最新永久观看在线 |