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

JavaWeb導(dǎo)出Excel文件并彈出下載框

 更新時(shí)間:2016年06月29日 10:24:18   作者:u010844111  
這篇文章主要為大家詳細(xì)介紹了JavaWeb導(dǎo)出Excel文件并彈出下載框的相關(guān)資料,感興趣的小伙伴們可以參考一下

一、引言

在Java Web開發(fā)中經(jīng)常涉及到報(bào)表,最近做的項(xiàng)目中需要實(shí)現(xiàn)將數(shù)據(jù)庫中的數(shù)據(jù)顯示為表格,并且實(shí)現(xiàn)導(dǎo)出為Excel文件的功能。

二、相關(guān)jar包

使用POI可以很好的解決Excel的導(dǎo)入和導(dǎo)出的問題,POI下載地址:
poi-3.6-20091214.jar

三、關(guān)鍵代碼

首先導(dǎo)入上述jar包。
在生成excel時(shí)一般數(shù)據(jù)源形式為一個(gè)List,下面把生成Excel格式的代碼貼出來:

/**
       * 以下為生成Excel操作
       */
      // 1.創(chuàng)建一個(gè)workbook,對應(yīng)一個(gè)Excel文件
      HSSFWorkbook wb = new HSSFWorkbook();
      // 2.在workbook中添加一個(gè)sheet,對應(yīng)Excel中的一個(gè)sheet
      HSSFSheet sheet = wb.createSheet("XXX表");
      // 3.在sheet中添加表頭第0行,老版本poi對excel行數(shù)列數(shù)有限制short
      HSSFRow row = sheet.createRow((int) 0);
      // 4.創(chuàng)建單元格,設(shè)置值表頭,設(shè)置表頭居中
      HSSFCellStyle style = wb.createCellStyle();
      // 居中格式
      style.setAlignment(HSSFCellStyle.ALIGN_CENTER);

      // 設(shè)置表頭
      HSSFCell cell = row.createCell(0);
      cell.setCellValue("表頭1");
      cell.setCellStyle(style);

      cell = row.createCell(1);
      cell.setCellValue("表頭2");
      cell.setCellStyle(style);

      cell = row.createCell(2);
      cell.setCellValue("表頭3");
      cell.setCellStyle(style);

      cell = row.createCell(3);
      cell.setCellValue("表頭4");
      cell.setCellStyle(style);

      cell = row.createCell(4);
      cell.setCellValue("表頭5");
      cell.setCellStyle(style);

生成excel格式后要將數(shù)據(jù)寫入excel:

// 循環(huán)將數(shù)據(jù)寫入Excel
      for (int i = 0; i < lists.size(); i++) {
        row = sheet.createRow((int) i + 1);
        List list= lists.get(i);
        // 創(chuàng)建單元格,設(shè)置值
        row.createCell(0).setCellValue(list.getXXX());
        row.createCell(1).setCellValue(list.getXXX());
        row.createCell(2).setCellValue(list.getXXX());
        row.createCell(3).setCellValue(list.getXXX());
        row.createCell(4).setCellValue(list.getXXX());
      }

之后將生成的Excel以流輸出。
*不彈出下載框

FileOutputStream out =new FileOutputStream("E:/XXX.xls");
wb.write(out); 
out.close();

*彈出下載框

String fileName = "XXX表";
      ByteArrayOutputStream os = new ByteArrayOutputStream();
      wb.write(os);
      byte[] content = os.toByteArray();
      InputStream is = new ByteArrayInputStream(content);
      // 設(shè)置response參數(shù),可以打開下載頁面
      res.reset();
      res.setContentType("application/vnd.ms-excel;charset=utf-8");
      res.setHeader("Content-Disposition", "attachment;filename="
          + new String((fileName + ".xls").getBytes(), "iso-8859-1"));
      ServletOutputStream out = res.getOutputStream();
      BufferedInputStream bis = null;
      BufferedOutputStream bos = null;

      try {
        bis = new BufferedInputStream(is);
        bos = new BufferedOutputStream(out);
        byte[] buff = new byte[2048];
        int bytesRead;
        // Simple read/write loop.
        while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
          bos.write(buff, 0, bytesRead);
        }
      } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
      } finally {
        if (bis != null)
          bis.close();
        if (bos != null)
          bos.close();
      }

完成以上操作之后即可跳轉(zhuǎn)到其他頁面。
同時(shí)POI還可以將Excel上傳解析顯示在網(wǎng)頁中,這個(gè)另一篇文章總結(jié),敬請期待!

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

相關(guān)文章

  • springBoot不同module之間互相依賴的實(shí)現(xiàn)

    springBoot不同module之間互相依賴的實(shí)現(xiàn)

    本文主要介紹了springBoot不同module之間互相依賴的實(shí)現(xiàn),不同模塊之間的依賴通常是通過Maven或Gradle來管理的,下面就來介紹一下如何實(shí)現(xiàn),感興趣的可以了解一下
    2024-08-08
  • idea激活A(yù)ctivateJrebel熱部署的方法詳解

    idea激活A(yù)ctivateJrebel熱部署的方法詳解

    這篇文章主要介紹了idea激活A(yù)ctivateJrebel熱部署的方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 在idea中創(chuàng)建SpringBoot項(xiàng)目

    在idea中創(chuàng)建SpringBoot項(xiàng)目

    這篇文章主要介紹了在idea中創(chuàng)建SpringBoot項(xiàng)目,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • 帶你入門Java的泛型

    帶你入門Java的泛型

    這篇文章主要給大家介紹了關(guān)于Java中泛型使用的簡單方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • 詳解SpringCloud Finchley Gateway 統(tǒng)一異常處理

    詳解SpringCloud Finchley Gateway 統(tǒng)一異常處理

    這篇文章主要介紹了詳解SpringCloud Finchley Gateway 統(tǒng)一異常處理,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-10-10
  • springboot?serviceImpl初始化注入對象實(shí)現(xiàn)方式

    springboot?serviceImpl初始化注入對象實(shí)現(xiàn)方式

    這篇文章主要介紹了springboot?serviceImpl初始化注入對象實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Java異常架構(gòu)和異常關(guān)鍵字圖文詳解

    Java異常架構(gòu)和異常關(guān)鍵字圖文詳解

    Java異常是Java提供的一種識(shí)別及響應(yīng)錯(cuò)誤的一致性機(jī)制,下面這篇文章主要給大家介紹了關(guān)于Java異常架構(gòu)和異常關(guān)鍵字的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • 詳解Java使用雙異步后如何保證數(shù)據(jù)一致性

    詳解Java使用雙異步后如何保證數(shù)據(jù)一致性

    這篇文章主要為大家詳細(xì)介紹了Java使用雙異步后如何保證數(shù)據(jù)一致性,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以了解下
    2024-01-01
  • Springboot RabbitMQ 消息隊(duì)列使用示例詳解

    Springboot RabbitMQ 消息隊(duì)列使用示例詳解

    本文通過示例代碼介紹了Springboot RabbitMQ 消息隊(duì)列使用,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • 如何在 Java 中利用 redis 實(shí)現(xiàn) LBS 服務(wù)

    如何在 Java 中利用 redis 實(shí)現(xiàn) LBS 服務(wù)

    基于位置的服務(wù),是指通過電信移動(dòng)運(yùn)營商的無線電通訊網(wǎng)絡(luò)或外部定位方式,獲取移動(dòng)終端用戶的位置信息,在GIS平臺(tái)的支持下,為用戶提供相應(yīng)服務(wù)的一種增值業(yè)務(wù)。下面我們來一起學(xué)習(xí)一下吧
    2019-06-06

最新評論

绥芬河市| 古丈县| 嵊州市| 西青区| 开封市| 青冈县| 精河县| 呼玛县| 晴隆县| 东阳市| 门源| 广饶县| 斗六市| 大城县| 高台县| 涟水县| 望奎县| 西安市| 夏津县| 武宁县| 武夷山市| 衡山县| 河曲县| 霍林郭勒市| 房产| 龙泉市| 南和县| 仁化县| 逊克县| 库尔勒市| 中宁县| 沁阳市| 广东省| 天等县| 新巴尔虎左旗| 安图县| 吐鲁番市| 普定县| 怀柔区| 东阿县| 敦化市|