在项目中一般导出报表用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. C#委托的回调机制

    代码如下: public partial class FrmMain : Form { // 定义回调使用关键字 delegate(回调是委托的一种应用,其本质就是委托) private delega ...

  2. Linux系统调用system_call

    2016-03-25 张超的<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 我的虚拟环境和代码在http ...

  3. 使用UIPageControl UIScrollView制作APP引导界面

    1. 新建两个视图控制器类(继承自UIViewController), 在AppDelegate.m中指定根视图控制器 #import "AppDelegate.h" #impor ...

  4. php 邮件发送代码-php邮件群发

    php 邮件发送如何进行的呢? php邮件发送是通过smtp协议进行的. 下面是一个php邮件发送的类的一个函数. 文件下载 function sendmail($to, $from, $subjec ...

  5. 武汉科技大学ACM :1003: 零起点学算法67——统计字母数字等个数

    Problem Description 输入一串字符,统计这串字符里的字母个数,数字个数,空格字数以及其他字符(最多不超过100个字符) Input 多组测试数据,每行一组 Output 每组输出一行 ...

  6. ionic开发ios app

    注意必须是mac系统 1. 首先要安装node环境,Ionic的安装和后续的许多前端工具的安装都依赖于node的包管理器npm. nodeJs环境的安装很简单,去官网下载最新版的NodeJs直接安装即 ...

  7. SVN搭建本地版本控制仓库

    1.安装TortoiseSVN 2.新建一个文件夹,比如F:\SvnProjectsCfg 3.在F:\SvnProjectsCfg新建一个文件夹project1,右键该文件夹选择“create re ...

  8. SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码;

    情况一: ajax中传值时是乱码(后台可以获取到中文字符,但用@ResponseBody返回时前台为乱码) 情况二: Controller 中 request.getParameter()获取到的是乱 ...

  9. 编写自己的javascript功能库之Ajax(仿jquery方式)

    本人学习的是php,所以就用php跟js来演示代码了,主要是锻炼自己写js的能力,练练手而已. 下面这是我编写的操作ajax的代码功能,勉强让我称之为库吧.. js代码实例(tool.ajax.js) ...

  10. POJ1840 hash

    POJ1840 问题重述: 给定系数a1,a2, ..,a5,求满足a1 * x1 ^ 3 + a2 * x2 ^ 3 +... + a5 * x5 ^ 3 = 0的 xi 的组数.其中ai, xi都 ...