程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JavaWeb導出Excel文件並彈出下載框

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

編輯:關於JAVA

JavaWeb導出Excel文件並彈出下載框。本站提示廣大學習愛好者:(JavaWeb導出Excel文件並彈出下載框)文章只能為提供參考,不一定能成為您想要的結果。以下是JavaWeb導出Excel文件並彈出下載框正文


1、引言

在Java Web開辟中常常觸及到報表,比來做的項目中須要完成將數據庫中的數據顯示為表格,而且完成導出為Excel文件的功效。

2、相干jar包

應用POI可以很好的處理Excel的導入和導出的成績,POI下載地址:
poi-3.6-20091214.jar

3、症結代碼

起首導入上述jar包。
在生成excel時普通數據源情勢為一個List,上面把生成Excel格局的代碼貼出來:

/**
       * 以下為生成Excel操作
       */
      // 1.創立一個workbook,對應一個Excel文件
      HSSFWorkbook wb = new HSSFWorkbook();
      // 2.在workbook中添加一個sheet,對應Excel中的一個sheet
      HSSFSheet sheet = wb.createSheet("XXX表");
      // 3.在sheet中添加表頭第0行,老版本poi對excel行數列數無限制short
      HSSFRow row = sheet.createRow((int) 0);
      // 4.創立單位格,設置值表頭,設置表頭居中
      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格局後要將數據寫入excel:

// 輪回將數據寫入Excel
      for (int i = 0; i < lists.size(); i++) {
        row = sheet.createRow((int) i + 1);
        List list= lists.get(i);
        // 創立單位格,設置值
        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參數,可以翻開下載頁面
      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上傳解析顯示在網頁中,這個另外一篇文章總結,敬請等待!

以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved