將jsp頁面內容保存到excel(轉)


在此,強調一下搜索時關鍵詞的重要性,這樣一下子可以定位到文章,否則處於盲人摸象,毫無目的尷尬境地。本篇就是通過export jsp to excel找到的。微笑

原文地址:How to Export Web Page to Excel (in JSP)?

本篇教程我們會看到如何把JSP頁面導出到Excel中,會在已有的JSP頁面中增加導出excel的功能。

 

許多時候對於用戶來說,可以在excel中看到頁面內容是很方便的。公共的方案會被導出成包含一些報告、數字等信息的表格。通過導出數據導出到excel中,最終用戶也可以使用excel來做各種的分析,這一點對於你的java基本程序來實現,是有困難的。

 

假設這就是你的jsp頁面:

 

這是對應的jsp源碼(導出excel功能還沒有加)。一個包含簡單數據表格的jsp頁面。

 

 

[java]  view plain  copy
 
 print?在CODE上查看代碼片派生到我的代碼片
  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
  2.     pageEncoding="ISO-8859-1"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
  7. <title>Export to Excel - Demo</title>  
  8. </head>  
  9. <body>  
  10.     <table align="center" border="2">  
  11.         <thead>  
  12.             <tr bgcolor="lightgreen">  
  13.                 <th>Sr. No.</th>  
  14.                 <th>Text Data</th>  
  15.                 <th>Number Data</th>  
  16.             </tr>  
  17.         </thead>  
  18.         <tbody>  
  19.             <%  
  20.                 for (int i = 0; i < 10; i++) {  
  21.             %>  
  22.             <tr bgcolor="lightblue">  
  23.                 <td align="center"><%=i%></td>  
  24.                 <td align="center">This is text data <%=i%></td>  
  25.                 <td align="center"><%=i * i%></td>  
  26.             </tr>  
  27.             <%  
  28.                 }  
  29.             %>  
  30.         </tbody>  
  31.     </table>  
  32. </body>  
  33. </html>  


我們會添加一個“導出到excel”的超鏈接,它會把頁面內容導出到excel文件中。那么這個頁面會變成這個樣子:

 

 

 

下面是新版本的jsp源碼。這個版本增加了“導出到excel”超鏈接,而且增加了相應的功能:

 

 

[java]  view plain  copy
 
 print?在CODE上查看代碼片派生到我的代碼片
  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
  2.     pageEncoding="ISO-8859-1"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
  7. <title>Export to Excel - Demo</title>  
  8. </head>  
  9. <body>  
  10.     <%  
  11.         String exportToExcel = request.getParameter("exportToExcel");  
  12.         if (exportToExcel != null  
  13.                 && exportToExcel.toString().equalsIgnoreCase("YES")) {  
  14.             response.setContentType("application/vnd.ms-excel");  
  15.             response.setHeader("Content-Disposition", "inline; filename="  
  16.                     + "excel.xls");  
  17.    
  18.         }  
  19.     %>  
  20.     <table align="left" border="2">  
  21.         <thead>  
  22.             <tr bgcolor="lightgreen">  
  23.                 <th>Sr. No.</th>  
  24.                 <th>Text Data</th>  
  25.                 <th>Number Data</th>  
  26.             </tr>  
  27.         </thead>  
  28.         <tbody>  
  29.             <%  
  30.                 for (int i = 0; i < 10; i++) {  
  31.             %>  
  32.             <tr bgcolor="lightblue">  
  33.                 <td align="center"><%=i + 1%></td>  
  34.                 <td align="center">This is text data <%=i%></td>  
  35.                 <td align="center"><%=i * i%></td>  
  36.             </tr>  
  37.             <%  
  38.                 }  
  39.             %>  
  40.         </tbody>  
  41.     </table>  
  42.     <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>  
  43.               
  44.     <%  
  45.         if (exportToExcel == null) {  
  46.     %>  
  47.     <a href="excel.jsp?exportToExcel=YES">Export to Excel</a>  
  48.     <%  
  49.         }  
  50.     %>  
  51. </body>  
  52. </html>  

 

 

導出網頁到excel代碼解釋:

1) 在這個版本的jsp頁面中,當你點擊“導出到excel”超鏈接的時候,請求會發送到相同的頁面(excel.jsp),但是伴隨url參數是 exportToExcel=YES.
 
[java]  view plain  copy
 
 print?在CODE上查看代碼片派生到我的代碼片
  1. <a href="excel.jsp?exportToExcel=YES">Export to Excel</a>   
 
2) JSP頁面一開始會檢查參數的正確性。如果這個參數值是YES的話,我們就會看到響應報文中的內容類型,它標識了excel的文件名,並且會在用戶的電腦上打開。
 
[java]  view plain  copy
 
 print?在CODE上查看代碼片派生到我的代碼片
  1. String exportToExcel = request.getParameter("exportToExcel");  
  2. if (exportToExcel != null  
  3.         && exportToExcel.toString().equalsIgnoreCase("YES")) {  
  4.     response.setContentType("application/vnd.ms-excel");  
  5.     response.setHeader("Content-Disposition", "inline; filename="  
  6.             + "excel.xls");  
  7.    
  8. }  

3) 當你點擊“導出到excel”超鏈接的時候,所有頁面的內容會被導出excel中。但是,我們可能不想讓“導出到excel”的超鏈接出現在excel中。為了阻止它的出現,我們增加了一個判斷條件,判斷exportToExcel參數是否出現。如果出現,就意味着內容會被導出到excel中,而且不包括超鏈接。反之,就意味着我們只是想瀏覽器顯示網頁,那么超鏈接會出現在頁面上。
 
[java]  view plain  copy
 
 print?在CODE上查看代碼片派生到我的代碼片
  1. <%  
  2.     if (exportToExcel == null) {  
  3. %>  
  4. <a href="excel.jsp?exportToExcel=YES">Export to Excel</a>  
  5. <%  
  6.     }  
  7. %>  

導出頁面到excel的顯示

但你點擊超鏈接,會彈出一個對話框,問你是否打開或保存文件。點擊打開,你會看到下面的內容:
 
 
正如你所看得,導出的文件也會保存你在頁面上的格式設置。
 
在下一篇教程中,我們會看到如何導出頁面到word文件中
 
你可以下載本次教程中代碼解釋部分的eclipse工程文件。
 
 
=============================================

 

 

注意:

如果沒有設置:response.setHeader("Content-Disposition", "attachment; filename=" + filename+".xls");
則默認為當前頁面.xls。
比如testexcel.jsp--->則生成testexcel.xls表格


擴展閱讀:

[1]在JSP中通過http協議生成excel和word:作者用過jxl之后,選擇了http方式生成excel

[2]JSP-EXCEL save defualt in .xls extension, open excel with in the browser

[3]利用HTTP協議,更改輸出文件:引出了HTTP1.1協議的重要性

[4]超文本傳輸協議-HTTP(修訂版):詳細解釋了HTTP1.1協議

[5]Multiple tables data exported to multiple worksheets of the same excel sheet in java:一個excel中,存儲在多個sheet

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM