一种基于多用户环境的电子表格系统及其实现方法

文档序号:6523126阅读:133来源:国知局
一种基于多用户环境的电子表格系统及其实现方法
【专利摘要】本发明公开了一种基于多用户环境的电子表格系统及其实现方法。电子表格系统包括数据存储模块、宏驱动模块、VBA驱动脚本模块、函数模块,数据存储模块包括Excel工作表及数据源表、宏表、用户提示表;宏驱动模块在用户登录时读取宏表并驱动宏脚本判断是否禁用宏并作出反应;VBA驱动脚本模块加密工作表并禁止用户打开VBE,判断用户登录是否合法并作出反应;函数模块采集用户函数分析后调用ExcelCOM接口查找引用数据源表中的数据,返回结果完成单元格的填充和显示。实现方法包括数据存储模块、函数模块、宏驱动模块和VBA驱动脚本模块创建步骤。本发明具有极高的灵活性、易用性和实用性,能大幅提高管理人员的工作效率。
【专利说明】一种基于多用户环境的电子表格系统及其实现方法
【技术领域】
[0001]本发明属于电子文档【技术领域】,具体涉及ー种在多用户环境中具有安全性、灵活性、易用性和实用性的电子表格系统及其实现方法。
【背景技术】
[0002]Microsoft Excel是微软公司的办公软件Microsoft office的组件之一,由于Excel中大量的公式函数可供应用选择,使得Excel可以执行计算、分析信息并管理电子表格或网页中的数据信息列表与数据资料图表制作,可以实现许多方便的功能,带给使用者方便,广泛地应用于管理、统计财经、金融等众多领域。
[0003]Excel由于只能对整个工作簿或单个工作表进行加密,难以实现多用户的访问控制,因此大多通过复杂的Access或专用管理软件来实现多用户环境下的访问控制,既难以操作,且体积大传输不便,而且专用管理软件费用高,大部分采用C/S模式难以适应散布的非联网用户的使用。
[0004]エ资明细数据是统计职エエ资收入情况、制作エ资条等工作的重要原始数据。在许多大型企业中,エ资的管理模式实行エ资总额控制,分配权下发到各厂或车间的管理模式,在公司层面,毎月职エエ资发放进账后要及时将职エエ资明细数据分发给公司所属各単位,以便各単位制作エ资条、统计职エ收入情况等工作。エ资数据属保密信息,之前的处理方法是公司エ资管理员将每月エ资明细数据按单位排序后,再把同一単位的职エエ资数据复制粘贴到ー张新建的Excel工作表中,并保存为Excel文件,有多少个单位就按此步骤
反复操作--创建多少个Excel文件;之后还要分别将以上创建的Excel文件通过即时通`讯软件或电子邮件一一分发给公司所属各単位,这样做非常繁琐、费时、效率低下,长此以往也使得エ资管理员深感枯燥、乏味。

【发明内容】

[0005]本发明的第一目的在于提供ー种具有安全性、灵活性、易用性和实用性的基于多用户环境的电子表格系统;第二目的在于提供一种实现第一目的电子表格系统实现方法。
[0006]本发明的第一目的是这样实现的,包括数据存储模块、宏驱动模块、VBA驱动脚本模块、函数模块,其中:
所述数据存储模块包括根据用户数存储的多张Excel工作表以及ー张数据源表、宏表、用户提不表;
所述宏驱动模块在用户登录时读取数据存储模块中的宏表并驱动其中的宏脚本,判断用户是否禁用所述电子表格系统的宏功能,禁用则退出用户登录;
所述VBA驱动脚本模块生成VBA驱动脚本,用生成的VBA脚本加密所述Excel数据存储模块中的各工作表并禁止用户打开Visual Basic编辑器,当用户登录时判断用户是否合法,合法则根据VBA脚本解密Excel数据存储模块中相应的工作表,不合法则读取并显示所述数据存储模块中的用户提示表; 所述函数模块采集VBA驱动脚本模块映射的用户函数,分析用户函数后根据用户函数调用Excel COM接ロ查找所述数据存储模块中引用数据源表中的数据,通过用户函数的返回结果完成単元格的填充和在Excel中的显示。
[0007]本发明的第二目的是这样实现的,包括数据存储模块创建、函数模块创建、宏驱动模块创建、VBA驱动脚本模块创建,具体步骤为:
A、数据存储模块创建:根据用户数创建并保存Excel工作薄文件,并在其中创建多张供用户查询的Excel工作表以及数据源表、宏表、用户提示表;
B、函数模块创建:根据用户所需要查询的数据在Excel工作表中编写应用函数,所述应用函数引用数据源表中的数据作为提供给用户查询的信息;
C、宏驱动模块创建:在所述宏表中编写宏代码,实现用户在打开Excel工作薄时如果禁用宏则关闭Excel工作薄;
D、VBA驱动脚本模块创建:编写VBA程序对步骤B的工作表进行加密授权,实现不同用户凭密码查询相应的数据,禁止用户打开Visual Basic编辑器。
[0008]本发明通过创建VBA驱动脚本模块和宏驱动模块对Excel系统进行开发和扩展,通过编写VBA驱动脚本模块给同一张Excel工作薄中的各工作表加密,运用宏驱动模块读取并驱动宏代码,限制用户打开此工作薄时必须执行“启用宏”功能;同时通过VBA驱动脚本模块禁止用户打开Visual Basic编辑器,以防止用户使用Visual Basic编辑器查看、修改、破坏所编写的VBA程序。这样,当用户打开此Excel系统的工作薄对应工作表时,只有输入各工作表的密码才能进入相对应的工作表,通过函数模块采集并分析VBA驱动脚本模块映射的用户函数,对应引用数据源表中的数据,查询该工作表的数据,实现Excel系统中ー个工作薄文件在多用户环境中凭密码查询数据。
[0009]本发明具有下列优点和效果:
1、能够满足在多用户环境中,同一个Excel工作薄,通过对用户授权实现凭密码查询数据,操作简单,使用灵活。
[0010]2、可以解决为满足多个用户查询所需数据而反复执行复制、粘贴和创建Excel文件的操作,同时解决了有多少个用户就要创建多少个Excel文件,以及将多个不同的Excel文件一一分发给多个不同用户的繁琐工作。本发明只需创建ー个Excel文件,群发一次该Excel文件即可。可有效减少管理人员的工作量、提高工作效率。
[0011]3、只需对Excel工作表及VBA程序作简单修改即可满足在不同管理环境中的管理需求。
【专利附图】

【附图说明】
[0012]图1为本发明的电子表格系统逻辑框图;
图中:10-人机交互模块,20-VBA驱动脚本模块,30-宏驱动模块,40-函数模块,50-数据存储模块;
图2为本发明的电子表格系统实现方法流程图。
【具体实施方式】
[0013]下面结合实施例对本发明作进ー步说明,但不以任何方式对本发明加以限制,基于本发明教导所作的任何变换,均落入本发明保护范围。
[0014]如图1所示,本发明的基于多用户环境的电子表格系统,包括数据存储模块、宏驱动模块、VBA驱动脚本模块、函数模块,其中:
所述数据存储模块包括根据用户数存储的多张Excel工作表以及ー张数据源表、宏表、用户提不表;
所述宏驱动模块在用户登录时读取数据存储模块中的宏表并驱动其中的宏脚本,判断用户是否禁用所述电子表格系统的宏功能,禁用则退出用户登录;
所述VBA驱动脚本模块生成VBA驱动脚本,用生成的VBA脚本加密所述Excel数据存储模块中的各工作表并禁止用户打开Visual Basic编辑器,当用户登录时判断用户是否合法,合法则根据VBA脚本解密Excel数据存储模块中相应的工作表,不合法则读取并显示所述数据存储模块中的用户提示表;
所述函数模块采集VBA驱动脚本模块映射的用户函数,分析用户函数后根据用户函数调用Excel COM接ロ查找所述数据存储模块中引用数据源表中的数据,通过用户函数的返回结果完成単元格的填充和在Excel中的显示。
[0015]所述函数模块采集VBA驱动脚本模块映射的用户函数为Lookup ()函数,通过Lookup ()函数查找引用所述数据存储模块中数据源表的数据;
所述宏驱动模块读取并驱动的宏脚本通过检查宏函数RUN("TestMacro")的返回错误类型是否为4,判断用户是否禁用了宏功能,结果为True则退出用户登录。
[0016]所述VBA驱动脚本模块中用生成的VBA脚本加密所述数据存储模块中的各工作表并判断登录用户是否合法,是通过用户点击工作表时触发Activate事件,对当前工作表的字体设置为不可见,隐藏当前工作表的内容并弹出密码对话框,提示用户输入密码,如果密码输入正确则将当前工作表的字体设置为可见颜色,密码输入错误则返回数据存储模块中用户提示表,禁止用户进入。
[0017]所述VBA驱动脚本模块中用生成的VBA脚本禁止用户打开Visual Basic编辑器,是通过在VBA脚本的打开事件中添加windows监视,一旦Visual Basic编辑器打开就运行VBEwindow过程,并调用CheckVBE_Event过程强制关闭Visual Basic编辑器。
[0018]如图2所示,本发明的基于多用户环境的电子表格系统实现方法,包括数据存储模块创建、函数模块创建、宏驱动模块创建、VBA驱动脚本模块创建,具体步骤为:
A、数据存储模块创建:根据用户数创建并保存Excel工作薄文件,并在其中创建多张供用户查询的Excel工作表以及数据源表、宏表、用户提示表;
B、函数模块创建:根据用户所需要查询的数据在Excel工作表中编写应用函数,所述应用函数引用数据源表中的数据作为提供给用户查询的信息;
C、宏驱动模块创建:在所述宏表中編写宏代码,实现用户在打开Excel工作薄时如果禁用宏则关闭Excel工作薄;
D、VBA驱动脚本模块创建:编写VBA程序对步骤B的工作表进行加密授权,实现不同用户凭密码查询相应的数据,禁止用户打开Visual Basic编辑器。
[0019]所示VBA驱动脚本模块创建步骤中将数据源表设置为管理员维护数据专用,加密为管理员密码。
[0020]本发明的基于多用户环境的电子表格系统实现方法还包括工作表保护步骤,所述工作表保护步骤是将步骤C中的宏表设置为不允许用户操作和/或将步骤B中的工作表设置为只允许用户选定、复制単元格。
[0021]本发明的基于多用户环境的电子表格系统实现方法还包括用户提示表编辑步骤,所述用户提示表编辑步骤是在步骤A创建的用户提示表中編写操作提示,用于向用户说明此多用户电子表格的操作步骤。
[0022]所述步骤C中的宏代码是通过检查宏函数RUN("TestMacro")的返回错误类型是否为4,如果结果为True,则判断用户禁用宏功能并关闭当前Excel工作薄。
[0023]所述步骤D中对工作表进行加密授权,实现不同用户凭密码查询相应的数据是当用户点击工作表时即触发Activate事件,事件代码首先将当前工作表的字体设置为不可见,之后弹出密码对话框,提示用户输入密码并核实密码是否正确,如果密码输入正确则将当前工作表的字体设置为可见颜色;如果密码输入错误则返回所述用户提示表并禁止用户进入。
[0024]所述步骤D中禁止用户打开Visual Basic编辑器是在打开事件中添加windows监视,一旦Visual Basic编辑器打开则运行VBEwindow过程,调用CheckVBE_Event过程强制关闭当前的Visual Basic编辑器。
[0025]实施例1:
如图2所示,以某钢铁公司18个下属単位的エ资明细表的实现过程为例。
[0026]SlOl:根据用户数及其对查询数据的需求,创建Excel工作薄文件,并将此Excel工作薄文件取名为“各单位エ资明细表”保存到磁盘;
S102:在已创建的Excel工作薄中创建20张Excel工作表,第一张工作表Sheetl作为用户提示表,在此表中編写简明扼要的操作提示,向用户说明此多用户电子表格的操作步骤,并将工作表的名称更名为“提示”;第2至19张工作表供18家单位查询本单位的エ资数据用,并将工作表名称更名为18家単位的名称;最后ー张工作表用于存放数据源,更名为“data”。
[0027]S103:将当月エ资明细数据复制到data工作表中,将18家単位的人员编号、姓名分别复制到各単位的工作表中,运用Lookup ()函数将数据源中的数据分别引用到18家单位的工作表中;
S104:在此Excel工作薄中创建ー张Excel宏表,在Excel宏表中编写宏代码,作用是在打开Excel文件时,如果用户禁用了宏则关闭此工作薄。
[0028]S105:将以上步骤所做好的各工作表及宏表进行保护,对干“提示”工作表及宏表,保护选项设置为不允许用户做任何操作;对于供18家单位查询数据用的工作表,保护选项设置为只允许用户选定、复制単元格。
[0029]S106:编写VBA程序,对18家单位查询数据用的工作表及“data”数据源表进行加密授权,让用户凭密码查询数据,而“data”数据源表则供エ资管理员维护数据使用。
[0030]S107:编写VBA程序,禁止用户打开Visual Basic编辑器,以防止用户在使用此多用户电子表格的过程中,使用Visual Basic编辑器查看、修改、破坏所编写的VBA程序。
[0031]至此,完成多用户电子表格系统的设计,以后每个月エ资管理员只需将当月エ资数据复制到数据源工作表“data”中,然后将此Excel文件群发给18家单位即完成分发エ资明细数据的工作。
【权利要求】
1.一种基于多用户环境的电子表格系统,其特征在于包括数据存储模块、宏驱动模块、VBA驱动脚本模块、函数模块,其中: 所述数据存储模块包括根据用户数存储的多张Excel工作表以及ー张数据源表、宏表、用户提不表; 所述宏驱动模块在用户登录时读取数据存储模块中的宏表并驱动其中的宏脚本,判断用户是否禁用所述电子表格系统的宏功能,禁用则退出用户登录; 所述VBA驱动脚本模块生成VBA驱动脚本,用生成的VBA脚本加密所述Excel数据存储模块中的各工作表并禁止用户打开Visual Basic编辑器,当用户登录时判断用户是否合法,合法则根据VBA脚本解密Excel数据存储模块中相应的工作表,不合法则读取并显示所述数据存储模块中的用户提示表; 所述函数模块采集VBA驱动脚本模块映射的用户函数,分析用户函数后根据用户函数调用Excel COM接ロ查找所述数据存储模块中引用数据源表中的数据,通过用户函数的返回结果完成単元格的填充和在Excel中的显示。
2.根据权利要求1所述的基于多用户环境的电子表格系统,其特征在于所述宏驱动模块读取并驱动的宏脚本通过检查宏函数RUN(〃TeStMaCr0〃)的返回错误类型是否为4,判断用户是否禁用了宏功能,结果为True则退出用户登录。
3.根据权利要求1所述的基于多用户环境的电子表格系统,其特征在于所述VBA驱动脚本模块中用生成的VBA脚本加密所述数据存储模块中的各工作表并判断登录用户是否合法,是通过用户点击工作表时触发Activate事件,对当前工作表的字体设置为不可见,隐藏当前工作表的内容并弹出密码对话框,提示用户输入密码,如果密码输入正确则将当前工作表的字体设置为可见颜色,密码输入错误则返回数据存储模块中用户提示表,禁止用户进入。`
4.根据权利要求1或3所述的基于多用户环境的电子表格系统,其特征在于所述VBA驱动脚本模块中用生成的VBA脚本禁止用户打开Visual Basic编辑器,是通过在VBA脚本的打开事件中添加windows监视,一旦Visual Basic编辑器打开就运行VBEwindow过程,并调用CheckVBE_Event过程强制关闭Visual Basic编辑器。
5.一种基于多用户环境的电子表格系统实现方法,其特征在于包括数据存储模块创建、函数模块创建、宏驱动模块创建、VBA驱动脚本模块创建,具体步骤为: A、数据存储模块创建:根据用户数创建并保存Excel工作薄文件,并在其中创建多张供用户查询的Excel工作表以及数据源表、宏表、用户提示表; B、函数模块创建:根据用户所需要查询的数据在Excel工作表中编写应用函数,所述应用函数引用数据源表中的数据作为提供给用户查询的信息; C、宏驱动模块创建:在所述宏表中编写宏代码,实现用户在打开Excel工作薄时如果禁用宏则关闭Excel工作薄; D、VBA驱动脚本模块创建:编写VBA程序对步骤B的工作表进行加密授权,实现不同用户凭密码查询相应的数据,禁止用户打开Visual Basic编辑器。
6.根据权利要求5所述的电子表格系统实现方法,其特征在于还包括工作表保护步骤,所述工作表保护步骤是将步骤C中的宏表设置为不允许用户操作和/或将步骤B中的工作表设置为只允许用户选定、复制単元格。
7.根据权利要求5所述的电子表格系统实现方法,其特征在于还包括用户提示表编辑步骤,所述用户提示表编辑步骤是在步骤A创建的用户提示表中編写操作提示,用于向用户说明此多用户电子表格的操作步骤。
8.根据权利要求5所述的电子表格系统实现方法,其特征在于所述步骤C中的宏代码是通过检查宏函数RUN("TestMacro")的返回错误类型是否为4,如果结果为True,则判断用户禁用宏功能并关闭当前Excel工作簿。
9.根据权利要求5所述的电子表格系统实现方法,其特征在于所述步骤D中对エ作表进行加密授权,实现不同用户凭密码查询相应的数据是当用户点击工作表时即触发Activate事件,事件代码首先将当前工作表的字体设置为不可见,之后弹出密码对话框,提示用户输入密码并核实密码是否正确,如果密码输入正确则将当前工作表的字体设置为可见颜色;如果密码输入错误则返回所述用户提示表并禁止用户进入。
10.根据权利要求5或9所述的电子表格系统实现方法,其特征在于所述步骤D中禁止用户打开Visual Basic编辑器是在打开事件中添加windows监视,一旦Visual Basic编辑器打开则运行VBEwindow过程,调用CheckVBE_Event过程强制关闭当前的Visual Basic编辑器 。
【文档编号】G06F21/31GK103605917SQ201310668494
【公开日】2014年2月26日 申请日期:2013年12月11日 优先权日:2013年12月11日
【发明者】普太文 申请人:武钢集团昆明钢铁股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1