如何将整个检索表数据放入 excel in jsp
how get entire retrieved tabled data into excel in jsp
我正在使用此代码,但只有 table 行数据被输入到文件中。我正在使用 mysql 数据库。连接在 connection.jsp 中建立。 table名称是登录名。使用 poi-2.5.1.jar 文件。这段代码没有任何错误,但是如何将整个 table 数据放入 excel sheet
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<%@page import="java.sql.*"%>
<%@pageimport="java.util.*,java.io.*,javax.servlet.*,javax.servlet.http.*"%>
<%@ page import="java.io.*"%>
<%@include file="connection.jsp" %>
<%@page import=" org.apache.poi.hssf.usermodel.*"%>
<head>
<meta httpequiv="ContentType"content="text/html;charset=UTF-8">
<title>JSP Page</title>
</head>
<% response.setContentType("application/xls");
response.setHeader("ContentDisposition","attachment;filename=File.xls"); %>
<body>
<table>
<tr><th>CG</th><th>CD</th></tr>
<%
Statement stmt = conn.createStatement();
String filename="C:/Users/sangu/Downloads/data.xls" ;
HSSFWorkbook hwb=new HSSFWorkbook();
HSSFSheet sheet = hwb.createSheet("sheet");
HSSFRow row= sheet.createRow((short)0);
ResultSet res = stmt.executeQuery("select * from login ");
while (res.next())
{
String cg = res.getString(1);
String cd = res.getString(3);
row.createCell((short) 0).setCellValue(cd);
row.createCell((short) 1).setCellValue(cd);
row.createCell((short) 1).setCellValue(cd);
%>
<tr>
<td align="center"><%=cg%></td>
<td align="center"><%=cd%></td>
</tr>
<%
FileOutputStream fileOut = new FileOutputStream(filename);
hwb.write(fileOut);
fileOut.close();
out.println("Your excel file has been generated!");
hwb.write(response.getOutputStream()); }
%>
</table>
</body>
</html>
不确定但不应该
HSSFRow row= sheet.createRow((short)0);
在 while 循环内?所以它会为每个结果创建新行?
编辑:
Statement stmt = conn.createStatement();
String filename="C:/Users/sangu/Downloads/data.xls" ;
HSSFWorkbook hwb=new HSSFWorkbook();
HSSFSheet sheet = hwb.createSheet("sheet");
ResultSet res = stmt.executeQuery("select * from login ");
while (res.next())
{
HSSFRow row= sheet.createRow((short)0);
String cg = res.getString(1);
String cd = res.getString(3);
row.createCell((short) 0).setCellValue(cd);
row.createCell((short) 1).setCellValue(cd);
row.createCell((short) 1).setCellValue(cd);
%>
<tr>
<td align="center"><%=cg%></td>
<td align="center"><%=cd%></td>
</tr>
<%
FileOutputStream fileOut = new FileOutputStream(filename);
hwb.write(fileOut);
fileOut.close();
out.println("Your excel file has been generated!");
hwb.write(response.getOutputStream()); }
我正在使用此代码,但只有 table 行数据被输入到文件中。我正在使用 mysql 数据库。连接在 connection.jsp 中建立。 table名称是登录名。使用 poi-2.5.1.jar 文件。这段代码没有任何错误,但是如何将整个 table 数据放入 excel sheet
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<%@page import="java.sql.*"%>
<%@pageimport="java.util.*,java.io.*,javax.servlet.*,javax.servlet.http.*"%>
<%@ page import="java.io.*"%>
<%@include file="connection.jsp" %>
<%@page import=" org.apache.poi.hssf.usermodel.*"%>
<head>
<meta httpequiv="ContentType"content="text/html;charset=UTF-8">
<title>JSP Page</title>
</head>
<% response.setContentType("application/xls");
response.setHeader("ContentDisposition","attachment;filename=File.xls"); %>
<body>
<table>
<tr><th>CG</th><th>CD</th></tr>
<%
Statement stmt = conn.createStatement();
String filename="C:/Users/sangu/Downloads/data.xls" ;
HSSFWorkbook hwb=new HSSFWorkbook();
HSSFSheet sheet = hwb.createSheet("sheet");
HSSFRow row= sheet.createRow((short)0);
ResultSet res = stmt.executeQuery("select * from login ");
while (res.next())
{
String cg = res.getString(1);
String cd = res.getString(3);
row.createCell((short) 0).setCellValue(cd);
row.createCell((short) 1).setCellValue(cd);
row.createCell((short) 1).setCellValue(cd);
%>
<tr>
<td align="center"><%=cg%></td>
<td align="center"><%=cd%></td>
</tr>
<%
FileOutputStream fileOut = new FileOutputStream(filename);
hwb.write(fileOut);
fileOut.close();
out.println("Your excel file has been generated!");
hwb.write(response.getOutputStream()); }
%>
</table>
</body>
</html>
不确定但不应该
HSSFRow row= sheet.createRow((short)0);
在 while 循环内?所以它会为每个结果创建新行?
编辑:
Statement stmt = conn.createStatement();
String filename="C:/Users/sangu/Downloads/data.xls" ;
HSSFWorkbook hwb=new HSSFWorkbook();
HSSFSheet sheet = hwb.createSheet("sheet");
ResultSet res = stmt.executeQuery("select * from login ");
while (res.next())
{
HSSFRow row= sheet.createRow((short)0);
String cg = res.getString(1);
String cd = res.getString(3);
row.createCell((short) 0).setCellValue(cd);
row.createCell((short) 1).setCellValue(cd);
row.createCell((short) 1).setCellValue(cd);
%>
<tr>
<td align="center"><%=cg%></td>
<td align="center"><%=cd%></td>
</tr>
<%
FileOutputStream fileOut = new FileOutputStream(filename);
hwb.write(fileOut);
fileOut.close();
out.println("Your excel file has been generated!");
hwb.write(response.getOutputStream()); }