java报表导出

在项目中一般导出报表用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="@[email protected](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"%>
<%
	String execlFileName = (String)request.getAttribute("execlFileName");
   	response.setHeader("Content-disposition","attachment; filename="+execlFileName+".xls");
   	response.setHeader("Pragma", "");
  	response.setHeader("Cache-Control", "");
%>
<!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>
时间: 2024-10-11 11:55:47

java报表导出的相关文章

Java报表工具FineReport导出EXCEL的四种API

在实际的应用中会经常需要将数据导出成excel,导出的方式除原样导出还有分页导出.分页分sheet导出和大数据量导出.对于excel 2003版,由于限制了每个sheet的最大行数和列数,大数据量导出时会默认时分多个sheet,而excel2007不会出现这样的问题.这些导出方式在JAVA程序中分别有不同的接口来实现:   1.原样导出 原样导出就是不预览直接导出excel 其程序接口代码如下:  outputStream = new FileOutputStream(new File("E:\

Java报表工具FineReport导出EXCEL的四种方式

在实际的应用中会经常需要将数据导出成excel,导出的方式除原样导出还有分页导出.分页分sheet导出和大数据量导出.对于excel2003版,限制了每个sheet的最大行数和列数,大数据量导出时会默认时分多个sheet,而excel2007不会出现这样的问题.这些导出方式在JAVA程序中分别有不同的接口来实现: 1.  原样导出 原样导出就是不预览直接导出excel 其程序接口代码如下: outputStream = new FileOutputStream(new File("E:\\Exc

kettle工具实现报表导出的初步搭建

1.下载kettle 国外网站:http://kettle.pentaho.org/需要FQ,下载慢 2.下载完成启动(windows)-->spoon.bat 3.进入界面,两个主要的tab页 4.第二个tab页里用到的 5. 第一步设定REST接口需要的参数(比如URL) 第二步调用REST接口 第三步使用JSON控件接收REST返回数据 第四步将返回数据输出到Excel中 6.url返回的json数据 7.运行结果: 8.如果自己链接数据库的话,会缺少数据库驱动,需要在lib包下面加上,如

Java报表小记之 JasperReports &amp; iReport

前言 说到Java报表工具,我接触过的只有FineReport(帆软)和JasperReports,这两个都用过,帆软是收费的而JasperReports是免费的,首先第一感觉帆软功能强大,支持导出的报表格式丰富,但是坑很多(一个格子的属性设置不对整个报表都会乱掉,比如左父格什么的,而且有时少量数据测试是没问题但数据量一大报表就乱掉了,不管什么原因引起,首先这就直接导致不容易发现问题,去年项目上线后就被这样坑过一次),再来谈谈JasperReports,开源免费,使用方面和帆软比是不如它强大,不

FineReport实线java报表填报录入的效果图

Java报表-固定资产(增删改) Java报表-集团財务报表 Java报表-简单自由填报 Java报表-客户跟踪数据回填 Java报表-客户关系复杂填报 Java报表-批量导入 Java报表-批量删除 Java报表-通讯录(自匹配) Java报表-土地出让 Java报表-主从表多源填报

java excel导出

1.  Excel导出的核心方法在ExportExcel类中,使用时请将该类完整的引入. 1 import java.io.IOException; 2 import java.io.OutputStream; 3 import java.lang.reflect.Field; 4 import java.lang.reflect.InvocationTargetException; 5 import java.lang.reflect.Method; 6 import java.text.Si

eclipse导出jar(java打包导出jar)

有时候需要将j2se工程导出,这样可以在别处运作,就不必拘泥于开发感觉中才能运行了.具体做法如下:方法一:(工程没有引用外部jar包时,直接导出) 选中工程---->右键,Export...--->Java--->JAR file--->next-->选择jar file的路径及名称-->next-->next---> 选择main class--->finish. 方法2: 当工程引用了其他的外部jar时,由于eclipse不支持同时导出外部jar包

【HOW】如何限制Reporting Services报表导出功能中格式选项

Reporting Services报表导出功能中缺省会提供多种导出格式选项,但很多情况下不需要全部的格式选项,因此需要对这些选项进行限制.下面我们以SQL Server 2008 R2为例来说明对这些选项进行限制的方法. 1. 打开报表服务配置文件:"C:\Program Files\Microsoft SQL Server\MSRS10_50.QUIST\Reporting Services\Report Server\ rsreportserver.config". 2. 在上述

Silverlight程序之:简单的Excel报表导出方法

Silverlight程序之:简单的Excel报表导出方法 概述 介绍一种简单的Excel报表导出方法. 页面效果 导出效果: 首先我们创建一个Excel表格,将我们的基本信息格式都设置好,如下图所示: 将创建好的Excel表格另存为网页. 打开VS将创建好的报表模版网页文件拖到Web项目新建的Report文件夹 修改其后缀名为aspx 打开文件 添加头部代码 <%@ Page Language="C#" ContentType="application/vnd.ms-