<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Untitled Page</TITLE>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<LINK href="Top.files/1.css" type=text/css rel=stylesheet>
<META content="MSHTML 6.00.2900.5848" name=GENERATOR>
<script type="text/javascript">
function doDelete(id) {
if (confirm("你确定要删除该信息吗?")) {
window.location = "deletebill.action?id=" + id;
}
}
</script>
</HEAD>
<BODY style="BACKGROUND-POSITION-Y: -120px; BACKGROUND-IMAGE: url(../images/bg.gif); BACKGROUND-REPEAT: repeat-x"><DIV>
  <TABLE height="100%" cellSpacing=0 cellPadding=0 width="100%" border=0>
    <TBODY>
      <TR 
  style="BACKGROUND-IMAGE: url(../images/bg_header.gif); BACKGROUND-REPEAT: repeat-x" 
  height=47>
        <TD width=10><SPAN 
      style="FLOAT: left; BACKGROUND-IMAGE: url(../images/main_hl.gif); WIDTH: 15px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 47px"></SPAN></TD>
        <TD><SPAN 
      style="FLOAT: left; BACKGROUND-IMAGE: url(../images/main_hl2.gif); WIDTH: 15px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 47px"></SPAN><SPAN 
      style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FLOAT: left; BACKGROUND-IMAGE: url(../images/main_hb.gif); PADDING-BOTTOM: 10px; COLOR: white; PADDING-TOP: 10px; BACKGROUND-REPEAT: repeat-x; HEIGHT: 47px; TEXT-ALIGN: center; 0px: ">浏览信息 </SPAN><SPAN 
      style="FLOAT: left; BACKGROUND-IMAGE: url(../images/main_hr.gif); WIDTH: 60px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 47px"></SPAN></TD>
        <TD 
    style="BACKGROUND-POSITION: 50% bottom; BACKGROUND-IMAGE: url(../images/main_rc.gif)" 
    width=10></TD>
      </TR>
      <TR>
        <TD style="BACKGROUND-IMAGE: url(../images/main_ls.gif)">&nbsp;</TD>
        <TD 
    style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; COLOR: #566984; PADDING-TOP: 10px; BACKGROUND-COLOR: white" 
    vAlign=top align=center>
          <DIV>
            <TABLE class=gridView  
      style="WIDTH: 100%; BORDER-COLLAPSE: collapse" cellSpacing=0 rules=all 
      border=1>
              <TBODY>
                <TR>
                  <TH class=gridViewHeader nowrap>编号</TH>
                  <TH class=gridViewHeader nowrap>科室</TH>
                  <TH class=gridViewHeader nowrap>开票人</TH>
                  <TH class=gridviewHeader nowrap>开票时间</TH>
                  <TH class=gridviewHeader nowrap>进出</TH>
                  <TH class=gridviewHeader nowrap>详细</TH>
                  <TH class=gridviewHeader nowrap>金额</TH>
                  <TH class=gridviewHeader nowrap>编辑</TH>
                  <TH class=gridviewHeader nowrap>删除</TH>
                </TR>
       <tbody>
      <c:forEach var="b" items="${page.list}" varStatus="s">
      <tr>
      <TD class=gridViewItem nowrap>${b.id}</TD>
                <TD class=gridViewItem nowrap>${b.deptname}</TD>
                <TD class=gridViewItem nowrap>${b.doctorname}</TD>
                <TD class=gridViewItem nowrap>${b.createtime}</TD>
                <TD class=gridViewItem nowrap>${b.expenditure}</TD>
                <TD class=gridViewItem nowrap>${b.income}</TD>
                <TD class=gridViewItem nowrap>${b.price}</TD> 
      <td class=gridViewItem nowrap><a href="selectOnebill.action?id=${b.id }"><img src="../images/x.png"/></a></td>
      <td class=gridViewItem nowrap><a href="javascript:doDelete(${b.id })"><img src="../images/y.png"/></a></td>
      </tr>
      </c:forEach>
      </tbody>                               
              </TBODY>
            </TABLE>
          </DIV>
      <center>
    <table>
       <tr>
           <td><a href="selectAllBill.action?do=first&page=1">首页&nbsp;</a></td>
           <td><a href="selectAllBill.action?do=pre&page=${page.currentPage }">上一页&nbsp;</a></td>
           <td>当前页:${page.currentPage }</td>
           <td><a href="selectAllBill.action?do=back&page=${page.currentPage }">下一页&nbsp;</a></td>
            <td><a href="selectAllBill.action?do=last&page=${page.allPages }">尾页&nbsp;</a></td>
           <td>总页数:${page.allPages }&nbsp;</td>
            <td>每页显示:${page.recordsInPage }&nbsp;</td>
           <td>总记录数:${page.allRecords }</td>
       </tr>
    </table>
 </center>                   
        </TD>
        <TD style="BACKGROUND-IMAGE: url(../images/main_rs.gif)"></TD>
      </TR>
      <TR 
  style="BACKGROUND-IMAGE: url(../images/main_fs.gif); BACKGROUND-REPEAT: repeat-x" 
  height=10>
        <TD style="BACKGROUND-IMAGE: url(../images/main_lf.gif)"></TD>
        <TD style="BACKGROUND-IMAGE: url(../images/main_fs.gif)"></TD>
        <TD 
style="BACKGROUND-IMAGE: url(../images/main_rf.gif)"></TD>
      </TR>
    </TBODY>
  </TABLE>
</DIV>
</BODY>
</HTML>
这是我的jsp页面代码,import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import org.springframework.stereotype.Controller;import com.bhlwwy.chis.model.Bill;
import com.bhlwwy.chis.service.BillManager;
import com.bhlwwy.chis.util.Page;
import com.opensymphony.xwork2.ActionSupport;@SuppressWarnings("serial")
@Controller
public class SelectAllBillAction extends ActionSupport {
private BillManager billManager; // 查询所有信息
public String selectAll() { HttpServletRequest request = ServletActionContext.getRequest();
String doAction = request.getParameter("do"); // 判断是上一页还是下一页
String cPage = request.getParameter("page"); // 获得当前页 Page<Bill> p = new Page<Bill>();
int currentPage = 1; // 设置当前页的默认值为1
p.setRecordsInPage(5);
p.setAllRecords(billManager.getAllRecords()); // 设置总记录数
System.out.println(billManager.getAllRecords() + "  ---------------");
p.setAllPages((p.getAllRecords() + p.getRecordsInPage() - 1)
/ p.getRecordsInPage()); // 计算总页数 if (cPage != null) {
currentPage = Integer.parseInt(cPage);
}
if (doAction == null) {
currentPage = 1;
} else if (doAction.equals("pre")) {
currentPage--;
if (currentPage < 1) {
currentPage = 1;
}
} else if (doAction.equals("back")) {
++currentPage;
if (currentPage > p.getAllPages()) {
currentPage = p.getAllPages();
}
} p.setCurrentPage(currentPage);
p.setList(billManager.findBills(
p.getRecordsInPage() * (p.getCurrentPage() - 1),
p.getRecordsInPage())); request.setAttribute("page", p); return SUCCESS;
} public void setBillManager(BillManager billManager) {
this.billManager = billManager;
}}
这是显示所有的action的代码;public List<Bill> findBills(int startRecord,int offset);
这是dao public List<Bill> findBills(int startRecord, int offset) {
Query query = getSession().createQuery("FROM Bill");
query.setFirstResult(startRecord);
query.setMaxResults(offset);
return query.list();
}
这是daohibernate的实现;把数据库中的数据显示在jsp页面上,现在希望可以把页面上显示的数据库的数据保存成excel文件JSPSSH数据库行业数据框架

解决方案 »

  1.   

    去下载这个包:poi-2.5.1-final-20040804.jar
    去操作吧。
      

  2.   

    POI,jxl,fastexcel都是导出excel的开源组件
      

  3.   

    POI 2.5???
    这个东东已经很老了  现在poi3.8还不错,支持大数据量导出,
      

  4.   

    可以考虑用PageOffice,有一个简化的excel对象模型,简单代码调用就可以动态生成复杂的excel,不占用服务器资源,比poi、jxl好用多了,试试就知道