I am new to
Java, so my solution might not be very sofisticated. But it works.
//Here is the code I used:
//This is an HTML or
JSP page, that is used to pass the query to a seocnd page:
<html>
<head><title>Pass SQL Query </title></head>
<body>
<%
String query = "Select * from Customers";
%>
<p><font size="+1">[<a href="excel.jsp?SQL=<%=query%>">Export results to Excel</a>]</font>
</body>
</html>
-------------------------------------------------------
/*Second JSP Page will look something like this:
*Notice that I used a Bean here "JDBC_Wrapper" to open the database *connection and execute the query.
*/
<%@ page import = "java.sql.*, somefolder.JDBC_Wrapper" %>
<jsp:useBean id="myCBean" class="somefolder.JDBC_Wrapper" scope="session"/>
<HTML>
<HEAD>
<TITLE>Export Data to Excel</TITLE>
</HEAD>
<body>
<%
String SQL = request.getParameter("SQL");
myCBean.DbInit();
ResultSet rs = myCBean.queryTable(SQL);
//Display results in excel
response.setContentType("application/vnd.ms-excel");
response.setHeader("content-disposition","attachment;filename=report.xls");
%>
<table border="1" >
<thead>
<tr>
<th>Column1 Name</th>
<th>Column2 Name </th>
</tr>
</thead>
<tbody>
<%while (rs.next()){ %>
<tr>
<td><%= rs.getString(1) %></td>
<td><%= rs.getString(2) %></td>
</tr>
<% } %>
</tbody>
</table>
<%
myCBean.DbClose();
%>
</body>
</html>