用于生成在jsp页面

时间:2015-05-11 06:30:13

标签: java mysql excel jsp

我想将数据导出到Excel工作表

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
        <%@include file="connection.jsp" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>

    <%
    String ht = (String)session.getAttribute("ht");
    %>
    <table border="1">
    <%
    pst = con.prepareStatement("select * from attendance where ht='"+ht+"'");
    res = pst.executeQuery();
    if(res.next())
    {
        String uname = res.getString(2);
        %>
        <b>Student Name:<%=uname%></b>

        <%
        String hlt = res.getString(1);
        %>
        <b>Hallticket:<%=hlt%></b>
        <tr><th>CG</th><th>CD</th><th>MPI</th><th>HCI</th><th>WT</th><th>MPI-Lab</th><th>CT=Lab</th><th>WT-Lab</th></tr>
        <%
        String cg = res.getString(3);
        String cd = res.getString(4);
        String mpi = res.getString(5);
        String hci = res.getString(6);
        String wt = res.getString(7);
        String mpi_lab = res.getString(8);
        String ct_lab = res.getString(9);
        String wt_lab = res.getString(10);
        %>
        <tr>
        <td align="center"><%=cg%></td>
        <td align="center"><%=cd%></td>
        <td align="center"><%=mpi%></td>
        <td align="center"><%=hci%></td>
        <td align="center"><%=wt%></td>
        <td align="center"><%=mpi_lab%></td>
        <td align="center"><%=ct_lab%></td>
        <td align="center"><%=wt_lab%></td>
        </tr>
        <br/><br/>

        <%
    }
    %>
    </table>
    </body>
    </html>

我希望从数据库检索并在表格中显示的数据应打印在Excel工作表上 请任何人告诉我该怎么做...... :( 我使用了mysql数据库。

2 个答案:

答案 0 :(得分:0)

您必须将以下行添加到要导出到excel的jsp页面中:

response.setContentType("application/xls");
response.setHeader("Content-Disposition", "attachment;filename=File.xls");

或者您必须了解POI

您必须使用if(res.next())

更改while(res.next())

答案 1 :(得分:0)

尝试使用servlet进行Excel编写。

  

您可以将其用作JSP:如果需要,可以包含在现有页面中   到。

从servlet中你必须做这样的事情:

ServletOutputStream out = resp.getOutputStream();
resp.setContentType("application/vnd.ms-excel")
/*
* get data 
*/

if (data != null) {
for (int i=0; i data.length; i++) {
   String dataRow = "";
   for (int j = 0; j data[0].length; j++) {
       dataRow += data[i][j] + "\t";// add tab delimiter
   }
   out.println(dataRow);// print data
}
} else {//Bad data...
   out.println("No data to report.");
}

out.flush();

希望它对你有所帮助。 :)