亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaWeb導出Excel文件并彈出下載框

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

一、引言

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

二、相關jar包

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

三、關鍵代碼

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

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

      // 設置表頭
      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)建單元格,設置值
        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);
      // 設置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();
      }

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java計算交集,差集,并集的方法示例

    Java計算交集,差集,并集的方法示例

    這篇文章主要介紹了Java計算交集,差集,并集的方法,結合實例形式簡單分析了java集合運算的簡單操作技巧,需要的朋友可以參考下
    2017-10-10
  • JPA merge聯(lián)合唯一索引無效問題解決方案

    JPA merge聯(lián)合唯一索引無效問題解決方案

    這篇文章主要介紹了JPA merge聯(lián)合唯一索引無效問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • Spring的@ComponentScan注解用法介紹

    Spring的@ComponentScan注解用法介紹

    這篇文章主要介紹了Spring的@ComponentScan注解用法介紹,@ComponentScan注解一般和@Configuration注解一起使用,主要的作用就是定義包掃描的規(guī)則,然后根據(jù)定義的規(guī)則找出哪些需類需要自動裝配到spring的bean容器中,然后交由spring進行統(tǒng)一管理,需要的朋友可以參考下
    2023-11-11
  • Java正則表達式API Matcher類方法

    Java正則表達式API Matcher類方法

    這篇文章主要介紹了Java正則表達式API Matcher類方法,對Matcher類的一些有用方法進行功能對它們進行分組展開介紹,需要的朋友可以參考一下
    2022-06-06
  • Base64與File之間的相互轉化方式

    Base64與File之間的相互轉化方式

    這篇文章主要介紹了Base64與File之間的相互轉化方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Kotlin 基礎教程之數(shù)組容器

    Kotlin 基礎教程之數(shù)組容器

    這篇文章主要介紹了Kotlin 基礎教程之數(shù)組容器的相關資料,需要的朋友可以參考下
    2017-06-06
  • SpringBoot中使用Knife4J的解決方案

    SpringBoot中使用Knife4J的解決方案

    knife4j是為Java?MVC框架集成Swagger生成Api文檔的增強解決方案,這篇文章主要介紹了SpringBoot中使用Knife4J,需要的朋友可以參考下
    2022-10-10
  • 使用java反射將結果集封裝成為對象和對象集合操作

    使用java反射將結果集封裝成為對象和對象集合操作

    這篇文章主要介紹了使用java反射將結果集封裝成為對象和對象集合操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • java中forward轉發(fā)的使用

    java中forward轉發(fā)的使用

    在Java中,forward轉發(fā)是一種非常常見且重要的操作,我們將深入探討forward的概念和用法,并給出一些代碼示例來幫助讀者更好地理解,感興趣的可以了解下
    2023-11-11
  • 如何在springboot中引入?yún)?shù)校驗

    如何在springboot中引入?yún)?shù)校驗

    一般我們判斷前端傳過來的參數(shù),需要對某些值進行判斷,是否滿足條件,而springboot相關的參數(shù)校驗注解,可以解決我們這個問題,本文給大家介紹如何在springboot中引入?yún)?shù)校驗,感興趣的朋友一起看看吧
    2023-12-12

最新評論