亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

JSP生成WORD文檔,EXCEL文檔及PDF文檔的方法

2024-09-05 00:22:21
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了JSP生成WORD文檔,EXCEL文檔及PDF文檔的方法,已實例形式分別介紹了JSP省城word、excel及PDF文件的相關原理及實現技巧,具有一定參考借鑒價值,需要的朋友可以參考下
 

本文實例講述了JSP生成WORD文檔,EXCEL文檔及PDF文檔的方法。分享給大家供大家參考,具體如下:

在web-oa系統中,公文管理好象不可或缺,有時需要從數據庫中查詢一些數據以某種格式輸出來,并以word文檔的形式展現,有時許多word文檔保存到數據庫中的某個表的Blob字段里,服務器再把保存在Blob字段中的圖片文件展現給用戶。通過網上查找發現很少有關于此類的文章,現在整理起來供大家參考。

1 在client端直接生成word文檔

在jsp頁面上生成word文檔非常簡單,只需把contentType=”text/html”改為contentType="application/msword; charset=gb2312"即可,代碼如下:

復制代碼代碼如下:
<%@ page contentType="application/msword; charset=gb2312" %>

通過設置可以使原來頁面的內容在word中表現出來。

 

如果需要把word文檔下載下來,只需在jsp頁面上面加上如下代碼:
 

  1. <% 
  2. response.setHeader("Content-Disposition""attachment;filename=filename.doc"); 
  3. %> 
 

其中filename.doc中filename是要下載的word文檔的文件名,可以通過<%=docName%>來自行定制,如下
 

  1. <% 
  2. response.setHeader("Content-Disposition""attachment;filename=<%=docName%>.doc"); 
  3. %> 
 

這樣提供一個提示信息供用戶選擇。

小技巧:如果程序員需要在生成word文檔的時候按照自己預先在word上設計好的格式,可以復制word格式然后粘貼到frontpage中,取html代碼貼到jsp頁面即可。

2 在客戶端輸出存在數據庫中的word實體

這里只討論在client輸出oracle中BLOB字段中的word文檔實體。其中調用了類getBlobBean,該類提供了從oracle中取出blob功能,代碼如下:
 

  1. package yourpackage; 
  2. import javax.servlet.*; 
  3. import javax.servlet.http.*; 
  4. import java.io.*; 
  5. import java.util.*; 
  6. import oracle.sql.*; 
  7. import beans.yourbeanpackage. getBlobBean; 
  8. /** 
  9.  * <p>Title: </p> 
  10.  * <p>Description: </p> 
  11.  * <p>Copyright: Copyright (c) 2004</p> 
  12.  * <p>Company: </p> 
  13.  * @author not attributable 
  14.  * @version 1.0 
  15.  */ 
  16. public class GetBlobServlet1 extends HttpServlet { 
  17. //設置輸出內容類型,這個設置很重要,否則客戶端瀏覽器不能識別輸出內容,導致彈出下載的對話框。 
  18.  private static final String CONTENT_TYPE = "application/msword;charset=gb2312"
  19.  //Initialize global variables 
  20.  public void init() throws ServletException { 
  21.  } 
  22.  //Process the HTTP Get request 
  23.  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
  24.   response.setContentType(CONTENT_TYPE); 
  25.   perform(request,response); 
  26.  } 
  27.  public void perform(HttpServletRequest request, HttpServletResponse response){ 
  28. try
  29. //該類功能是從oracle哭中取出blob實體 
  30.    getBlobBean getBlob=new getBlobBean(); 
  31.    OutputStream sos = response.getOutputStream(); 
  32.    getBlob.connFunction(); 
  33. oracle.sql.BLOB blob=getBlob.getBlob("cehui"); 
  34. //輸出word文檔 
  35. if(blob!=null){ 
  36.     InputStream pi = blob.getBinaryStream(); 
  37.     int blobsize =(int)blob.length(); 
  38.     byte[] blobbytes = new byte[blobsize]; 
  39.     int bytesRead = 0; 
  40.     while ((bytesRead = pi.read(blobbytes)) != -1) { 
  41.      sos.write(blobbytes, 0, bytesRead); 
  42.     } 
  43.     pi.close(); 
  44.     sos.flush(); 
  45.     sos.close(); 
  46.    } 
  47.    getBlob.dropConnFunction(); 
  48.   }catch(Exception e){ 
  49.    System.out.println(e.toString()); 
  50.   } 
  51.  } 
  52.  //Clean up resources 
  53.  public void destroy() { 
  54.  } 
  55. }  
 

3 在client端直接生成EXCEL文檔
 

  1. <%@ page contentType="application/vnd.ms-excel; charset=gb2312" %> 
  2. <% 
  3. response.setHeader("Content-Disposition""attachment;filename=20050304.xls"); 
  4. %> 
  5. <html> 
  6. <head> 
  7. <meta http-equiv="Content-Type" content="text/html; charset=gb2312"
  8. <title>生成</title> 
  9. </head> 
  10. <body> 
  11. 生成例子excel 。 用WORD排版面,倒出HTML 把代碼拷貝到網頁里,然后這個JSP頁面打印你就隨心所欲的控制了。  
  12. </body> 
  13. </html> 

4 在client端直接生成PDF文檔

需要下載JAR包:以下代碼在JDK1.4  RESIN2.16  下測試通過

ITEXT包 http://mesh.dl.sourceforge.net/sourceforge/itext/itext-1.3.5.jar
字體包http://itext.sourceforge.net/downloads/iTextAsian.jar

JSP生成到客戶IE端直接打開

ie_PDF.jsp:
 

  1. <%@  
  2. page import="java.io.*,java.awt.Color,com.lowagie.text.*,com.lowagie.text.pdf.*"%>  
  3. <%  
  4. response.setContentType( "application/pdf" );  
  5. Document document = new Document();  
  6. ByteArrayOutputStream buffer = new ByteArrayOutputStream();  
  7. PdfWriter writer=PdfWriter.getInstance( document, buffer );  
  8. document.open();  
  9. document.add(new Paragraph("Hello World"));  
  10. document.close();  
  11. DataOutput output = new DataOutputStream( response.getOutputStream() );  
  12. byte[] bytes = buffer.toByteArray();  
  13. response.setContentLength(bytes.length);  
  14. forint i = 0; i < bytes.length; i++ ) { output.writeByte( bytes[i] ); }  
  15. %>  
 

在服務器端生成不下載。

server_PDF.jsp:
 

  1. <%@ page import ="com.lowagie.text.*,com.lowagie.text.pdf.*, java.io.*"%>  
  2. <%  
  3. String filename = "D://test//111111.pdf" ;  
  4. Document document = new Document(PageSize.A4);  
  5. ServletOutputStream out1 = response.getOutputStream();  
  6. try{  
  7. PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename) );  
  8. document.open();  
  9. document.add(new Paragraph("Hello World中文支持"));  
  10. document.close();  
  11. }  
  12. catch(Exception e){}  
  13. %> 

使用iText可以設置文字的字體,對于我們中國的程序員來說如何顯示中文是最緊要的問題。幸好iText中有一個專門的包用來設置亞洲國家的字體你可以從http://itext.sourceforge.net/downloads/iTextAsian.jar下載這個包。然后把它直接放到你的ClassPath中就可以了。如何設置字體呢?
 

  1. BaseFont bfChinese = BaseFont.createFont("STSong-Light""UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); 
  2. Font FontChinese = new Font(bfChinese, 12, Font.NORMAL); 
 

在上面的代碼中設置了中文字體的顯示,你只要使用下面的代碼就可以包中文加到PDF中了
 

  1. String title = "我愛喝咖啡"
  2. Paragraph t = new Paragraph(title, FontChinese); 
  3. doc.add(t); 
 

希望本文所述對大家JSP程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内精品久久久久久| 久久视频国产精品免费视频在线| 日韩高清电影免费观看完整| 欧美精品在线免费观看| 国产在线播放91| 国产中文字幕亚洲| 九九久久久久99精品| 亚洲人成啪啪网站| 成人免费观看网址| 欧美裸体xxxx| 国内偷自视频区视频综合| 精品国产91久久久久久| 日韩美女福利视频| 亚洲91精品在线观看| 成人动漫网站在线观看| 国产精品丝袜高跟| 精品欧美激情精品一区| 黑人巨大精品欧美一区二区| 欧亚精品中文字幕| 日韩视频免费大全中文字幕| 日本国产精品视频| 中文字幕亚洲二区| 久久69精品久久久久久久电影好| 国内精品在线一区| 亲爱的老师9免费观看全集电视剧| 97国产成人精品视频| 亚洲人成网站999久久久综合| 欧美日韩国产麻豆| 91精品国产高清久久久久久| 久久亚洲综合国产精品99麻豆精品福利| 国产精品久久久久免费a∨| 伊人一区二区三区久久精品| 一区二区三区在线播放欧美| 亚洲**2019国产| 久久国产精品首页| 久久精品最新地址| 欧美最近摘花xxxx摘花| 欧美性做爰毛片| 亚洲自拍偷拍色片视频| 日韩精品欧美国产精品忘忧草| 欧美在线视频观看免费网站| 久久亚洲精品网站| 免费91麻豆精品国产自产在线观看| 7777精品久久久久久| 日韩欧美福利视频| 亚洲字幕在线观看| 伊人成人开心激情综合网| 久久免费视频在线观看| 91夜夜揉人人捏人人添红杏| 91视频九色网站| 亚洲香蕉成视频在线观看| 55夜色66夜色国产精品视频| 疯狂做受xxxx欧美肥白少妇| 日韩在线观看精品| 精品久久久久久久大神国产| 亚洲电影av在线| 欧美成人免费视频| 成人免费xxxxx在线观看| 中文字幕亚洲欧美一区二区三区| 7777精品视频| 38少妇精品导航| 国产一区二区三区网站| 91精品国产高清自在线看超| 国产在线观看一区二区三区| 91九色精品视频| 亚洲国产日韩精品在线| 国产99久久精品一区二区 夜夜躁日日躁| 欧美一级淫片播放口| 亚洲欧洲国产精品| 成人精品久久一区二区三区| 国产精品入口尤物| 日韩av片永久免费网站| 欧美激情一区二区三区高清视频| 亚洲欧美一区二区三区在线| 欧美人成在线视频| 欧美一区视频在线| 黑人巨大精品欧美一区二区一视频| 91亚洲国产成人久久精品网站| 久热精品视频在线观看一区| 亚洲欧美综合v| 一本色道久久88综合日韩精品| 国产日韩av高清| 欧美丰满少妇xxxxx| 亚洲一区二区久久久| 国产欧美精品va在线观看| 日韩在线观看av| 日韩乱码在线视频| 欧美日韩国产综合新一区| 日本a级片电影一区二区| 欧美精品性视频| 亚洲欧洲日产国产网站| 欧美激情精品久久久久久变态| 亚洲香蕉成视频在线观看| 国产91成人在在线播放| 欧美一级高清免费| 欧美激情中文字幕在线| 日韩免费观看av| 岛国av一区二区在线在线观看| 在线看国产精品| 欧美www在线| 国产精品美乳一区二区免费| 色综合久综合久久综合久鬼88| 欧美一级黄色网| 91色琪琪电影亚洲精品久久| 日韩中文字幕免费视频| 久久精品中文字幕一区| 欧美亚洲午夜视频在线观看| 亚洲第一精品久久忘忧草社区| 精品国产一区二区三区久久| 亚洲自拍另类欧美丝袜| 日韩av三级在线观看| 欧美在线一级视频| 国产精品日韩在线观看| 国产91精品青草社区| 亚洲一区二区少妇| 亚洲人精选亚洲人成在线| 国产综合久久久久久| 亚洲国产精品热久久| 日韩电影免费在线观看中文字幕| 国产激情999| 九九久久国产精品| 欧美精品九九久久| 亚洲最大激情中文字幕| 日韩网站免费观看高清| 亚洲自拍欧美色图| 欧美野外猛男的大粗鳮| 中文字幕亚洲欧美日韩在线不卡| 欧日韩不卡在线视频| 在线观看日韩欧美| 国产91精品网站| 欧美大片在线影院| 亚洲视频第一页| 69视频在线免费观看| 成人xxxx视频| 日韩久久精品电影| 不卡中文字幕av| 日日噜噜噜夜夜爽亚洲精品| 精品综合久久久久久97| 亚洲国产精品va在线| 国内偷自视频区视频综合| 日本精品久久久| 97国产在线视频| 国外色69视频在线观看| 午夜精品一区二区三区在线视| 91精品在线观看视频| 最新国产成人av网站网址麻豆| 欧美激情综合色综合啪啪五月| 日韩亚洲国产中文字幕| 国内精品美女av在线播放| 亚洲美女在线观看| 欧美午夜激情在线| 成人欧美一区二区三区黑人| 亚洲欧美成人一区二区在线电影| 国产精品久久97| 国产综合福利在线| 91深夜福利视频| 日本精品一区二区三区在线播放视频| 国产精品亚洲视频在线观看| 国产视频欧美视频| 欧美成人黑人xx视频免费观看| 国内精品久久久久久久| 国产美女久久精品香蕉69| 久久成年人免费电影| 日本aⅴ大伊香蕉精品视频|