使用jsp实现word、excel格式报表打印
因为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、路人甲、男为从数据库动态查询,如下:
<%@ page contentType="application/msword;charset=GBK" %> <%@ page import="java.sql.*" %> xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">
用户信息
用户名 | 真实姓名 | 性别 | <% 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()){ %>
<%=rs.getString("user_name")%> | <%=rs.getString("real_name")%> | <%=rs.getString("gender")%> |
<% } // end while rs.close(); stmt.close(); } finally { con.close(); } %>
| 出处: Java原创社区 日期: 2004-10-26 |
好:0 一般:0 差:1 |
|