首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

用的是ssh框架,想把展示在jsp页面上的从数据库查询出来的数据导出生成excel

2013-04-26 
用的是ssh框架,想把显示在jsp页面上的从数据库查询出来的数据导出生成excel%@ page languagejava impo

用的是ssh框架,想把显示在jsp页面上的从数据库查询出来的数据导出生成excel
<%@ 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文件 JSP SSH 数据库 行业数据 框架
[解决办法]
去下载这个包:poi-2.5.1-final-20040804.jar
去操作吧。
[解决办法]
POI,jxl,fastexcel都是导出excel的开源组件
[解决办法]
可以考虑用PageOffice,有一个简化的excel对象模型,简单代码调用就可以动态生成复杂的excel,不占用服务器资源,比poi、jxl好用多了,试试就知道

热点排行