如何在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类里的方法,
从而可以根据标志来判断数据有没有导出。
相关推荐
在Struts2框架中,可以通过Action类创建一个处理导出请求的方法,使用POI生成Excel文件,然后返回到前端供用户下载。 2. Struts2集成:Struts2是一个流行的Java Web框架,提供了Action、Interceptor等概念,方便处理...
在本资源中,我们关注的是如何使用易语言将超级列表框中的数据导出到Excel文件中。这个过程涉及到易语言的控件操作、数据处理以及与外部应用程序(如Microsoft Excel)的交互。 超级列表框是易语言提供的一种常见...
2. **demo.html**:这是示例的主HTML文件,其中包含了SpreadJS组件的初始化代码,以及可能的交互逻辑,用于展示如何实现导出Excel时复选框的转换。 3. **gc.spread.sheets.all.14.1.1.min.js**:这是SpreadJS的核心...
将超级列表框(报表列表框)导出为Excel表格文件。API+核心支持库,无第三方模块或支持库。易语言超级列表框导出到Excel表格模块源码例程程序调用API函数实现超级列表框导出到Excel表格。易语言超级列表框导出到Excel...
有时我们可能需要将数据从数据库或其他数据源导出到Excel文件中,但在这个过程中,我们并不希望将表头一同导出。本文将详细介绍如何在使用C#进行Excel数据导出时避免导出表头。 #### 二、基础知识准备 1. **了解C#...
在这个主题中,我们将深入探讨如何使用易语言实现超级列表框与Excel之间的数据导入导出,以及涉及到的关键技术。 首先,我们要明白Excel导入导出的核心在于处理数据的读取和写入。在易语言中,这通常需要借助第三方...
在前端开发中,有时我们需要为用户提供将数据导出到Excel的功能,这在处理大量表格数据时尤为实用。本文将深入探讨如何使用纯JavaScript实现JSON格式数据到Excel文件的导出,同时支持多个Sheet页的导出。这个功能...
首先,我们来看C#导出Excel的实现。Excel文件通常以`.xlsx`或`.xls`格式存储,C#可以借助Microsoft Office Interop库直接操作Excel对象,但这要求目标机器上安装了Office。另一种更灵活且无需依赖Office的方法是使用...
在IT行业中,Excel作为一种强大的电子表格工具,常用于数据分析、报告制作和数据交换。"Excel导出数据(根据Excel模板定义)...使用Apache POI库,我们可以实现根据预设模板动态生成和导出Excel文件,满足各种业务需求。
本主题聚焦于一个特定的功能实现:如何将易语言中的超级列表框数据快速导出到Excel文件。这个过程涉及到易语言编程、数据处理以及与Microsoft Excel接口的使用。 首先,我们要理解“超级列表框”是易语言中提供的一...
个人写的excel模板导出jar, 采用的是在excel中配置${\w-\w}类型标签,在 IExcelHandle接口集成类中实现具体的excel中报表值的计算. 提供源码和jar,其中有测试类和测试excel. 使用了java依赖倒置,将输出源,...
除了单一Sheet的导出,`jxls2`还支持多Sheet的报表导出,这意味着可以在一个Excel文件中包含多个独立的数据集,这对于报告的组织和阅读非常有帮助。例如,可以将不同部门的数据分别放在不同的Sheet中,或者按照时间...
在这个场景中,"新版excel导出控件.rar_donec1p_pb_pb excel_pb 导出_pb导出excel" 的标题和描述提到了一个关键的开发需求:在PB应用中导出数据到Excel文件。 传统的PowerBuilder(PB)自身虽然提供了数据窗口...
"多个Excel导出压缩成zip文件"的场景通常是为了解决数据量过大导致的文件管理不便、传输效率低以及存储空间占用过多等问题。下面我们将深入探讨这个话题,主要涵盖以下几个方面: 1. **大数据量导出**: - 当数据...
在提供的压缩包`freemarker总结-例子`中,可能包含了一个简单的示例项目,展示如何使用Freemarker和POI实现Excel导出。这个例子通常包括以下部分: 1. 一个`.ftl`模板文件,描述了Excel表格的布局。 2. Java代码,...
在IT领域,导出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数据导入与导出超级列表框例程”中,我们可以探讨以下几个核心知识点: 1. **数据导入**:Excel提供了多种数据导入方式,包括从文本文件(如CSV、TXT)、数据库(如SQL Server、Access)、网页和其它...
在Excel中,一个工作簿(即我们通常所说的Excel文件)可以包含多个工作表,也就是...通过以上方法,我们可以灵活地管理和导出Excel中的多个Sheet,满足各种工作需求。熟练掌握这些技巧,能极大地提高Excel的使用效率。
这个"导出excel多个sheet.zip"压缩包文件可能包含了一个使用Delphi编写的示例或库,用于帮助开发者实现这一功能。下面将详细解释这个过程涉及的知识点。 1. Delphi简介:Delphi是一款集成开发环境(IDE),主要用于...