最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java poi導(dǎo)出Excel下載到客戶端

 更新時間:2018年02月02日 11:36:32   作者:紫薇帝星的故事  
這篇文章主要為大家詳細介紹了Java poi導(dǎo)出Excel下載到客戶端的相關(guān)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

Java poi 導(dǎo)出Excel并下載到客戶端,具體內(nèi)容如下

Maven配置,包含了其他文件格式的依賴,就全貼出來了

<dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-excelant</artifactId>
      <version>3.12</version>
    </dependency>
    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-scratchpad</artifactId>
      <version>3.12</version>
    </dependency>
    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml</artifactId>
      <version>3.8</version>
    </dependency>
    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml-schemas</artifactId>
      <version>3.8</version>
    </dependency>

Service層

@Override
  public void export(Long sblsh, String excelName, OutputStream out) {
    try {
      // 第一步,創(chuàng)建一個webbook,對應(yīng)一個Excel文件 
      HSSFWorkbook wb = new HSSFWorkbook();
      //生成一個表格 
      HSSFSheet sheet = wb.createSheet(excelName); 
      // 第三步,在sheet中添加表頭第0行
      HSSFRow row = sheet.createRow(0);
      
      // 第四步,創(chuàng)建單元格,并設(shè)置值表頭 設(shè)置表頭居中 
      HSSFCellStyle style = wb.createCellStyle(); 
      style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 創(chuàng)建一個居中格式
      HSSFCell cell = row.createCell(0);
      cell.setCellStyle(style);
      
      Byte kjzz = qyjbxxMapper.getKjzz(sblsh);
      List<A> record = this.selectBySblsh(sblsh);
        this.insertData(wb, sheet, row, record, out);
      }
    } catch (Exception e) {
      logger.info(e.getMessage());
    }
  }
  
  /**
   * 導(dǎo)入數(shù)據(jù)到表格中
   * @param wb execl文件
   * @param sheet 表格
   * @param row 表格行
   * @param record 要導(dǎo)出的數(shù)據(jù)
   * @param out 輸出流
   */
  private void insertData(HSSFWorkbook wb,HSSFSheet sheet,HSSFRow row,List<A> record,
      OutputStream out){
    try {
      row = sheet.createRow(1);
      for(int i=0;i<title.length;i++){
        row.createCell(i).setCellValue(title[i]);
      }
      for(int i=0;i<record.size();i++){
        row = sheet.createRow(i+2);
        A data = record.get(i);
        row.createCell(0).setCellValue(data.getHc());
        row.createCell(1).setCellValue(data.getXm());
        BigDecimal je = data.getJe();
        if(je!=null){
          row.createCell(2).setCellValue(je.doubleValue());
        }
      }
      //合并單元格,前面2位代表開頭結(jié)尾行,后面2位代表開頭結(jié)尾列
      CellRangeAddress region = new CellRangeAddress(0,0,0,title.length-1);
      sheet.addMergedRegion(region);
      wb.write(out);
      out.flush();
      out.close();
      wb.close();
    } catch (Exception e) {
      logger.info(e.getMessage());
    }
  }

Controller

@RequestMapping("/export")
  public void export(Long sblsh, HttpServletRequest request, HttpServletResponse response){
    response.setContentType("octets/stream");
    String excelName = "文件名";
    try {
      response.addHeader("Content-Disposition", "attachment;filename="+new String(excelName.getBytes("gb2312"), "ISO8859-1" )+".xls");
      OutputStream out = response.getOutputStream();
      aService.export(sblsh,excelName ,out);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring中的Sentinel規(guī)則持久化解析

    Spring中的Sentinel規(guī)則持久化解析

    這篇文章主要介紹了Spring中的Sentinel規(guī)則持久化解析,具體內(nèi)容包括,Sentinel規(guī)則推送三種模式介紹,原始模式,拉模式,推模式,并對基于Nacos配置中心控制臺實現(xiàn)推送進行詳盡介紹,需要的朋友可以參考下
    2023-09-09
  • Java 互相關(guān)聯(lián)的實體無限遞歸問題的解決

    Java 互相關(guān)聯(lián)的實體無限遞歸問題的解決

    這篇文章主要介紹了Java 互相關(guān)聯(lián)的實體無限遞歸問題的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java加載資源文件時的路徑問題的解決辦法

    Java加載資源文件時的路徑問題的解決辦法

    今天偶然看到一篇關(guān)于tomcat加載servlet的文章,不由得想起了java加載資源文件的路徑問題,資源文件可以使xml,properties,圖片等,可以是任何文件
    2013-04-04
  • 源碼解析springbatch的job運行機制

    源碼解析springbatch的job運行機制

    這篇文章主要介紹了springbatch的job是如何運行的,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • Spring中@Value注解獲取不到配置值問題及解決

    Spring中@Value注解獲取不到配置值問題及解決

    這篇文章主要介紹了Spring中@Value注解獲取不到配置值問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • PowerJob的GridFsManager工作流程源碼解讀

    PowerJob的GridFsManager工作流程源碼解讀

    這篇文章主要為大家介紹了PowerJob的GridFsManager工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • java多線程編程之捕獲子線程異常示例

    java多線程編程之捕獲子線程異常示例

    java多線程程序中所有線程都不允許拋出未捕獲的checked exception,也就是說各個線程需要自己把自己的checked exception處理掉。但是無法避免的是unchecked exception,也就是RuntimeException,當(dāng)拋出異常時子線程會結(jié)束,但不會影響主線程
    2014-02-02
  • Mybatis resultType返回結(jié)果為null的問題排查方式

    Mybatis resultType返回結(jié)果為null的問題排查方式

    這篇文章主要介紹了Mybatis resultType返回結(jié)果為null的問題排查方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 你知道jdk竟有4個random嗎

    你知道jdk竟有4個random嗎

    這篇文章主要給大家介紹了關(guān)于jdk中4個random的相關(guān)資料,分別是Random、ThreadLocalRandom、SecureRandom以及SplittableRandom,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-06-06
  • 深入理解Spring?Boot中的Flyway

    深入理解Spring?Boot中的Flyway

    Flyway將數(shù)據(jù)庫結(jié)構(gòu)的變更定義為一系列遷移腳本,通常是SQL腳本文件,當(dāng)應(yīng)用程序啟動時,F(xiàn)lyway會自動檢測并執(zhí)行未應(yīng)用的遷移腳本,將數(shù)據(jù)庫升級到最新版本,這篇文章主要介紹了深入理解Spring?Boot中的Flyway,需要的朋友可以參考下
    2024-01-01

最新評論

长宁区| 太和县| 英超| 栖霞市| 宜都市| 巴马| 绩溪县| 讷河市| 邹平县| 盐边县| 武冈市| 姜堰市| 岳阳市| 临颍县| 遵义县| 周口市| 许昌县| 中山市| 广东省| 甘南县| 左贡县| 金门县| 林甸县| 姚安县| 兰溪市| 马公市| 凭祥市| 寻甸| 安西县| 麟游县| 彭州市| 抚宁县| 莱芜市| 遂平县| 南郑县| 靖宇县| 平原县| 红原县| 耿马| 富顺县| 伊宁县|