本专利文献的公开的一部分可能包含受到版权保护的材料。版权所有人不反对任何人对该专利文献或专利公开内容进行复制,按照其在(美国)专利和商标局的专利文件或记录中的形式,但版权所有人保留其它所有的权利。应对本文献应用以下通告:Copyright2006,2007 Microsoft Corp。
详细描述
介绍和概览
在此详细描述中,详细研究了当前所公开的主题的示例性、非限制性方面。然而,集中于电子表格的上下文中的私有表的此方面不限于“表”或“电子表格”。本领域普通技术人员将容易理解,也可以相当容易地讨论“页面”和“文字处理程序”,或“调色板”和“绘图/草绘程序”等等。当前所公开的主题适用于几乎任何计算机应用程序。然而,为简明并有效地具体化当前所公开的主题起见,在以下讨论电子表格中的私有表的各个方面。
因此,此处所公开的是计算机程序,即电子表格中的私有表。根据在以下详细讨论的一方面,公共表可由第一客户机和第二客户机访问。此外,私有表仅可由第二客户机访问。私有表被配置成访问公共表中的内容,但该公共表不能访问私有表中的内容。以此方式,在公共表上与其他用户协作的同时,用户可以在旁边使用私有表来执行计算或建模。根据也在以下详细研究的另一方面,如果对公共表中的内容作出的改变被私有表引用,则对公共表作出的这一改变可被反映在私有表中。然而,对私有表作出的改变不被反映在公共表中。还公开了许多其它特定方面,例如私有表访问来自公共表的值而不访问公式。
电子表格中的私有表的各方面
在电子表格的上下文中,应用程序“工作薄”可以是包含一个或多个“工作表”的文件,该文件可以用于组织各种类型的相关信息。可以同时在若干工作表上输入和编辑数据,并且可以基于来自一个以上工作表的数据来执行计算。例如,在创建图表时,可以将该图表放置在同一工作表上作为其相关数据,或放置在单独的图表表上。给定例如“表”、“工作薄”等的概念,本领域技术人员将容易理解典型的电子表格程序可以采用的各种排列。
现在转到第一张图,图1示出其中客户机可以通过使用例如服务器等公共会合点来在应用程序上协作的现有技术系统。具体地,客户机A 100可以通过某一网络(参见下文以获得关于此处构想的网络的类型的广泛讨论)与服务器110通信。应注意,客户机A 100不仅可以是个人计算机(PC),还可以是例如手持式、蜂窝电话等几乎任何计算设备(参见下文以获得关于此处构想的计算设备的类型的广泛讨论)。
另一客户机,即,客户机B 105也可以与该服务器110通信。因此,以此方式,客户机A 100和B 105可以通过在服务器110上“会合”来在某些项目上协作。例如,客户机A 100和B 105可以在运行于服务器110上的应用程序145上协作。该应用程序145可以具有多个工作簿并且随这些工作薄可具有多个表。具体地,工作薄A 115可具有表C 120和D 125,而工作薄B 130可具有表E 135和F 140。客户机A 100和B 105可以在这些工作薄115,、130以及驻留在其中的表120、125、135、140中的任一个上一起工作或独立工作。
此外,图2示出图1的附加细节方面,其中表中的单元格可以创建对其它单元格的各种引用、依赖性、以及接入点。如在此处所使用的这些术语“引用”、“依赖性”、以及“接入”,它们被理解为宽泛地传达单元格能具有的与另一个单元格的各种关系。例如,第一表的一个单元格中的值可以依赖于第二表的第二单元格的值。类似地,单元格可以引用其它单元格来取得值(或者其它内容,例如公式)。在任何情况下,给定合适的上下文,本领域技术人员将容易理解这些术语意味着什么。换言之,此处没有给它们任何特殊限制性含义,而正相反,它们涵盖用户在使用例如电子表格等计算机程序时通常参与的各种情况。
接着,图3示出工作簿中的某些表可以只对一些客户可见和/或可访问,而对其他用户不可。在图3中,客户A 100可以看到和/或访问表C 120。因为此表120可被其它客户机看到和/或访问,所以它是“公共表”。应该注意,表可以(1)被看到或不被看到,和/或(2)被访问或不被访问。在前一种情况下,允许其它客户机看到私有表——在私有表在那里,但不允许用户读取其中的内容的意义上看到——但不能够访问它们(例如编辑它们)可能不像首先即不显示它们那样有用,但这些只是取决于使用需求的实现细节。在后一种情况下,“访问”被理解为至少需要读取和/或写入数据的能力。但是,还可以意味着(但不限于)能够取得单元格中的值和/或公式。
与表C 120形成对比,表D 125仅可被客户机B 105看到和/或访问。实际上,表C 120和表D 125都可被客户机B 105看到和/或访问。然而,客户机A100仅可以看到和/或访问表C 120。虚线300、305旨在示出此概念,因为内部虚线300将客户机A 100的视野和/或访问限于表C 120,而外部虚线105允许客户机B 105看到和/或访问两张表120、125。
接着,图4示出客户机可以对他们自己的私有表和任何公共表作出改变,但不能对彼此的私有表作出改变。在图4中,客户机A 100可以对表G 145(该客户机100的私有表),并且另外可以对公共表C 120作出改变。类似地,客户机B 105可以对其自己的私有表D 125和其公共表C 120作出改变。然而,客户机A 100不能对客户机B105的私有表D 125作出改变,而相应地,客户机B 105不能对客户机A100的私有表G 145作出改变。当然,可以理解,根据上述讨论,此类限制不仅延及改变,还延及客户机仅仅读取其它客户机的私有页面的能力,或甚至延及其它客户机要用来开始私有页面的知识。私有表145、125的安全性和隐私级别可按照用户和/或系统和/或应用程序规范来设置。在任何情况下,如之前一样,虚线框400、405试图划定客户机的可操作性的范围:客户机A 100具有对表G 145和C 120的可操作性,而客户机B 105具有对表C 120和D 125的可操作性。
还应该注意,私有表可以或可以不被持久存储。换言之,它们可以是在用户完成特定任务、会话、或工作薄时被删除的真正的剪贴板。另一方面,私有表还可被认为重要或相关到足以被保留并变为作为给定工作薄的整合部分来集成。
接着,图5示出参考图4所讨论的改变是如何在私有和公共表之间影响的,即,图5(尤其是在结合图6的情况下)演示了此类表之间的影响的流如何不对称。这意味着,例如,如有所需,公共表中的改变可以透入私有表,但私有表中的改变不可以透入公共表。图5示出工作薄A 115的公共表C 120中的单元格A 500可以对其范围内的另一单元格(即,也在表C 120中的单元格B 505)具有一些作用(由箭头[1]示出)。如果单元格B 505受到单元格A 500的影响,则图5示出私有表中的单元格C 510也可受到单元格B 505的影响(由箭头[2]示出)。例如,这可以在单元格C 510引用单元格B 505来取得其值时发生。
为了提供一种具体场景,单元格A 500最初可以具有值“100”(未示出),而单元格B 505可以取得此值并将它与二相乘来获得“200”,此外,单元格C510又可以取得此值并与某一其它值相加,比如一,来获得最终结果“201”。现在,如果单元格A 500将其值改变为例如“10”,则单元格B 505会相应地将其值改变为“20”,而单元格C 510会将其值改变为“21”。此处的要点是,例如表C 120等公共表中的改变可以在例如表D 125等某些私有表中的值上有作用(但在例如表G 145等其它私有表上没有作用)。
与图5形成对比,图6示出私有表中的改变对公共表中的内容可以没有影响。因此,可以是某一用户的私有表的表G 145被示为对例如表C 120等公共表不具有影响(或没有改变数据的能力)。类似地,还阻止来自在表C 120上协作的其它用户的其它私有表(表D 125)改变表C 120中的内容。这样做可以有各种理由,其中之一是,公共空间120中的数据不应经受来自多个用户中只有一个用户能够访问的地方145、125的改变。在任何情况下,带有“X”的箭头(-X→和←X-)旨在可视地示出此概念。应该注意,此上下文中被阻止实现的改变的种类可以不仅包括值,还包括公式。
在当前所公开的主题的另一方面,图7示出典型网络环境中的私有表存储和执行的位置。如参考图1已经讨论的,在典型协作情形中,可以存在允许多台客户机在某项目上协作的服务器。随着(除公共表以外的)私有表的引入,出现此类私有表应在何处存储和执行的问题。在一种情形中,此类私有表在其客户机上本地存储和/或执行,而任何公共表在服务器侧存储。
现在转到图7,可以看到,表G 145(其是私有表)被存储在客户机A 700,即用户的本地计算设备720上(或驻留在其上和/或在其上执行)。类似地,私有表D 125被存储在客户机B 710,即另一用户的本地计算设备720上(或驻留在其上和/或在其上执行)。任何协作用户之间的共享计算设备725,即服务器705,存储和/或执行任何公共表,如表C 120。因此,简而言之,在此方面,私有表被存储在本地计算设备(客户机)上和/或在其上执行,而公共表被存储在共享计算设备(服务器)上和/或在其上执行。
然而,尽管这可以是当前所公开的主题的较佳实施例,但是可以相当容易地设想私有表也被存储在共享计算设备上,然而在此情形中,需要实现安全机制来确保用户不能看到和/或修改彼此的私有表。此外,在对等网络中,从技术上来说,公共表可被存储在本地计算设备中,因为服务器不会被用作用于协作的会合地方(但服务器当然可以用在路由/网关能力中)。
实际上,图8示出涉及用于当前所公开的主题的一示例性、非限制性方面的对等网络的情形(与图1所示的具有可用于当前所公开的主题的其它方面的客户机-服务器体系结构的方面形成对比)。在图8中,私有表G 145可以驻留在对等计算设备A 800上/在其上执行,而私有表D 125和公共表C 120都驻留在对等计算设备B 805上/在其上执行。当然,本领域的技术人员将容易地认识到用于当前所公开的私有表/公共表主题的(客户机-服务器和对等情形之外的)其它结构情形。例如,可以使用混合对等设置,其中中央服务器保持关于对等体的信息并响应对该信息的请求,但是对等体负责主存可用资源(因为中央服务器没有这些资源),以便让中央服务器知道它们想要共享什么资源,以及使其可共享资源对请求该资源的对等体可用。
图9以框图形式示出当前所公开的主题的一示例性、非限制性实现的流程图。在框900处开始,维护服务器上的公共表,其中该公共表可由第一客户机和第二客户机访问。随后,在框905处,在第二客户机上维护私有表,其中该私有表仅可由第一客户机和第二客户机中的第二客户机访问,并且其中该私有表被配置成访问公共表中的内容,但是公共表被阻止访问私有表中的内容。这可被认为是私有表和公共表之间的不对称可访问性。
接着,在框910处,如果对公共表中的内容作出的改变被私有表引用,则对公共表的这一改变在私有表中更新(但反之则不然,如上文详细解释的)。该情形已经在上文中参考图5讨论,其中公共表中的改变透入私有表,因为此类改变是单元格级别上的引用。例如,公共表中的单元格X中的改变可在私有表中的单元格Y中更新,因为私有表单元格值可以依赖于公共表值。在某些方面,此类引用可仅限于值,在其它方面,它还可以包括公式。在还有一些方面中,可以明确地排除公式,即,私有表可以访问来自这一公共表的值但不可访问公式。
已经注意到,可以阻止对私有表作出的任何改变透入公共表。这一概念在框910中通过“仅”更新对公共表作出的改变而非相反来捕捉。如从框910回到框900的反馈箭头所示,可以连续地执行此通用维护和更新机制。最后,公共表和私有表可以作为电子表格应用程序的一部分主存,然而,如上文所解释的,此类主存不限于电子表格应用程序,而是实际上适用于几乎任何其它计算应用程序,例如具有页面的文字处理程序、或具有调色板的绘图程序等等。
用于电子表格的示例性PC和网络化方面
接着,转到图10,所示是表示适用于实现以上公开的主题的示例性计算设备的框图。例如,实现用于在电子表格中提供私有表的过程和方法的计算机可执行指令可以驻留在如图10中所示的这一计算环境中和/或在该计算环境中执行。计算系统环境220仅为合适的操作环境的一个示例,并非旨在对所公开的主题的使用范围或功能提出任何局限。也不应该把计算环境220解释为对示例性操作环境220中示出的任一组件或其组合有任何依赖性或要求。
当前所公开的主题的各方面可用于众多其它通用或专用计算系统环境或配置。适合在本主题中使用的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型机、大型计算机、包含上述系统或设备中的任一个的分布式计算环境等。
当前所公开的主题的各方面可在诸如程序模块等由计算机执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。当前所公开的主题的各方面也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。
用于实现当前所公开的主题的各方面的示例性系统包括计算机241形式的通用计算设备。计算机241的组件可以包括,但不限于,处理单元259、系统存储器222和将包括系统存储器在内的各种系统组件耦合至处理单元259的系统总线221。系统总线221可以是数种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。作为示例而非局限,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也称为夹层(Mezzanine)总线)。
计算机241通常包括各种计算机可读介质。计算机可读介质可以是能由计算机241访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机241访问的任何其它介质。通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并包括任意信息传送介质。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其它无线介质。上述中任一组合也应包括在计算机可读介质的范围之内。
系统存储器222包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)223和随机存取存储器(RAM)260。基本输入/输出系统224(BIOS)包括如在启动时帮助在计算机241内的元件之间传输信息的基本例程,它通常储存在ROM 223中。RAM 260通常包含处理单元259可以立即访问和/或目前正在其上操作的数据和/或程序模块。作为示例而非局限,图10示出了操作系统225、应用程序226、其它程序模块227和程序数据228。
计算机241也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图10示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器238,对可移动、非易失性磁盘254进行读写的磁盘驱动器239,以及对诸如CD ROM或其它光学介质等可移动、非易失性光盘253进行读写的光盘驱动器240。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器238通常由诸如接口234等不可移动存储器接口连接至系统总线221,磁盘驱动器239和光盘驱动器240通常由诸如接口235等可移动存储器接口连接至系统总线221。
以上描述和在图10中示出的驱动器及其相关联的计算机存储介质为计算机241提供对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图10中,示出硬盘驱动器238储存操作系统258、应用程序257、其它程序模块256和程序数据255。注意,这些组件可以与操作系统225、应用程序226、其它程序模块227和程序数据228相同,也可以与它们不同。操作系统258、应用程序257、其它程序模块256和程序数据255在这里被标注了不同的标号是为了说明至少它们是不同的副本。用户可以通过输入设备,诸如键盘251和定点设备252(通常称为鼠标、跟踪球或触摸垫)向计算机241输入命令和信息。其它输入设备(未示出)可以包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常由耦合至系统总线的用户输入接口236连接至处理单元259,但也可以由其它接口和总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器242或其它类型的显示设备也经由接口,诸如视频接口232连接至系统总线221。除监视器以外,计算机也可以包括其它外围输出设备,诸如扬声器244和打印机243,它们可以通过输出外围接口233连接。
计算机241可使用至一个或多个远程计算机,如远程计算机246的逻辑连接在网络化环境中操作。远程计算机246可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机241描述的许多或所有元件,尽管在图10中只示出存储器存储设备247。图10中所示逻辑连接包括局域网(LAN)245和广域网(WAN)249,但也可以包括其它网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中使用时,计算机241通过网络接口或适配器237连接至LAN 245。当在WAN联网环境中使用时,计算机241通常包括调制解调器250或用于通过诸如因特网等WAN 249建立通信的其它装置。调制解调器250可以是内置或外置的,它可以经由用户输入接口236或其它适当的机制连接至系统总线221。在网络化环境中,相对于计算机241所描述的程序模块或其部分可被储存在远程存储器存储设备中。作为示例而非局限,图10示出了远程应用程序248驻留在存储器设备247上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。
应该理解,此处描述的各种技术可以结合硬件或软件,或在适当时以两者的组合来实现。因此,当前公开的主题的方法和装置或其特定方面或部分可采取包含在诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读存储介质等有形介质中的程序代码(即,指令)的形式,其中当程序代码被加载到诸如计算机等机器内并由其执行时,该机器成为用于实现当前所公开的主题的装置。在程序代码在可编程计算机上执行的情况下,计算设备通常包括处理器、该处理器可读的存储介质(包括易失性和非易失性的存储器和/或存储元件)、至少一个输入设备、以及至少一个输出设备。一个或多个程序可以例如通过使用API、可重用控件等实现或利用结合当前所公开的主题描述的过程。这样的程序优选地用高级过程语言或面向对象编程语言来实现,以与计算机系统通信。然而,如果需要,程序可以用汇编语言或机器语言来实现。在任何情形中,语言可以是编译语言或解释语言,且与硬件实现相结合。
尽管示例性实施例可涉及在一个或多个独立计算机系统的上下文中利用当前所公开的主题的各方面,但本主题不受此限制,而是可以结合任何计算环境,诸如网络或分布式计算环境来实现。此外,当前所公开的主题的各方面可在多个处理芯片或设备中或跨多个处理芯片或设备实现,且存储可类似地跨多个设备来实现。这样的设备可以包括,个人计算机、网络服务器、手持式设备、超级计算机或集成在诸如汽车和飞机等其它系统中的计算机。
考虑到可以根据图10中提供的通用架构构建的各种计算环境,此处提供的系统和方法不能被解释为以任何方式限于某一特定的计算体系结构。相反,当前所公开的主题不应限于任何单个实施例,而是应该根据所附权利要求书的广度和范围来解释。
最后,参考图11,示出了其中可实现执行上述过程的计算机化过程的示例性网络化计算环境。即,此网络环境可以允许用户如上所述在各个项目上协作。例如,并行计算可以是这样的网络化环境的一部分,其中图11的网络上的各个客户机使用和/或实现对来自丰富结构化类型的搜索特性的平面列表的定义和提取。本领域的普通技术人员可以理解,网络可以连接任何计算机或其它客户机或服务器设备,或处于分布式计算环境中。就此,含有任何数量的处理、存储器或存储单元,以及同时发生的任何数量的应用程序和进程的任何计算机系统或环境被认为适用于所提供的系统和方法。
分布式计算通过计算设备和系统之间的交换提供了计算机资源和服务的共享。这些资源和服务包括信息的交换、文件的高速缓存存储和盘存储。分布式计算利用网络连接,从而允许客户机利用它们的集体力量来使整个企业受益。就此,各种设备可以含有其中蕴含此处所描述各进程的应用程序、对象或资源。
图11提供了示例性的网络化或分布式计算环境的示意图。该环境包括计算设备271、272、276和277,以及对象273、274和275,还有数据库278。这些实体271、272、273、274、275、276、277和278中的每一个可以包括或使用程序、方法、数据存储、可编程逻辑等。实体271、272、273、274、275、276、277和278可以横跨诸如PDA、音频/视频设备、MP3播放器、个人计算机等相同或不同设备的各部分。每一实体271、272、273、274、275、276、277和278可以经由通信网络270与另一实体271、272、273、274、275、276、277和278通信。就此,任何实体可以负责维护和更新数据库278或其它存储元件。
该网络270本身可以包括向图3的系统提供服务的其它计算实体,且其本身可以表示多个互连的网络。根据所公开的本主题的一方面,每一实体271、272、273、274、275、276、277和278可以包括可使用API或其它对象、软件、固件和/或硬件来请求其它实体271、272、273、274、275、276、277和278中的一个或多个的服务的离散的功能性程序模块。
也可以理解,诸如275等对象可以主存于另一计算设备276上。因此,尽管所示的物理环境可以将连接的设备示为计算机,但是这样的图示仅是示例性的,并且该物理环境可以被替换地描述或描绘成含有诸如PDA、电视机、MP3播放器等的各种数字设备,以及诸如接口、COM对象等软件对象。
存在支持分布式计算环境的各种系统、组件和网络配置。例如,计算系统可以通过有线或无线系统、本地网络或广泛分布的网络连接在一起。目前,许多网络被耦合至因特网,后者从而为广泛分布的计算提供基础架构并涵盖多个不同的网络。无论是否被耦合至因特网,任何这样的基础架构都可以用于所提供的系统和方法。
网络基础架构可以允许诸如客户机/服务器、对等或混合体系结构等各种网络拓扑结构。“客户机”是使用与它无关的另一类或组的服务的一个类或组中的成员。在计算中,客户机是进程,即大致上是请求由另一程序提供的服务的一组指令或任务。客户机进程利用所请求的服务,而不必“知道”有关其它程序或服务本身的任何工作细节。在客户机/服务器体系结构中,尤其在网络化系统中,客户机通常是访问由例如服务器等另一计算机提供的共享的网络资源的计算机。在图11的示例中,取决于情境,任何实体271、272、273、274、275、276、277和278可以被认为是客户机、服务器或两者。
服务器通常,但不必须是可通过诸如因特网等远程或本地网络访问的远程计算机系统。客户机进程可以在第一计算机系统中活动,而服务器进程可以在第二计算机系统中活动,它们通过通信介质彼此通信,从而提供分布式功能并允许多个客户机利用服务器的信息收集能力。任何软件对象可以跨多个计算设备或对象分布。
客户机和服务器利用由协议层提供的功能来彼此通信。例如,超文本传输协议(HTTP)是结合万维网(WWW),即“Web”使用的常见协议。通常,诸如网际协议(IP)地址等计算机网络地址或诸如统一资源定位器(URL)等其它引用可以用于彼此标识服务器或客户计算机。网络地址可以被称为URL地址。可以通过通信介质来提供通信,例如客户机和服务器可以通过TCP/IP连接来彼此耦合以进行大容量通信。
考虑到可以根据图11中提供的通用架构构建的各种计算环境,以及在诸如图11的网络环境中的计算中可能发生的进一步变化,此处提供的系统和方法不能被解释为以任何方式限于某一特定的计算体系结构或操作系统。相反,当前所公开的主题不应限于任何单个实施例,而是应该根据所附权利要求书的广度和范围来解释。
最后,应当注意,此处描述的各种技术可以结合硬件或软件,或在适当时以两者的组合来实现。因此,当前所公开的主题的方法、计算机可读介质、以及系统或其特定方面或部分可采取包含在诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读存储介质等有形介质中的程序代码(即,指令)的形式,其中当程序代码被加载到诸如计算机等机器内并由其执行时,该机器成为用于实现本主题的装置。
在程序代码在可编程计算机上执行的情况下,计算设备通常可以包括处理器、该处理器可读的存储介质(包括易失性和非易失性的存储器和/或存储元件)、至少一个输入设备、以及至少一个输出设备。可例如通过使用数据处理API等来利用本发明的域专用编程模型的创建和/或实现的各方面的一个或多个程序较佳地用高级过程语言或面向对象的编程语言来实现以与计算机系统通信。然而,如果需要,程序可以用汇编语言或机器语言来实现。在任何情形中,语言可以是编译语言或解释语言,且与硬件实现相结合。
最后,尽管已经结合较佳方面按各附图所示描述了本发明,但要理解,可使用其它相似方面或者可对所述方面进行修改或添加来执行本发明的相同功能而不脱离本发明。例如,在本发明的各种方面中,讨论了电子表格中的私有表。然而,本文的教示还构想了与这些描述方面等价的其它机制。因此,本发明应当不限于任何单一方面,而应按照所附权利要求书的宽度与范围来解释。