站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题使用jsp实现word、excel格式报表打印

使用jsp实现word、excel格式报表打印

摘要: 使用jsp实现word、excel格式报表打印
google_ad_client = "pub-4944583547581781"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_channel ="1429059098"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "000000"; google_color_text = "000000"; // title: 使用JSP实现WORD、EXCEL格式报表打印

author: evan

date: 2003-08-21


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

word页面只要在jsp头设置如下指令:
<%@page contentType="application/msword;charset=GBK" %>

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

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

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

microsoft关于服务器端动态创建office文档的资料(asp示例):
http://support.microsoft.com/default.aspx?scid=KB;en-us;301044&

简单示例

使用word建立一文档,画表格如下:
----------------------------
| 用户名 | 真实姓名 | 性别 |
----------------------------
| guest | 路人甲 | 男 |
----------------------------
保存为Web页test.htm, 将test.htm改名为test.jsp,修改其中guest、路人甲、男为从数据库动态查询,如下:

  1. <%@ page contentType="application/msword;charset=GBK" %>
  2. <%@ page import="java.sql.*" %>
  3. xmlns:w="urn:schemas-microsoft-com:office:word"
  4. xmlns="http://www.w3.org/TR/REC-html40">
  5. <head>
  6. Document>
  7. 用户信息
  8. evan zhao
  9. evan zhao
  10. 1
  11. 1
  12. 2003-08-20T16:26:00Z
  13. 2003-08-20T16:27:00Z
  14. 1
  15. taiping
  16. 1
  17. 1
  18. Version>9.2812Version>
  19. 7.8 磅
  20. 0
  21. 2
  22. Compatibility>
  23. Compatibility>
  24. </head>
  25. <body lang=ZH-CN style='tab-interval:21.0pt;text-justify-trim:punctuation'>
  26. class=Section1 style='layout-grid:15.6pt'>
  27. <table border=1 cellspacing=0 cellpadding=0 style='border-collapse:collapse;
  28. <tr>
  29. <td width=189 valign=top style='width:142.0pt;border:solid windowtext .5pt;
  30. class=MsoNormal>用户名

  31. </td>
  32. <td width=189 valign=top style='width:142.05pt;border:solid windowtext .5pt;
  33. class=MsoNormal>真实姓名

  34. </td>
  35. <td width=189 valign=top style='width:142.05pt;border:solid windowtext .5pt;
  36. class=MsoNormal>性别

  37. </td>
  38. </tr>
  39. <%
  40. Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  41. String url="jdbc:odbc:mydb";
  42. //连接mydb数据库
  43. Connection con=DriverManager.getConnection (url, "", "");
  44. try{
  45. Statement stmt=con.createStatement();
  46. //查询employee表
  47. ResultSet rs=stmt.executeQuery("select user_name, real_name, gender from employee ");
  48. while(rs.next()){
  49. %>
  50. <tr>
  51. <td width=189 valign=top style='width:142.0pt;border:solid windowtext .5pt;
  52. class=MsoNormal><%=rs.getString("user_name")%>

  53. </td>
  54. <td width=189 valign=top style='width:142.05pt;border-top:none;border-left: mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  55. padding:0cm 5.4pt 0cm 5.4pt'>
  56. class=MsoNormal><%=rs.getString("real_name")%>

  57. </td>
  58. <td width=189 valign=top style='width:142.05pt;border-top:none;border-left: mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
  59. padding:0cm 5.4pt 0cm 5.4pt'>
  60. class=MsoNormal><%=rs.getString("gender")%>

  61. </td>
  62. </tr>
  63. <%
  64. } // end while
  65. rs.close();
  66. stmt.close();
  67. } finally {
  68. con.close();
  69. }
  70. %>
  71. </table>
  72. class=MsoNormal>if !supportEmptyParas]>

  • </body>



  • ↑返回目录
    前一篇: [Linux专题_APACHE]RedHatLinux AS3中APACHE+JSP整合
    后一篇: 中文字符从jsp传送到servlet的处理