在项目中一般导出报表用poi,可是假设你不想用框架就用简单的jsp也能够实现报表导出。并且实现起来还特别简单。
先看一下效果截图:
点击导出后的效果截图:
详细实现:
第一:在页面的列表页面中就是普通的iterator源代码例如以下:
序号 | 体检编号 | 档案编号 | 姓名 | 性别 | 年龄 | 手机号码 | 阳性项目结果 |
---|
οnmοuseοver="this.className='overrow'"
οnmοuseοut="this.className='row'" align="center">
"/>title="">
value="@com.hljw.util.UtilAPI@strBeyondHidden(is_yang_value,50)" />
没有找到符合条件的数据第二:点击导出后相应的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)源代码例如以下:
pageEncoding="GBK"%>
String execlFileName = (String)request.getAttribute("execlFileName");
response.setHeader("Content-disposition","attachment; filename="+execlFileName+".xls");
response.setHeader("Pragma", "");
response.setHeader("Cache-Control", "");
%>
体检系统序号 | 体检编号 | 档案编号 | 姓名 | 性别 | 年龄 | 电话 | 阳性项目结果 |
---|---|---|---|---|---|---|---|