在java环境生成word是件很困难的事。我的观点是什么好用,用什么,语言不重要。如果我们的项目下一个项目用.NET更好,我会毫不忧郁的去学.NET,编程语言是什么?它什么都不是。
这个项目需要在java环境下生成word,具体要求是这样的:用户通过IE查询信息,但要把查询结果保存为word,用户的这点要求不过分,得实现,但如何实现是件很让人头疼的事,领导一句话,咱们做程序的就得干啊。
在我搜了各大网站后,其结果是:没法实现。郁闷,我是开发程序的,不能这个小小的功能困住,后来灵机一动,问题解决了,这样的事太多了,感慨万分啊。
做人咋就这难呢?
首先创建数据库,在页面写如下代码。
<html>
<head>
<title>word</title>
</head>
<body>
<p><a href="new.jsp">word</a></p>
</body>
</html>
会连接到一个新页面。代码如下:
<%@ page contentType="application/msword;charset=gb2312" %>
<%@ page import="java.sql.*" %>
<%
response.setHeader("Content-disposition","inline; filename=test1.doc"); //线上浏览方式
response.setHeader("Content-disposition","attachment; filename=test1.doc");//下载方式
%>
<html>
<head>
<title>报表</title>
</head
<body bgcolor="#FFFFFF">
<center><h1>报表</h1></center>
<table border=1 cellspacing=0 cellpadding=0 bordercolor=#000000 align=center>
<tr>
<td>用户名</td>
<td>真实姓名</td>
<td>性别</td>
</tr>
<%
Class.forName("org.gjt.mm.mysql.Driver");
String url="jdbc:mysql://127.0.0.1:3306/user";
//连接user数据库
Connection con=DriverManager.getConnection (url, "root", "");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from user ");
//查询user表
while(rs.next()){
%>
<tr>
<td><%= rs.getString("username") %></td>
<td><%= rs.getString("name") %></td>
<td><%= rs.getString("sex") %></td>
</tr>
<%
}
%>
<%
rs.close();
stmt.close();
con.close();
%>
</table>
</body>
</html>
这样链接到该页时就会弹出保存对话框。问题基本解决了。