JSP如何实现打印报表功能

这篇文章主要讲解了“JSP如何实现打印报表功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JSP如何实现打印报表功能”吧!

因为ms word和excel的文档都支持html文本格式,因此可以先用word或excel做好模版,另存为Web页,然后将该html改成jsp,将数据部分动态填入即可,不用很辛苦的调整格式即可实现JSP打印报表。

word页面只要在jsp头设置如下指令:

< %@page contentType="application/msword;charset=GBK" %>

excel如下:

< %@page contentType="application/vnd.ms-excel;charset=GBK" %>

使用这种方式客户端必须安装有office软件,用户访问时将在ie中直接用word或excel打开该页面。

使用JSP打印报表的优势是模板设计、调整方便,无需在服务器端使用复杂的POI或jxl技术,也无需在客户端使用ActiveX控件技术,更安全、方便,轻松实现较好的打印效果。  

JSP打印报表简单示例:

使用word建立一文档,画表格如下:
----------------------------
| 用户名 | 真实姓名 | 性别 |
----------------------------
| guest  | 路人甲   | 男   |
----------------------------

保存为Web页test.htm, 将test.htm改名为test.jsp,修改其中guest、路人甲、男为从数据库动态查询,如下:

< %@ page contentType="application/msword;charset=GBK" %>   < %@ page import="java.sql.*" %>   < html xmlns:o="urn:schemas-microsoft-com:office:office"   xmlns:w="urn:schemas-microsoft-com:office:word"   xmlns="http://www.w3.org/TR/REC-html40">    < head>   < meta http-equiv=Content-Type content="text/html; charset=GB2312">   < meta name=ProgId content=Word.Document>   < meta name=Generator content="Microsoft Word 9">   < meta name=Originator content="Microsoft Word 9">   < title>用户信息< /title>   < !--[if gte mso 9]>< xml>    < o:DocumentProperties>     < o:Author>evan zhao< /o:Author>     < o:LastAuthor>evan zhao< /o:LastAuthor>     < o:Revision>1< /o:Revision>     < o:TotalTime>1< /o:TotalTime>     < o:Created>2003-08-20T16:26:00Z< /o:Created>     < o:LastSaved>2003-08-20T16:27:00Z< /o:LastSaved>     < o:Pages>1< /o:Pages>     < o:Company>taiping< /o:Company>     < o:Lines>1< /o:Lines>     < o:Paragraphs>1< /o:Paragraphs>     < o:Version>9.2812< /o:Version>    < /o:DocumentProperties>   < /xml>< ![endif]-->< !--[if gte mso 9]>< xml>    < w:WordDocument>     < w:PunctuationKerning>     < w:DrawingGridVerticalSpacing>7.8 磅< /w:DrawingGridVerticalSpacing>     < w:DisplayHorizontalDrawingGridEvery>0< /w:DisplayHorizontalDrawingGridEvery>     < w:DisplayVerticalDrawingGridEvery>2< /w:DisplayVerticalDrawingGridEvery>     < w:Compatibility>      < w:SpaceForUL>      < w:BalanceSingleByteDoubleByteWidth>      < w:DoNotLeaveBackslashAlone>      < w:ULTrailSpace>      < w:DoNotExpandShiftReturn>      < w:AdjustLineHeightInTable>      < w:UseFELayout>     < /w:Compatibility>    < /w:WordDocument>   < /xml>< ![endif]-->   < style>   < !--    /* Font Definitions */   @font-face       {font-family:宋体;       panose-1:2 1 6 0 3 1 1 1 1 1;       mso-font-alt:SimSun;       mso-font-charset:134;       mso-generic-font-family:auto;       mso-font-pitch:variable;       mso-font-signature:3 135135232 16 0 262145 0;}   @font-face       {font-family:"\@宋体";       panose-1:2 1 6 0 3 1 1 1 1 1;       mso-font-charset:134;       mso-generic-font-family:auto;       mso-font-pitch:variable;       mso-font-signature:3 135135232 16 0 262145 0;}    /* Style Definitions */   p.MsoNormal, li.MsoNormal, div.MsoNormal       {mso-style-parent:"";       margin:0cm;       margin-bottom:.0001pt;       text-align:justify;       text-justify:inter-ideograph;       mso-pagination:none;       font-size:10.5pt;       mso-bidi-font-size:12.0pt;       font-family:"Times New Roman";       mso-fareast-font-family:宋体;       mso-font-kerning:1.0pt;}    /* Page Definitions */   @page       {mso-page-border-surround-header:no;       mso-page-border-surround-footer:no;}   @page Section1       {size:595.3pt 841.9pt;       margin:72.0pt 90.0pt 72.0pt 90.0pt;       mso-header-margin:42.55pt;       mso-footer-margin:49.6pt;       mso-paper-source:0;       layout-grid:15.6pt;}   div.Section1       {page:Section1;}   -->   < /style>   < /head>    < body lang=ZH-CN style='tab-interval:21.0pt;text-justify-trim:punctuation'>    < div class=Section1 style='layout-grid:15.6pt'>     < table border=1 cellspacing=0 cellpadding=0 style='border-collapse:collapse;    border:none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>    < tr>     < td width=189 valign=top style='width:142.0pt;border:solid windowtext .5pt;     padding:0cm 5.4pt 0cm 5.4pt'>     < p class=MsoNormal>< span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";     mso-hansi-font-family:"Times New Roman"'>用户名< /span>< /p>     < /td>     < td width=189 valign=top style='width:142.05pt;border:solid windowtext .5pt;     border-left:none;mso-border-left-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>     < p class=MsoNormal>< span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";     mso-hansi-font-family:"Times New Roman"'>真实姓名< /span>< /p>     < /td>     < td width=189 valign=top style='width:142.05pt;border:solid windowtext .5pt;     border-left:none;mso-border-left-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>     < p class=MsoNormal>< span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";     mso-hansi-font-family:"Times New Roman"'>性别< /span>< /p>     < /td>    < /tr>   < %   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");     String url="jdbc:odbc:mydb";    //连接mydb数据库   Connection con=DriverManager.getConnection (url, "", "");     try{     Statement stmt=con.createStatement();       //查询employee表     ResultSet rs=stmt.executeQuery("select user_name, real_name, gender from employee ");      while(rs.next()){   %>     < tr>     < td width=189 valign=top style='width:142.0pt;border:solid windowtext .5pt;     border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>     < p class=MsoNormal>< span lang=EN-US>< %=rs.getString("user_name")%>< /span>< /p>     < /td>     < td width=189 valign=top style='width:142.05pt;border-top:none;border-left:     none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;     mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;     padding:0cm 5.4pt 0cm 5.4pt'>     < p class=MsoNormal>< span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";     mso-hansi-font-family:"Times New Roman"'>< %=rs.getString("real_name")%>< /span>< /p>     < /td>     < td width=189 valign=top style='width:142.05pt;border-top:none;border-left:     none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;     mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;     padding:0cm 5.4pt 0cm 5.4pt'>     < p class=MsoNormal>< span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";     mso-hansi-font-family:"Times New Roman"'>< %=rs.getString("gender")%>< /span>< /p>     < /td>    < /tr>    < %     } // end while          rs.close();     stmt.close();   } finally {     con.close();   }   %>        < /table>    < p class=MsoNormal>< span lang=EN-US>< ![if !supportEmptyParas]> < ![endif]>< o:p>< /o:p>< /span>< /p>    < /div>    < /body>    < /html>

一个JSP打印报表的实例就这样完成了。

感谢各位的阅读,以上就是“JSP如何实现打印报表功能”的内容了,经过本文的学习后,相信大家对JSP如何实现打印报表功能这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!