`
砺雪凝霜
  • 浏览: 156378 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何在Excel导出时加一个提示框

 
阅读更多

如何在Excel导出时加一个提示框

 (1)  问题描述

      Excel导出的时候由于数据量较大,加上项目用的数据库和外网不在同一个局域网内,导致导出数据的时候速度很慢。最后客户要求,在导出的时候加上一个提示框,当导出完毕后,提示框自动消失。

       这个问题比较棘手,因为导出数据的时候Action给前台返回的是流而不是文本,所以页面不会跳转,无论你Action里有没有配置跳转的页面地址,都不会跳转。

(2) 解决方案

      步骤一: 在js中设置一个标志位,Excel导出的Action提交前给一个默认的初始值“0”,显 

                        示提示框。

      步骤二: 当Excel导出数据后把标志位设置为“1”,该标志位为Action的成员变量

      步骤三: 另外在导出Excel方法所在的Action中增加一个方法,改方法的作用是查看标志位

                        的值有没有改变。

     步骤四: 当Excel导出的form表单提交后,用ajax每3秒向请求查看标志位的Action

     步骤五: 发现标志位的值发生改变后,ajax可以接受到成功的信息,最后把提示框隐藏。

       

(3) 代码

    前台页面代码:

var tIfRun = '${ifRun}';
function exportExcel(){  
    var exportTtype = $('#select option:selected') .val();;
    var type0 = document.getElementById("type0").value;
    var type1 = document.getElementById("type1").value;
    var type2 = document.getElementById("type2").value;
//显示提示框
    document.getElementById("tc").style.display="block";
    document.getElementById("bg").style.display="block";  
    document.getElementById("myForm").submit();
    tIfRun='1';
}
function timeCallBack() {
	if(tIfRun == '1') {
		htmlobj = $.ajax({url:"<%=basePath%>timeCallBack.action", async:false, type:"POST"});
		if(htmlobj.responseText == 'ok') {
	  //隐藏提示框
                   document.getElementById("tc").style.display ="none";
			document.getElementById("bg").style.display ="none";
			tIfRun = '';
		}
	}
}

 后台:

 

public void timeCallBack() throws IOException {
    HttpServletResponse httpResponse = ServletActionContext.getResponse();
     httpResponse.setContentType("text/xml");
  httpResponse.setHeader("Content-Type", "text/xml; charset=UTF-8");
  httpResponse.setHeader("Cache-Control", "no-cache, must-revalidate");
  PrintWriter out = httpResponse.getWriter(); // 定义一个输出流
  if (!"1".equals(LockIndex.getInstance().getIndexRunFlag())) {
   out.print("ok");
  }

 注意:timeCallBack() 方法和导出的方法都是放在同一个ExportAction.ava文件中的,标志位为

             ExportAction.ava的成员变量。当然这个程序也可以把提示框改成一个滚动条的样式。

(4)  总结这个程序的精髓之处在于利用了ajax请求了和导出的方法在同一个Action类里的方法,

       从而可以根据标志来判断数据有没有导出。

分享到:
评论

相关推荐

    excel导出支持前台和后台导出

    在Struts2框架中,可以通过Action类创建一个处理导出请求的方法,使用POI生成Excel文件,然后返回到前端供用户下载。 2. Struts2集成:Struts2是一个流行的Java Web框架,提供了Action、Interceptor等概念,方便处理...

    易语言导出超级列表框数据到Excel源码

    在本资源中,我们关注的是如何使用易语言将超级列表框中的数据导出到Excel文件中。这个过程涉及到易语言的控件操作、数据处理以及与外部应用程序(如Microsoft Excel)的交互。 超级列表框是易语言提供的一种常见...

    spreadjs_导出 Excel 显示复选框而不是布尔值-demo.zip

    2. **demo.html**:这是示例的主HTML文件,其中包含了SpreadJS组件的初始化代码,以及可能的交互逻辑,用于展示如何实现导出Excel时复选框的转换。 3. **gc.spread.sheets.all.14.1.1.min.js**:这是SpreadJS的核心...

    易语言超级列表框导出到Excel表格模块源码

    将超级列表框(报表列表框)导出为Excel表格文件。API+核心支持库,无第三方模块或支持库。易语言超级列表框导出到Excel表格模块源码例程程序调用API函数实现超级列表框导出到Excel表格。易语言超级列表框导出到Excel...

    Excel导出时不要表头.txt

    有时我们可能需要将数据从数据库或其他数据源导出到Excel文件中,但在这个过程中,我们并不希望将表头一同导出。本文将详细介绍如何在使用C#进行Excel数据导出时避免导出表头。 #### 二、基础知识准备 1. **了解C#...

    易语言超级列表框excel导入导出

    在这个主题中,我们将深入探讨如何使用易语言实现超级列表框与Excel之间的数据导入导出,以及涉及到的关键技术。 首先,我们要明白Excel导入导出的核心在于处理数据的读取和写入。在易语言中,这通常需要借助第三方...

    JavaScript 实现 Excel数据导出 支持多个Sheet页导出

    在前端开发中,有时我们需要为用户提供将数据导出到Excel的功能,这在处理大量表格数据时尤为实用。本文将深入探讨如何使用纯JavaScript实现JSON格式数据到Excel文件的导出,同时支持多个Sheet页的导出。这个功能...

    C#导出Excel 导出PDF

    首先,我们来看C#导出Excel的实现。Excel文件通常以`.xlsx`或`.xls`格式存储,C#可以借助Microsoft Office Interop库直接操作Excel对象,但这要求目标机器上安装了Office。另一种更灵活且无需依赖Office的方法是使用...

    Excel导出数据(根据Excel模板定义)

    在IT行业中,Excel作为一种强大的电子表格工具,常用于数据分析、报告制作和数据交换。"Excel导出数据(根据Excel模板定义)...使用Apache POI库,我们可以实现根据预设模板动态生成和导出Excel文件,满足各种业务需求。

    易语言超级列表框快速导出EXCEL源码

    本主题聚焦于一个特定的功能实现:如何将易语言中的超级列表框数据快速导出到Excel文件。这个过程涉及到易语言编程、数据处理以及与Microsoft Excel接口的使用。 首先,我们要理解“超级列表框”是易语言中提供的一...

    excel 报表导出 模块框架 jar

    个人写的excel模板导出jar, 采用的是在excel中配置${\w-\w}类型标签,在 IExcelHandle接口集成类中实现具体的excel中报表值的计算. 提供源码和jar,其中有测试类和测试excel. 使用了java依赖倒置,将输出源,...

    Excel报表导出,复杂Excel模板导出(带单元格合并),jxls2

    除了单一Sheet的导出,`jxls2`还支持多Sheet的报表导出,这意味着可以在一个Excel文件中包含多个独立的数据集,这对于报告的组织和阅读非常有帮助。例如,可以将不同部门的数据分别放在不同的Sheet中,或者按照时间...

    新版excel导出控件.rar_donec1p_pb_pb excel_pb 导出_pb导出excel

    在这个场景中,"新版excel导出控件.rar_donec1p_pb_pb excel_pb 导出_pb导出excel" 的标题和描述提到了一个关键的开发需求:在PB应用中导出数据到Excel文件。 传统的PowerBuilder(PB)自身虽然提供了数据窗口...

    多个excel导出压缩成zip 文件 数据量大导出

    "多个Excel导出压缩成zip文件"的场景通常是为了解决数据量过大导致的文件管理不便、传输效率低以及存储空间占用过多等问题。下面我们将深入探讨这个话题,主要涵盖以下几个方面: 1. **大数据量导出**: - 当数据...

    Freemarker实现excel导出功能

    在提供的压缩包`freemarker总结-例子`中,可能包含了一个简单的示例项目,展示如何使用Freemarker和POI实现Excel导出。这个例子通常包括以下部分: 1. 一个`.ftl`模板文件,描述了Excel表格的布局。 2. Java代码,...

    导出Excel功能,导出Excel功能,导出Excel功能

    在IT领域,导出Excel功能是一项非常常见的需求,特别是在数据分析、报表生成以及数据共享等场景中。Excel作为一款强大的电子表格软件,因其易用性、灵活性和强大的计算能力,成为了企业和个人处理数据的首选工具。...

    excel 自定义列导出, excel导出

    标题说的很清楚,利用asm-3.1.jar,cglib-2.2.jar,commons-io-1.3.2.jar,poi-3.9-20121203.jar 开发的一个工具包。 其中用到字节码编码,反射,excel操作。...主要功能1、自定义列导出excel Main()类为测试用例

    EXCEL数据导入与导出超级列表框例程

    在这个“EXCEL数据导入与导出超级列表框例程”中,我们可以探讨以下几个核心知识点: 1. **数据导入**:Excel提供了多种数据导入方式,包括从文本文件(如CSV、TXT)、数据库(如SQL Server、Access)、网页和其它...

    导出Excel 一个Excel多个sheet

    在Excel中,一个工作簿(即我们通常所说的Excel文件)可以包含多个工作表,也就是...通过以上方法,我们可以灵活地管理和导出Excel中的多个Sheet,满足各种工作需求。熟练掌握这些技巧,能极大地提高Excel的使用效率。

    导出excel多个sheet.zip

    这个"导出excel多个sheet.zip"压缩包文件可能包含了一个使用Delphi编写的示例或库,用于帮助开发者实现这一功能。下面将详细解释这个过程涉及的知识点。 1. Delphi简介:Delphi是一款集成开发环境(IDE),主要用于...

Global site tag (gtag.js) - Google Analytics