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

      咨詢電話:0551-62903161

      學術交流

      首頁>官網首頁 > 教育教學 > 學術交流 >
      JSP生成Excel文件并導出過程
      作者:原創  時間:2018-12-06 13:37
      1、選中要導出的文件列表



      2、把文件列表對應的記錄id保存到數組中
      <button class="checkOutxls easyui-linkbutton">導出到Excel</button>
      //導出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("你還沒有選擇任何信息!");
          }else{
              location= "jsp/generateExcel.jsp?arr="+arr;
          }
      });

      3、把數組提交給產生Excel的jsp頁面,查詢所有的記錄封裝成對象存放到集合中
      <%
          //1、獲得id數組
          String arr = request.getParameter("arr");
          //2、存放用戶的集合
          List<User> list = new ArrayList<User>();
          //3、創建用戶業務類
          UserService userService = new UserServiceImpl();
          //4、分解arr數組,通過id獲得對象
          if (arr != null && !arr.equals("")) {
              String[] ids = arr.split(",");
              for (int i = 0; i < ids.length; i++) {
              //5、存放對象到集合中
                  list.add(userService.getUserById(Integer.parseInt(ids[i])));
              }
          }
      %>
       
      4、使用POI技術創建一個工作簿、工作頁、及對應對象字段的列,對存放對象的集合進行遍歷,
      把所有的對象屬性值寫到excel工作薄中,通過IO流操作保存工作薄
      // 把list中的user對象讀出來,寫到excel中
           public static int creatUserExcel(List<User> list, String path) {
                // 1、指定目標文件
                File target = new File(path);
                OutputStream out = null;
                XSSFWorkbook book = null;
                try {
                    out = new FileOutputStream(target);
                    // 2、創建工作簿
                    book = new XSSFWorkbook();
                    // 3、創建工作簿中的頁,指定頁的名稱
                    XSSFSheet sheet = book.createSheet("userInfo");
                    // 4、創建行
                    int rowNum = 0;
                    XSSFRow row = sheet.createRow(rowNum++);
                    // 5、創第一行的單元格并設置值
                    int coulumNum = 0;
                    row.createCell(coulumNum++).setCellValue("序號");
                    row.createCell(coulumNum++).setCellValue("用戶名");
                    row.createCell(coulumNum++).setCellValue("密碼");
                    row.createCell(coulumNum++).setCellValue("年齡");
                    row.createCell(coulumNum++).setCellValue("生日");
                    row.createCell(coulumNum++).setCellValue("備注");
                    // 6、循環輸出user對象
                    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("創建表成功");
                    return 1;
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    // 8、關閉流
                    if (book != null) {
                         try {
                              book.close();
                         } catch (Exception e) {
                         }
                    }
                }
                return 0;
           }

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

      <%
      //8、執行下載功能
      File origin = new File(filePath);
      InputStream is = null;
      out.clear();
      OutputStream ot = null;
      try {
          is = new FileInputStream(origin);
          // 9、 設置響應頭,控制瀏覽器下載該文件
          response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
          // 10、設置文件ContentType類型,這樣設置,會自動判斷下載文件類型
          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、完成導出excel表格



      友情鏈接:北大青鳥科海學院合肥濱湖職業技術學院合肥公交技校 安徽衛生健康職業學院
      獲獎信息:

      地鐵:乘地鐵1號線到合工大南區B出口,向南800米即到。

      聯系我們:招生老師15056993965(微信手機同號) ? ? ?0551-62903161

      地址:合肥市包河區馬鞍山路富成大廈4樓北大青鳥(合工大東門斜對面)

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

          亚洲熟女中文字幕 | 亚洲精品熟女国产国产老熟女 | 宅男欧美一区在线观看 | 自拍微拍福利精品在线资源 | 亚洲日韩欧美国产精品区 | 欧美亚洲中文高清一 |