java报表导出

2014-11-23 22:27:51 · 作者: · 浏览: 0

在项目中一般导出报表用poi,但是如果你不想用框架就用简单的jsp也可以实现报表导出。而且实现起来还特别简单。先看一下效果截图:

\

点击导出后的效果截图:

\

具体实现:

第一:在页面的列表页面中就是普通的iterator源码如下:

 
  
                    
  
  
  
                    
  
  "> 
    
序号 体检编号 档案编号 姓名 性别 年龄 手机号码 阳性项目结果
"/>
没有找到符合条件的数据

第二:点击导出后对应的action,就是将需要导出的list从数据库中查询出来。(没有特别的地方)

 public String exportPositiveResult() {
        if (qureyBean == null) {
            qureyBean = new SickPeople();
        }
       //这是将复选框的数组转化为sql的in条件
        String[] record_ids = this.getParameterValues("recordids");
        String record_id = stringArray2StringIn(record_ids);
        qureyBean.setRecord_id(record_id);

        listsickpeople = recordService.positiveresult(qureyBean, 1, 1000000);
        this.dictService.setDictName2ListData(listsickpeople, CacheGlobal.DICT_SEX);
        execlFileName = UncDate.formatDateTime(new Date(), "yyyyMMddHHmmss");
        return SUCCESS;
    }

   /**
     * 将逗号隔开的数组转成In条件
     * 
     * @param str
     * @return
     */
    public String stringArray2StringIn(String[] recordids) {
        StringBuffer idsStr = new StringBuffer();
        for (int i = 0; recordids != null && i < recordids.length; i++) {
            if (i != 0) {
                idsStr.append(",");
            }
            idsStr.append("'").append(recordids[i]).append("'");
        }
        return idsStr.toString();
    }

 

第三:action执行后跳转的jsp。(这个特殊地方有两点:第一在头文件需要加一些语句。第二页面只需要导出报表需要的数据,没有任何js和css)源码如下:

<%@ page language="java" contentType="text/html; charset=GBK"
	pageEncoding="GBK"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
	String execlFileName = (String)request.getAttribute("execlFileName");
   	response.setHeader("Content-disposition","attachment; filename="+execlFileName+".xls"); 
   	response.setHeader("Pragma", "");
  	response.setHeader("Cache-Control", "");  
%>




  
体检<a href="http://www.2cto.com/os/" target="_blank" class="keylink">系统</a>


	
  
			
  
  
序号 体检编号 档案编号 姓名 性别 年龄 电话 阳性项目结果