一种基于互联网的Excel插件数据批量提取系统及方法

文档序号:6365499阅读:119来源:国知局
专利名称:一种基于互联网的Excel插件数据批量提取系统及方法
技术领域
本发明属于计算机网络技术领域,涉及一种数据批量提取系统,尤其涉及一种基于互联网的Excel插件数据批量提取系统;同时,本发明还涉及一种基于互联网的Excel插件数据批量提取方法。
背景技术
Microsoft Off ice套件中的Excel是目前使用量最广的电子表格软件,使用Excel插件可以非常方便的进行数据计算和处理。Excel支持外挂第三方的插件,通过插件的方式可以非常方便的将数据集成到Excel当中。由于Excel内置的数据处理方式是使用VBA(Visual Basic for Application)进行计算驱动的,每个单元格的单次计算一般而言只能处理一个单元格的数据,而一个单元格的计算又会导致一次服务器请求。这种计算模式如果提取的数据源在用户本机或者在用户内部网络当中,由于有比较高的系统10进行保证,在系统处理速度上往往不会有太大的性能问题。然而,这种工作模式如果应用到互联网当中,由于互联网网络环境比较复杂,而且网络带宽比较有限,在处理一些规模比较大的电子表格上,这种模式就会造成网络瓶颈,最终导致用户的使用体验大大降低,或者服务器由于请求次数过多而当机。有鉴于此,如今迫切需要一种方便基于网络的Excel 二次开发的Excel插件数据批量提取系统。

发明内容
本发明所要解决的技术问题是提供一种基于互联网的Excel插件数据批量提取系统,可提闻数据的提取效率。此外,本发明还提供一种基于互联网的Excel插件数据批量提取方法,可提高数据的提取效率。为解决上述技术问题,本发明采用如下技术方案一种基于互联网的Excel插件数据批量提取系统,所述系统包括VBA驱动脚本模块,用以生成VBA驱动脚本,作为Excel插件和Excel的函数对接的桥梁;用户对Excel函数的调用,通过VBA驱动脚本模块被函数采集模块所采集;VBA驱动脚本由插件进行装载,VBA驱动脚本模块内部定义好的用户函数可以被用户直接访问;用户函数内部将对用户函数的调用映射到函数采集模块;VBA驱动脚本模块完成函数映射后,先直接返回一个空值给Excel,以便下一个函数调用能够继续进行;VBA驱动脚本仅仅是计算驱动部分,本身不负责复杂的计算;通过将复杂的计算逻辑迁移到后端的服务器,可完成复杂的应用;函数采集模块,用以负责采集VBA驱动脚本模块所映射过来的用户函数;映射过来的用户函数信息包含函数名、函数对应的参数和具体的参数值;函数采集模块主要将函数信息输入函数队列;函数队 列是个函数暂存的容器,通过将函数保存到一个队列当中,记录了 Excel对用户函数的调用顺序;当函数采集模块将函数采集到一定量、或者采集过程确认结束后,函数分析模块将开始进行工作;函数分析模块,用以分析函数队列中用户请求的函数,通过对函数的参数进行分析,分析放入队列的函数是否存在于缓存当中;如果函数存在于缓存当中,直接返回结果,加快数据的处理速度;否则,将用户函数交给批量打包模块进行打包处理;函数分析的过程主要通过分析函数的名称和参数值来判断该函数是否进行过计算;函数缓存模块,用以缓存请求的函数结果数据;EXcel调用发生一次或多次,通过缓存函数结果数据,减少对服务器的数据请求次数;函数缓存模块在存储时,采用设定的压缩技术保存在内存当中,在效率和空间上取得平衡;计算结构在内存中被编制索引,通过索弓丨,非常方便的对结果继续定位;或者,报告给调用者不存在有效的数据;函数批量请求模块,用以将分析好的函数批量打包;通过将函数批量打包,将很多次的HTTP请求合并到一个更大的请求当中;通过HTTP协议,将返回的数据交给函数缓存模块;请求数据被进行压缩,返回的数据也被进行压缩;通过控制请求的数据包的大小,来控制每个请求的强度规模;函数批量请求模块同时负责网络上的通讯,并监测通讯的返回状态;函数回填模块,用以通过调用Excel COM接口,来触发Excel的重算过程;函数回填模块同时用于控制数据在Excel的显示过程;EXcel数据的填充过程是个被动过程,必须触发Excel的重算过程,通过用户函数的正常返回结算结果,进而完成单元格的填充。一种基于互联网的Excel插件数据批量提取系统,所述系统包括VBA驱动脚本模块,用以生成VBA驱动脚本,作为Excel插件和Excel的函数对接的桥梁;用户对Excel函数的调用,通过VBA驱动脚本模块被函数采集模块所采集;VBA驱动脚本由插件进行装载,VBA驱动脚本模块内部定义好的用户函数可以被用户直接访问;用户函数内部将对用户函数的调用映射到函数采集模块;函数采集模块,用以负责采集VBA驱动脚本模块所映射过来的用户函数;函数分析模块,用以分析函数队列中用户请求的函数,通过对函数的参数进行分析,分析放入队列的函数是否存在缓存当中;如果缓存当中存在,直接返回结果,加快数据的处理速度;否则,将用户函数交给批量打包模块进行打包处理;函数缓存模块,用以缓存请求的函数结果数据;EXCel调用发生一次或多次,通过缓存函数结果数据,减少对服务器的数据请求次数;函数批量请求模块,用以将分析好的函数批量打包;函数回填模块,用以通过调用Excel COM接口,来触发Excel的重算过程;函数回填模块同时用于控制数据在Excel的显示过程。作为本发明的一种优选方案,所述VBA驱动脚本模块完成函数映射后,先直接返回一个空值给Excel,以便下一个函数调用能够继续进行;VBA驱动脚本仅仅是计算驱动部分,本身不负责复杂的计算;通过将复杂的计算逻辑迁移到后端的服务器,可完成复杂的应用。作为本发明的一种优选方案,所述函数采集模块采集到的映射过来的用户函数信息包含函数名、函数对应的参数和具体的参数值;函数采集模块主要将函数信息输入函数队列;函数队列是个函数暂存的容器,通过将函数保存到一个队列当中,记录了 Excel对用户函数的调用顺序;当函数采集模块将函数采集到一定量、或者采集过程确认结束后,函数分析模块将开始进行工作;所述函数分析模块进行函数分析的过程主要通过分析函数的名称和参数值来判断该函数是否进行过计算。作为本发明的一种优选方案,所述函数缓存模块在存储时,采用设定的压缩技术保存在内存当中,在效率和空间上取得平衡;计算结构在内存中被编制索引,通过索引,非常方便的对结果继续定位;或者,报告给调用者不存在有效的数据;通过所述函数批量请求模块将函数批量打包,将很多次的HTTP请求合并到一个更大的请求当中;通过HTTP协议,将返回的数据交给函数缓存模块;请求数据被进行压缩,返回的数据也被进行压缩;通过控制请求的数据包的大小,来控制每个请求的强度规模;函数批量请求模块同时负责网络上的通讯,并监测通讯的返回状态;作为本发明的一种优选方案,所述函数回填模块进行Excel数据的填充过程是个被动过程,必须触发Excel的重算过程,通过用户函数的正常返回结算结果,进而完成单元格的填充。一种上述数据批量提取系统的数据批量提取方法,所述方法包括如下步骤步骤S1、VBA驱动脚本模块生成VBA驱动脚本,作为Excel插件和Excel的函数对接的桥梁;用户对Excel函数的调用,通过VBA驱动脚本模块被函数采集模块所采集;VBA驱动脚本由插件进行装载,VBA驱动脚本模块内部定义好的用户函数可以被用户直接访问;用户函数内部将对用户函数的调用映射到函数采集模块; 步骤S2、函数采集模块采集VBA驱动脚本模块所映射过来的用户函数;步骤S3、函数分析模块分析函数队列中用户请求的函数,通过对函数的参数进行分析,分析放入队列的函数是否存在缓存当中;如果缓存当中存在,直接返回结果,加快数据的处理速度;否则,将用户函数交给批量打包模块进行打包处理;步骤S4、函数缓存模块缓存请求的函数结果数据;EXcel调用发生一次或多次,通过缓存函数结果数据,减少对服务器的数据请求次数;步骤S5、函数批量请求模块将分析好的函数批量打包;步骤S6、函数回填模块通过调用Excel COM接口,来触发Excel的重算过程;函数回填模块同时用于控制数据在Excel的显示过程。作为本发明的一种优选方案,所述步骤SI中,VBA驱动脚本模块完成函数映射后,先直接返回一个空值给Excel,以便下一个函数调用能够继续进行;VBA驱动脚本仅仅是计算驱动部分,本身不负责复杂的计算;通过将复杂的计算逻辑迁移到后端的服务器,可完成复杂的应用; 所述步骤S2中,函数采集模块采集到的映射过来的用户函数信息包含函数名、函数对应的参数和具体的参数值;函数采集模块主要将函数信息输入函数队列;函数队列是个函数暂存的容器,通过将函数保存到一个队列当中,记录了 Excel对用户函数的调用顺序;当函数采集模块将函数采集到一定量、或者采集过程确认结束后,函数分析模块将开始进行工作;所述步骤S3中,函数分析模块进行函数分析的过程主要通过分析函数的名称和参数值来判断该函数是否进行过计算。作为本发明的一种优选方案,所述步骤S4中,函数缓存模块在存储时,采用设定的压缩技术保存在内存当中,在效率和空间上取得平衡;计算结构在内存中被编制索引,通过索引,非常方便的对结果继续定位;或者,报告给调用者不存在有效的数据;所述步骤S5中,通过所述函数批量请求模块将函数批量打包,将很多次的HTTP请求合并到一个更大的请求当中;通过HTTP协议,将返回的数据交给函数缓存模块;请求数据被进行压缩,返回的数据也被进行压缩;通过控制请求的数据包的大小,来控制每个请求 的强度规模;函数批量请求模块同时负责网络上的通讯,并监测通讯的返回状态;所述步骤S6中,函数回填模块进行Excel数据的填充过程是个被动过程,必须触发Excel的重算过程,通过用户函数的正常返回结算结果,进而完成单元格的填充。本发明的有益效果在于本发明提出的基于互联网的Excel插件数据批量提取系统及方法,优化了 Excel缺省的数据处理方式,通过将Excel的数据请求打包,进而将缺省的单个单元格单次提取模式修改为多个单元格批量提取,进而完成服务器请求次数的优化,而提升数据的提取效率。根据完成后的实际测试结果,优化后的实际提取效率比优化前要快十倍以上。如果用户的Excel模板规模越大,获得的性能提升也就越大。该发明使Excel对互联网的海量数据访问提供了可能。在金融领域,使用Excel插件提取金融数据是一种比较典型的应用。由于金融数据量比较大,金融数据不便于部署在用户本地网络进行,更可行的方案是请求部署在互联网上的服务器,而其中的服务和数据由相关的金融信息供应商进行提供。使用本加速技术,大大提供了数据的访问和处理能力,可以将很复杂的数据计算放入后端进行,同时,又大大的降低了数据频繁请求的造成不必要的网络开销。


图I为本发明Excel插件数据批量提取方法的流程图。
具体实施例方式下面结合附图详细说明本发明的优选实施例。实施例一本发明揭示了一种基于互联网的Excel插件数据批量提取系统,所述系统包括VBA驱动脚本模块、函数采集模块、函数分析模块、函数缓存模块、函数批量请求模块、函数回填模块。各模块的功能、作用关系及实现方式如下VBA驱动脚本模块生成VBA驱动脚本,作为Excel插件和Excel的函数对接的桥梁;用户对Excel函数的调用,通过VBA驱动脚本模块被函数采集模块所采集;VBA驱动脚本由插件进行装载,VBA驱动脚本模块内部定义好的用户函数可以被用户直接访问;用户函数内部将对用户函数的调用映射到函数采集模块;VBA驱动脚本模块完成函数映射后,先直接返回一个空值给Excel,以便下一个函数调用能够继续进行;VBA驱动脚本仅仅是计算驱动部分,本身不负责复杂的计算;通过将复杂的计算逻辑迁移到后端的服务器,可完成复杂的应用。函数采集模块负责采集VBA驱动脚本模块所映射过来的用户函数;映射过来的用户函数信息包含函数名、函数对应的参数和具体的参数值;函数采集模块主要将函数信息输入函数队列;函数队列是个函数暂存的容器,通过将函数保存到一个队列当中,记录了Excel对用户函数的调用顺序;当函数采集模块将函数采集到一定量、或者采集过程确认结束后,函数分析模块将开始进行工作。函数分析模块分析函数队列中用户请求的函数,通过对函数的参数进行分析,分析放入队列的函数是否存在于缓存当中;如果函数存在于缓存当中,直接返回结果,加快数据的处理速度;否则,将用户函数交给批量打包模块进行打包处理;函数分析的过程主要通过分析函数的名称和参数值来判断该函数是否进行过计算。函数缓存模块缓存请求的函数结果数据;EXCel调用发生一次或多次,通过缓存函数结果数据,减少对服务器的数据请求次数;函数缓存模块在存储时,采用设定的压缩技术保存在内存当中,在效率和空间上取得平衡;计算结构在内存中被编制索引,通过索引,非常方便的对结果继续定位;或者,报告给调用者不存在有效的数据。函数批量请求模块将分析好的函数批量打包;通过将函数批量打包,将很多次的HTTP请求合并到一个更大的请求当中;通过HTTP协议,将返回的数据交给函数缓存模块;请求数据被进行压缩,返回的数据也被进行压缩;通过控制请求的数据包的大小,来控制每个请求的强度规模;函数批量请求模块同时负责网络上的通讯,并监测通讯的返回状态。函数回填模块通过调用Excel COM接口,来触发Excel的重算过程;函数回填模块同时用于控制数据在Excel的显示过程;EXcel数据的填充过程是个被动过程,必须触发Excel的重算过程,通过用户函数的正常返回结算结果,进而完成单元格的填充。以上介绍了本发明数据批量提取系统的组成,本发明在揭示上述数据批量提取系统的同时,还揭示一种上述数据批量提取系统的数据批量提取方法;请参阅图1,所述方法包括如下步骤步骤S1、VBA驱动脚本模块生成VBA驱动脚本,作为Excel插件和Excel的函数对接的桥梁;用户对Excel函数的调用,通过VBA驱动脚本模块被函数采集模块所采集;VBA驱动脚本由插件进行装载,VBA驱动脚本模块内部定义好的用户函数可以被用户直接访问;用户函数内部将对用户函数的调用映射到函数采集模块;VBA驱动脚本模块完成函数映射后,先直接返回一个空值给Excel,以便下一个函数调用能够继续进行;VBA驱动脚本仅仅是计算驱动部分,本身不负责复杂的计算;通过将复杂的计算逻辑迁移到后端的服务器,可完成复杂的应用;步骤S2、函数采集模块采集VBA驱动脚本模块所映射过来的用户函数;函数采集模块采集到的映射过来的用户函数信息包含函数名、函数对应的参数和具体的参数值;函数采集模块主要将函数信息输入函数队列;函数队列是个函数暂存的容器,通过将函数保存到一个队列当中,记录了 Excel对用户函数的调用顺序;当函数采集模块将函数采集到一定量、或者采集过程确认结束后,函数分析模块将开始进行工作;步骤S3、函数分析模块分析函数队列中用户请求的函数,通过对函数的参数进行分析,分析放入队列的函数是否存在缓存当中;如果缓存当中存在,直接返回结果,加快数据的处理速度;否则,将用户函数交给批量打包模块进行打包处理;函数分析模块进行函数分析的过程主要通过分析函数的名称和参数值来判断该函数是否进 行过计算。步骤S4、函数缓存模块缓存请求的函数结果数据;EXcel调用发生一次或多次,通过缓存函数结果数据,减少对服务器的数据请求次数;函数缓存模块在存储时,采用设定的压缩技术保存在内存当中,在效率和空间上取得平衡;计算结构在内存中被编制索引,通过索引,非常方便的对结果继续定位;或者,报告给调用者不存在有效的数据;步骤S5、函数批量请求模块将分析好的函数批量打包;通过所述函数批量请求模块将函数批量打包,将很多次的HTTP请求合并到一个更大的请求当中;通过HTTP协议,将返回的数据交给函数缓存模块;请求数据被进行压缩,返回的数据也被进行压缩;通过控制请求的数据包的大小,来控制每个请求的强度规模;函数批量请求模块同时负责网络上的通讯,并监测通讯的返回状态;步骤S6、函数回填模块通过调用Excel COM接口,来触发Excel的重算过程;函数回填模块同时用于控制数据在Excel的显示过程。函数回填模块进行Excel数据的填充过程是个被动过程,必须触发Excel的重算过程,通过用户函数的正常返回结算结果,进而完成单元格的填充。
综上所述,本发明提出的基于互联网的Excel插件数据批量提取系统及方法,优化了 Excel缺省的数据处理方式,通过将Excel的数据请求打包,进而将缺省的单个单元格单次提取模式修改为多个单元格批量提取,进而完成服务器请求次数的优化,而提升数据的提取效率。根据完成后的实际测试结果,优化后的实际提取效率比优化前要快十倍以上。如果用户的Excel模板规模越大,获得的性能提升也就越大。该发明使Excel对互联网的海量数据访问提供了可能。在金融领域,使用Excel插件提取金融数据是一种比较典型的应用。由于金融数据量比较大,金融数据不便于部署在用户本地网络进行,更可行的方案是请求部署在互联网上的服务器,而其中的服务和数据由相关的金融信息供应商进行提供。使用本加速技术,大大提供了数据的访问和处理能力,可以将很复杂的数据计算放入后端进行,同时,又大大的降低了数据频繁请求的造成不必要的网络开销。这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。
权利要求
1.一种基于互联网的Excel插件数据批量提取系统,其特征在于,所述系统包括 VBA驱动脚本模块,用以生成VBA驱动脚本,作为Excel插件和Excel的函数对接的桥梁;用户对Excel函数的调用,通过VBA驱动脚本模块被函数采集模块所采集;VBA驱动脚本由插件进行装载,VBA驱动脚本模块内部定义好的用户函数可以被用户直接访问;用户函数内部将对用户函数的调用映射到函数采集模块;VBA驱动脚本模块完成函数映射后,先直接返回一个空值给Excel,以便下一个函数调用能够继续进行;VBA驱动脚本仅仅是计算驱动部分,本身不负责复杂的计算;通过将复杂的计算逻辑迁移到后端的服务器,可完成复杂的应用; 函数采集模块,用以负责采集VBA驱动脚本模块所映射过来的用户函数;映射过来的用户函数信息包含函数名、函数对应的参数和具体的参数值;函数采集模块主要将函数信息输入函数队列;函数队列是个函数暂存的容器,通过将函数保存到一个队列当中,记录了Excel对用户函数的调用顺序;当函数采集模块将函数采集到一定量、或者采集过程确认结束后,函数分析模块将开始进行工作; 函数分析模块,用以分析函数队列中用户请求的函数,通过对函数的参数进行分析,分析放入队列的函数是否存在于缓存当中;如果函数存在于缓存当中,直接返回结果,加快数据的处理速度;否则,将用户函数交给批量打包模块进行打包处理;函数分析的过程主要通过分析函数的名称和参数值来判断该函数是否进行过计算; 函数缓存模块,用以缓存请求的函数结果数据;EXCel调用发生一次或多次,通过缓存函数结果数据,减少对服务器的数据请求次数;函数缓存模块在存储时,采用设定的压缩技术保存在内存当中,在效率和空间上取得平衡;计算结构在内存中被编制索引,通过索引,非常方便的对结果继续定位;或者,报告给调用者不存在有效的数据; 函数批量请求模块,用以将分析好的函数批量打包;通过将函数批量打包,将很多次的HTTP请求合并到一个更大的请求当中;通过HTTP协议,将返回的数据交给函数缓存模块;请求数据被进行压缩,返回的数据也被进行压缩;通过控制请求的数据包的大小,来控制每个请求的强度规模;函数批量请求模块同时负责网络上的通讯,并监测通讯的返回状态;函数回填模块,用以通过调用Excel COM接口,来触发Excel的重算过程;函数回填模块同时用于控制数据在Excel的显示过程;EXcel数据的填充过程是个被动过程,必须触发Excel的重算过程,通过用户函数的正常返回结算结果,进而完成单元格的填充。
2.一种基于互联网的Excel插件数据批量提取系统,其特征在于,所述系统包括 VBA驱动脚本模块,用以生成VBA驱动脚本,作为Excel插件和Excel的函数对接的桥梁;用户对Excel函数的调用,通过VBA驱动脚本模块被函数采集模块采集;VBA驱动脚本由插件进行装载,VBA驱动脚本模块内部定义好的用户函数可以被用户直接访问;用户函数内部将对用户函数的调用映射到函数采集模块; 函数采集模块,用以负责采集VBA驱动脚本模块所映射过来的用户函数; 函数分析模块,用以分析函数队列中用户请求的函数,通过对函数的参数进行分析,分析放入队列的函数是否存在缓存当中;如果缓存当中存在,直接返回结果,加快数据的处理速度;否则,将用户函数交给批量打包模块进行打包处理; 函数缓存模块,用以缓存请求的函数结果数据;EXCel调用发生一次或多次,通过缓存函数结果数据,减少对服务器的数据请求次数;函数批量请求模块,用以将分析好的函数批量打包; 函数回填模块,用以通过调用Excel COM接口,来触发Excel的重算过程;函数回填模块同时用于控制数据在Excel的显示过程。
3.根据权利要求2所述的基于互联网的Excel插件数据批量提取系统,其特征在于 所述VBA驱动脚本模块完成函数映射后,先直接返回一个空值给Excel,以便下一个函数调用能够继续进行;VBA驱动脚本仅仅是计算驱动部分,本身不负责复杂的计算;通过将复杂的计算逻辑迁移到后端的服务器,可完成复杂的应用。
4.根据权利要求2所述的基于互联网的Exce l插件数据批量提取系统,其特征在于 所述函数采集模块采集到的映射过来的用户函数信息包含函数名、函数对应的参数和具体的参数值;函数采集模块主要将函数信息输入函数队列;函数队列是个函数暂存的容器,通过将函数保存到一个队列当中,记录了 Excel对用户函数的调用顺序;当函数采集模块将函数采集到一定量、或者采集过程确认结束后,函数分析模块将开始进行工作; 所述函数分析模块进行函数分析的过程主要通过分析函数的名称和参数值来判断该函数是否进行过计算。
5.根据权利要求2所述的基于互联网的Excel插件数据批量提取系统,其特征在于 所述函数缓存模块在存储时,采用设定的压缩技术保存在内存当中,在效率和空间上取得平衡;计算结构在内存中被编制索引,通过索引,非常方便的对结果继续定位;或者,报告给调用者不存在有效的数据; 通过所述函数批量请求模块将函数批量打包,将很多次的HTTP请求合并到一个更大的请求当中;通过HTTP协议,将返回的数据交给函数缓存模块;请求数据被进行压缩,返回的数据也被进行压缩;通过控制请求的数据包的大小,来控制每个请求的强度规模;函数批量请求模块同时负责网络上的通讯,并监测通讯的返回状态。
6.根据权利要求2所述的基于互联网的Excel插件数据批量提取系统,其特征在于 所述函数回填模块进行Excel数据的填充过程是个被动过程,必须触发Excel的重算过程,通过用户函数的正常返回结算结果,进而完成单元格的填充。
7.—种权利要求2所述数据批量提取系统的数据批量提取方法,其特征在于,所述方法包括如下步骤 步骤S1、VBA驱动脚本模块生成VBA驱动脚本,作为Excel插件和Excel的函数对接的桥梁;用户对Excel函数的调用,通过VBA驱动脚本模块被函数采集模块所采集;VBA驱动脚本由插件进行装载,VBA驱动脚本模块内部定义好的用户函数可以被用户直接访问;用户函数内部将对用户函数的调用映射到函数采集模块; 步骤S2、函数采集模块采集VBA驱动脚本模块所映射过来的用户函数; 步骤S3、函数分析模块分析函数队列中用户请求的函数,通过对函数的参数进行分析,分析放入队列的函数是否存在缓存当中;如果缓存当中存在,直接返回结果,加快数据的处理速度;否则,将用户函数交给批量打包模块进行打包处理; 步骤S4、函数缓存模块缓存请求的函数结果数据;EXcel调用发生一次或多次,通过缓存函数结果数据,减少对服务器的数据请求次数; 步骤S5、函数批量请求模块将分析好的函数批量打包; 步骤S6、函数回填模块通过调用Excel COM接口,来触发Excel的重算过程;函数回填模块同时用于控制数据在Excel的显示过程。
8.根据权利要求7所述的数据批量提取方法,其特征在于 所述步骤SI中,VBA驱动脚本模块完成函数映射后,先直接返回一个空值给Excel,以便下一个函数调用能够继续进行;VBA驱动脚本仅仅是计算驱动部分,本身不负责复杂的计算;通过将复杂的计算逻辑迁移到后端的服务器,可完成复杂的应用; 所述步骤S2中,函数采集模块采集到的映射过来的用户函数信息包含函数名、函数对应的参数和具体的参数值;函数采集模块主要将函数信息输入函数队列;函数队列是个函数暂存的容器,通过将函数保存到一个队列当中,记录了 Excel对用户函数的调用顺序;当函数采集模块将函数采集到一定量、或者采集过程确认结束后,函数分析模块将开始进行工作; 所述步骤S3中,函数分析模块进行函数分析的过程主要通过分析函数的名称和参数值来判断该函数是否进行过计算。
9.根据权利要求7所述的数据批量提取方法,其特征在于 所述步骤S4中,函数缓存模块在存储时,采用设定的压缩技术保存在内存当中,在效率和空间上取得平衡;计算结构在内存中被编制索引,通过索引,非常方便的对结果继续定位;或者,报告给调用者不存在有效的数据; 所述步骤S5中,通过所述函数批量请求模块将函数批量打包,将很多次的HTTP请求合并到一个更大的请求当中;通过HTTP协议,将返回的数据交给函数缓存模块;请求数据被进行压缩,返回的数据也被进行压缩;通过控制请求的数据包的大小,来控制每个请求的强度规模;函数批量请求模块同时负责网络上的通讯,并监测通讯的返回状态; 所述步骤S6中,函数回填模块进行Excel数据的填充过程是个被动过程,必须触发Excel的重算过程,通过用户函数的正常返回结算结果,进而完成单元格的填充。
全文摘要
本发明揭示了一种基于互联网的Excel插件数据批量提取系统及方法,所述系统包括VBA驱动脚本模块、函数采集模块、函数分析模块、函数缓存模块、函数批量请求模块、函数回填模块。VBA驱动脚本模块生成VBA驱动脚本;函数采集模块采集VBA驱动脚本模块所映射过来的用户函数;函数分析模块分析函数队列中用户请求的函数,通过对函数的参数进行分析,分析放入队列的函数是否存在缓存当中;如果缓存当中存在,直接返回结果;否则,将用户函数交给批量打包模块进行打包处理;函数缓存模块缓存请求的函数结果数据;函数批量请求模块将分析好的函数批量打包;函数回填模块通过调用Excel COM接口,来触发Excel的重算过程。本发明可提高数据的提取效率。
文档编号G06F17/24GK102622336SQ20121004870
公开日2012年8月1日 申请日期2012年2月28日 优先权日2012年2月28日
发明者孙建 申请人:上海万得信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1