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

技术编号:7635473 阅读:262 留言:0更新日期:2012-08-03 23:23
本发明专利技术揭示了一种基于互联网的Excel插件数据批量提取系统及方法,所述系统包括VBA驱动脚本模块、函数采集模块、函数分析模块、函数缓存模块、函数批量请求模块、函数回填模块。VBA驱动脚本模块生成VBA驱动脚本;函数采集模块采集VBA驱动脚本模块所映射过来的用户函数;函数分析模块分析函数队列中用户请求的函数,通过对函数的参数进行分析,分析放入队列的函数是否存在缓存当中;如果缓存当中存在,直接返回结果;否则,将用户函数交给批量打包模块进行打包处理;函数缓存模块缓存请求的函数结果数据;函数批量请求模块将分析好的函数批量打包;函数回填模块通过调用Excel?COM接口,来触发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驱动脚本模块内部定义好的用户函数可以被用本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:孙建
申请(专利权)人:上海万得信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术