在项目中一般导出报表用poi,可是假设你不想用框架就用简单的jsp也能够实现报表导出。并且实现起来还特别简单。

先看一下效果截图:

点击导出后的效果截图:

详细实现:

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

 <table class="list_tab">
<tr class="head">
<th>序号</th>
<th width="20px"><input type="checkbox" class="inp02" style="vertical-align: middle;" id="sall"/></th>
<th>体检编号</th>
<th>档案编号</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>手机号码</th>
<th>阳性项目结果</th>
</tr>
<s:iterator value="listsickpeople" status="s">
<tr class="row"
onmouseover="this.className='overrow'"
onmouseout="this.className='row'" align="center">
<td><s:property value="#s.index+1" /></td>
<td><input type="checkbox" class="inp02" name="recordids" style="vertical-align: middle;" value="<s:property value="record_id" />"/></td>
<td><s:property value="record_id" /></td>
<td><s:property value="archive_id" /></td>
<td><s:property value="real_name" /></td>
<td align="center"><s:if test="sex==0">
<div class="sexw"></div>
</s:if> <s:elseif test="sex==1">
<div class="sexm"></div>
</s:elseif></td>
<td><s:property value="age" /></td>
<td><s:property value="contact_tel" /></td>
<td align="left"
title="<s:property value="is_yang_value" />"><s:property
value="@com.hljw.util.UtilAPI@strBeyondHidden(is_yang_value,50)" /></td>
</tr>
</s:iterator>
<s:if test="countTotal==0">
<tr class="tiprow">
<td colspan="9">没有找到符合条件的数据</td>
</tr>
</s:if>
</table>

第二:点击导出后相应的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"%>
<span style="color:#FF0000;"><%
String execlFileName = (String)request.getAttribute("execlFileName");
response.setHeader("Content-disposition","attachment; filename="+execlFileName+".xls");
response.setHeader("Pragma", "");
response.setHeader("Cache-Control", "");
%></span>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<title>体检系统</title>
</head>
<body >
<table border="1">
<tr>
<th>序号</th>
<th>体检编号</th>
<th>档案编号</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>电话</th>
<th align="left">阳性项目结果</th>
</tr>
<s:iterator value="listsickpeople" status="s">
<tr align="center">
<td><s:property value="#s.index+1" /> </td>
<td><s:property value="record_id" /> </td>
<td><s:property value="archive_id" /> </td>
<td><s:property value="real_name" /> </td>
<td><s:property value="sex" /> </td>
<td><s:property value="age" /> </td>
<td><s:property value="contact_tel" /> </td>
<td align="left"><s:property value="is_yang_value" /> </td>
</tr>
</s:iterator>
</table>
</body>
</html>

java通过jsp的Excel导出的更多相关文章

  1. java利用EasyPoi实现Excel导出功能

    easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板 语言( ...

  2. excel导出工具

    介绍 excel导出工具 整个项目的代码结构如下 com \---utils +---demo # 案例相关 | | ExcelExportApplication.java # springboot启 ...

  3. JAVA实现Excel导出数据(以写好的Excel模版导出)

    工作中经常会有将后台数据以Excel导出的功能. 简单的方法有将response的contentType设置为application/vnd.ms-excel: 或在JSP页面直接设置成: <% ...

  4. java反射学习之二万能EXCEL导出

    一.EXCEL导出的实现过程 假设有一个对象的集合,现在需要将此集合内的所有对象导出到EXCEL中,对象有N个属性:那么我们实现的方式是这样的: 循环这个集合,在循环集合中某个对象的所有属性,将这个对 ...

  5. Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc

    Atitit.excel导出 功能解决方案 php java C#.net版总集合.docx 1.1. Excel的保存格式office2003 office2007/2010格式1 1.2. 类库选 ...

  6. java-excel导出

    java excel导出分为两种2003年的格式和2007年的格式. 2003年的xls一个sheet限制65536. 2007年的xlsx限制为1048576. jxl导入2003 gradle j ...

  7. Java使用POI实现数据导出excel报表

    Java使用POI实现数据导出excel报表 在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅 ...

  8. Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类

    Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...

  9. Java常用工具类之Excel导出

    package com.wazn.learn.util; import java.util.List; import java.util.Map; import org.apache.poi.hssf ...

随机推荐

  1. HDU4612(Warm up)2013多校2-图的边双连通问题(Tarjan算法+树形DP)

    /** 题目大意: 给你一个无向连通图,问加上一条边后得到的图的最少的割边数; 算法思想: 图的边双连通Tarjan算法+树形DP; 即通过Tarjan算法对边双连通缩图,构成一棵树,然后用树形DP求 ...

  2. CSharp命名风格

    1.大小写约定 为了区分一个标识符中的多个单词,把标识符中的每个单词的首字母大写.不要用下划线来区分单词,或者在标识符中任何地方使用下划线,有两种方式适合大写标识符的字母: PascalCasing( ...

  3. 小技巧之jQueryMobile

    使用JqueryMobile+MVC做一个手机网站,也有2个月了.有一些小小的经验,跟大伙们分享一下下 小技巧1: 禁用所有Ajax加载,它会很烦人的. $.mobile.ajaxLinksEnabl ...

  4. 页面传值中get和post区别

    get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应. post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到 ...

  5. Swift中对计算属性的理解和对之前的补充

    这个功能的重点作用应该是在计算上. 对于一般的属性,要么直接存一个,要么直接读一个,计算属性则可以根据所设置内容,进行一些修改或计算之类的, 比如: import UIKit class sample ...

  6. CF 277E Binary Tree on Plane (拆点 + 费用流) (KM也可做)

    题目大意: 平面上有n个点,两两不同.现在给出二叉树的定义,要求树边一定是从上指向下,即从y坐标大的点指向小的点,并且每个结点至多有两个儿子.现在让你求给出的这些点是否能构成一棵二叉树,如果能,使二叉 ...

  7. kafka安装及Kafka-PHP扩展的使用

    话说用了就要有点产出,要不然过段时间又忘了,所以在这里就记录一下试用Kafka的安装过程和php扩展的试用. 实话说,如果用于队列的话,跟PHP比较配的,还是Redis.用的顺手,呵呵,只是Redis ...

  8. 窗口!窗口!- Windows程序设计(SDK)003

    窗口!窗口! 让编程改变世界 Change the world by program 内容节选: 在前边两节课的例子中,我们通过 MessageBox 函数创建一个消息框程序,消息框其实就是用来跟用户 ...

  9. win7下的iis配置

    1.配置错误 说明:在处理向该请求提供服务所需的配置文件时出错.请检查下面的特定错误详细信息并适当地修改配置文件. 分析器错误消息:无法识别的属性“targetFramework”.请注意属性名称区分 ...

  10. 关于Linux平台malloc的写时拷贝(延迟分配)【转】

    Linux内核定义了“零页面”(内容全为0的一个物理页,且物理地址固定),应用层的内存分配请求,如栈扩展.堆分配.静态分配等,分配线性地址后,就将页表项条目指向“零页面”(指定初始值的情况除外),这样 ...