<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      poi 5.2 導出

      如果能給你帶來幫助,不勝榮幸,如果有錯誤也請批評指正。

        1:maven 依賴,現在好多都是用的poi 3.6 和 poi3.9 的jar,項目升級了,現在得用5.x的了,所以就用5.x的給大家簡單的演示,盡可能找依賴相同的,因為不同版本里面的方法什么的會有變化

      <dependency>
          <groupId>org.apache.poi</groupId>
          <artifactId>poi</artifactId>
          <version>5.2.0</version>
      </dependency>
      <dependency>
          <groupId>org.apache.poi</groupId>
          <artifactId>poi-ooxml</artifactId>
          <version>5.2.0</version>
      </dependency>

        2:后臺(網上后臺太多了,全是寫后臺bug的,我就不多說了,我就用最慫的一種給大家展示,僅做展示)

          ①網上隨便扒一個工具類,大家可以看一下里面的注釋,個別地方說了一下廢話

      import org.apache.poi.hssf.usermodel.*;
      
      /**
       * excel導出工具
       *
       * @author Tomas·Red
       * @since
       */
      
      public class ExcelExportUtil {
      
          /**
           * 導出Excel
           * @param sheetName sheet名稱
           * @param title 標題
           * @param values 內容
           * @param wb HSSFWorkbook對象
           * @return
           */
          public static HSSFWorkbook getHSSFWorkbook(String sheetName, String []title, String [][]values, HSSFWorkbook wb){
              // 第一步,創建一個HSSFWorkbook,對應一個Excel文件 
           //
      你創建 HSSFWorkbook 就是代表創建 .xls(2003)最大導出行數為:65536;創建XSSFWorkbook 代表創建.xlsx(2007)最大行數為:1048576 至于用什么自己定義
              if(wb == null){
                  wb = new HSSFWorkbook();
              }
              // 第二步,在workbook中添加一個sheet,對應Excel文件中的sheet
              HSSFSheet sheet = wb.createSheet(sheetName);
              // 第三步,在sheet中添加表頭第0行,注意老版本poi對Excel的行數列數有限制
              HSSFRow row = sheet.createRow(0);
              // 第四步,創建單元格,并設置值表頭 設置表頭居中
              HSSFCellStyle style = wb.createCellStyle();
              //style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 樣式我給隱藏了,因為5.2的poi,不支持這樣寫了,我沒去查,后期查了之后再修改吧
              //聲明列對象
              HSSFCell cell = null;
              //創建標題
              for(int i=0;i<title.length;i++){
                  cell = row.createCell(i);
                  cell.setCellValue(title[i]);
                  cell.setCellStyle(style);
              }
              //創建內容
              for(int i=0;i<values.length;i++){
                  row = sheet.createRow(i + 1);
                  for(int j=0;j<values[i].length;j++){
                      //將內容按順序賦給對應的列對象
                      row.createCell(j).setCellValue(values[i][j]);
                  }
              }
              return wb;
          }
      }

         ②業務層或者控制層代碼

      @RequestMapping("/handExprot")
          public Object handExprot(HttpServletResponse response, WellEquipmentParam wellEquipmentParam){
              // 導出的數據
              List<Well> list = (List<Well>) mainBusiness.findAll();
              //excel標頭
              String[] title = {"title1", "title2", "title3", "title4", "title5", "title6", "title7", "title8"};
      
              //excel文件名
              String fileName = "活動報名信息表" + System.currentTimeMillis() + ".xls";
              //sheet名
              String sheetName = "活動報名信息表";
              int size = list.size();
              String [][] content = new String[size][8];
           // 循環給單元格賦值
      for (int i = 0; i < list.size(); i++) { content[i] = new String[title.length]; Well well = list.get(i); content[i][0] = well.getId() + ""; content[i][1] = well.getWellName() + ""; content[i][2] = well.getWellCode() + ""; content[i][3] = well.getWellType() + ""; content[i][4] = well.getLatitude() + ""; content[i][5] = well.getLongitude() + ""; content[i][6] = well.getWellDepth() + ""; content[i][7] = well.getWellAddress() + ""; } //創建HSSFWorkbook HSSFWorkbook wb = ExcelExportUtil.getHSSFWorkbook(sheetName, title, content, null); //響應到客戶端 try { this.setResponseHeader(response, fileName); OutputStream os = response.getOutputStream(); wb.write(os); os.flush(); os.close(); } catch (Exception e) { e.printStackTrace(); } return null; }
      //發送響應流方法
          public void setResponseHeader(HttpServletResponse response, String fileName) {
              try {
                  try {
                      fileName = new String(fileName.getBytes(),"ISO8859-1");
                  } catch (UnsupportedEncodingException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
                  response.setContentType("application/octet-stream;charset=ISO8859-1");
                  response.setHeader("Content-Disposition", "attachment;filename="+ fileName);
                  response.addHeader("Pargam", "no-cache");
                  response.addHeader("Cache-Control", "no-cache");
              } catch (Exception ex) {
                  ex.printStackTrace();
              }
          }

        到這里后臺的方法已經全部寫完了。剩下的就是前臺了,網上搜的很多都是沒有前臺的,沒有前臺你寫個der啊,老衲就是前臺不會,后來自己東拼西湊了一個前臺,大家湊合著看吧

       

      export function handExprot(data) {
          let consturl=process.env.SERVER_API + "/WellController/handExprot" + "?" + qs.stringify(data, { indices: false });
          var xhr = new XMLHttpRequest();
          console.log({consturl})
          xhr.open("get", consturl, true); // get、post都可
          xhr.responseType = "blob";  // 轉換流
          xhr.setRequestHeader("token",window.localStorage.getItem("token")); //加請求頭
          xhr.onload = function() {
              // debugger
              if (this.status == 200) {
                  var blob = this.response;
                  var a = document.createElement("a")
                  var url = window.URL.createObjectURL(blob)
                  a.href = url
                  a.download = "導出文件.xls"  //
              }
              a.click()
              window.URL.revokeObjectURL(url)
          }
          xhr.send();
      }

      到這里就完了,后臺有很多大家可以取隨便抄,但是前臺不能單純的ajax去請求。要注意屬性

        

      posted @ 2022-08-03 11:31  也許已沒有也許  閱讀(796)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精成人品日日拍夜夜| 日韩高清亚洲日韩精品一区二区| 自偷自拍亚洲综合精品| 亚洲天堂成人黄色在线播放| 亚洲一区二区三级av| 久久人妻精品国产| 亚洲av中文一区二区| 丝袜国产一区av在线观看| 亚洲AV日韩精品久久久久| 日韩精品福利一二三专区| 亚洲国产精品人人做人人爱| 18禁无遮挡啪啪无码网站破解版| 国产粉嫩系列一区二区三| 最近中文国语字幕在线播放| 一级国产在线观看高清| 久久精产国品一二三产品| 少妇人妻系列无码专区视频| 久久九九日本韩国精品| 国产一区二区日韩经典| 日本一二三区视频在线| 国内熟妇与亚洲洲熟妇妇| 菠萝菠萝蜜午夜视频在线播放观看| 东平县| 亚洲无?码A片在线观看| 国产做无码视频在线观看| 亚洲人成网站77777在线观看 | 丰满爆乳一区二区三区| 午夜福利伦伦电影理论片在线观看| 国语对白刺激在线视频国产网红| 国内极度色诱视频网站| 波多野结衣美乳人妻hd电影欧美 | 国产精品无码午夜福利| 国产一区二区日韩经典| 欧美激烈精交gif动态图| 国产首页一区二区不卡| 津市市| 国产一区二区三区不卡视频| 国产稚嫩高中生呻吟激情在线视频| 合川市| 亚洲成色在线综合网站| 69精品丰满人妻无码视频a片|