如何在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文件,这是在处理和展示大量结构化数据时常用的一种方法。 首先,我们需要了解易语言中超级列表框的基本操作。超级列表框可以动态加载数据...
"多个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的使用效率。