首页> 中国专利> 协作文档中的非协作过滤器

协作文档中的非协作过滤器

摘要

用于查看云计算服务上存储的协作电子表格上的过滤器的系统和方法包括从多个客户端计算机中的每个客户端计算机访问云计算服务上存储的电子表格的第一工作表,其中多个过滤器与第一工作表相关联。多个客户端计算机中的第一客户端计算机接收第一用户的向第一工作表应用多个过滤器中的第一过滤器的命令,并且向第一客户端计算机上的第一工作表应用该第一过滤器。向第一用户显示经过滤的第一工作表,并且多个客户端计算机中的第二客户端计算机并发地显示未过滤的第一工作表。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-03-06

    授权

    授权

  • 2019-05-10

    实质审查的生效 IPC(主分类):G06F17/24 申请日:20140521

    实质审查的生效

  • 2019-04-16

    公开

    公开

说明书

本申请是申请日为2014年5月21日、申请号为201480021515.8、发明名称为“协作文档中的非协作过滤器”的发明专利申请的分案申请。

相关申请的交叉引用

本申请要求2013年5月22日提交的美国专利申请号13/900,193的优先权,通过引用方式将其整体并入于此;2013年5月22日提交的美国专利申请号13/900,265的优先权,通过引用方式将其整体并入于此;以及2013年5月22日提交的美国专利申请号13/900,270的优先权,通过引用方式将其整体并入于此。

技术领域

本申请涉及协作文档中的非协作过滤器。

背景技术

云计算服务向多个位置处的多个人提供了协作相同文档的方法。云计算服务将文档的主副本存储在一个或多个数据服务器上,并且用户通过诸如因特网之类的远程网络来访问文档。可以在云计算服务上创建、存储和编辑的文档包括字处理文档、演示文档和电子表格。当用户访问存储在云计算服务上的文档时,文档的本地副本被加载在客户端计算机上。用户对文档做出的改变被传达到云计算服务器以记录。如果两个或更多协作者正在同时编辑相同文档,则一个用户做出的改变也迅速地传播到其他用户。

云计算服务上可访问的协作电子表格可以具有许多与独立计算机上可得的电子表格相同的功能。可获得的功能可以包括使用过滤器来更改如何排列和显示数据。例如,过滤器可被用于以某种方式对数据的行或列进行排序,并且可被用于从视图中隐藏某些行或列。正如诸如单元格条目以及行/列插入或删除之类的其它变异,过滤器可以被视为对工作表的编辑或变异。当编辑协作电子表格的用户向电子表格应用过滤器时,过滤器还被发送到其他协作者并且被应用到他们的电子表格副本。从而当用户应用过滤器时,协作者的电子表格的视图将自动改变。对于正在查看受过滤器影响的数据的其他协作者来说,这可能是妨碍。此外,如果两个或更多协作者想要应用影响重叠的数据集的不同过滤器,两个协作者没有办法应用期望的过滤器而不互相干扰。同样,电子表格的协作者没有办法存储多个过滤器并且相互独立地应用过滤器。

发明内容

本文中描述的一个方面公开用于处理协作电子表格上的用户动作的方法,该方法包括:从多个客户端计算机中的每个客户端计算机访问服务器上存储的电子表格的未过滤工作表以显示在第一客户端计算机上,其中多个过滤器与未过滤工作表相关联,以及其中多个过滤器中的每个过滤器由多个客户端计算机中的每个客户端计算机同时选择;从第一客户端计算机接收第一用户的对要应用于未过滤工作表的多个过滤器中的第一过滤器的选择,其中第一过滤器由第二用户在第二客户端计算机上创建;向第一用户显示经过滤工作表,其中通过向未过滤工作表应用第一过滤器而获得经过滤工作表;接收由第一用户在第一客户端计算机上输入的用户动作,其中用户动作参考未过滤工作表的单元格;向服务器发送用户动作;根据第一过滤器来变换用户动作;以及基于经变换的用户动作,更新经过滤工作表的显示。

本文中描述的一个方面公开用于接收协作电子表格上的协作者动作的方法,该方法包括:访问服务器上存储的电子表格的未过滤工作表以显示在第一客户端计算机上,其中多个过滤器与未过滤工作表相关联,以及其中多个过滤器中的每个过滤器由多个客户端计算机中的每个客户端计算机同时选择;从第一客户端计算机接收第一用户的对要应用于未过滤工作表的多个过滤器中的第一过滤器的选择,其中第一过滤器由第二用户在第二客户端计算机上创建;向第一用户显示经过滤工作表,其中通过向未过滤工作表应用第一过滤器而获得经过滤工作表;从服务器接收协作者动作,其中协作者动作参考未过滤工作表的单元格;根据第一过滤器来变换协作者动作;以及基于经变换的协作者动作,更新经过滤工作表的显示。

本文中描述的一个方面公开用于处理协作电子表格上的用户动作的系统,该系统包括:第一客户端计算机,被配置为:通过通信连接与托管云计算服务的服务器通信;访问服务器上存储的电子表格的未过滤工作表,其中多个过滤器与未过滤工作表相关联,以及其中多个过滤器中的每个过滤器由多个客户端计算机中的每个客户端计算机同时选择;接收第一用户的对要应用于未过滤工作表的多个过滤器中的第一过滤器的选择,其中第一过滤器由第二用户在第二客户端计算机上创建;向第一用户显示经过滤工作表,其中通过向未过滤工作表应用第一过滤器而获得经过滤工作表;接收由第一用户在客户端计算机上输入的用户动作,其中用户动作参考未过滤工作表的单元格;向服务器发送用户动作;根据第一过滤器来变换用户动作;以及基于经变换的用户动作,更新经过滤工作表的显示。

本文中描述的系统和方法提供用于多个协作者独立地利用用于云计算服务上存储的电子表格的过滤器的方法。云计算服务存储其可以包含单元格的一个或多个工作表的电子表格文件。云计算服务还存储用于每个工作表的若干过滤器。过滤器可以由具有对电子表格的写访问的任何协作者来创建和保存。过滤器可以是用于排序、隐藏、或者以其它方式排列工作表的显示中的行和单元格的指令。客户端计算机上的用户加载来自云计算服务的电子表格的工作表的本地副本及其相关联的过滤器。工作表被显示在客户端计算机处的用户界面上,例如在web浏览器上。可用的过滤器可以显示在侧栏窗口上。当用户选择要应用于工作表的过滤器时,过滤器仅应用于工作表的本地副本并且向用户显示。不像工作表的正常编辑,过滤器选择不会被传达到其他协作者。云计算服务可以跟踪不同协作者当前正使用的过滤器,但是所存储的工作表的主副本不受过滤器的用户选择的影响。用户可以设置用于工作表的默认过滤器,可以移除应用于工作表的所有过滤器,并且可以创建、编辑、重命名、复制或删除过滤器。由用户做出的对经过滤工作表的编辑或变异可以参考未过滤工作表或者经过滤工作表而由客户端计算机存储。如果变异参考未过滤工作表,则变异可以被直接发送到云计算服务以用于存储并且发送到其它协作者客户端计算机,在向协作者显示变异之前,其它协作者客户端计算机根据协作者客户端计算机上应用的任何过滤器对变异进行变换。如果变异参考经过滤工作表,则在被发送到云计算服务和协作者客户端计算机之前,根据过滤器的逆对它们进行变换。从而多个协作者可以同时查看应用于同一工作表的多个过滤器。

本文中描述的一个方面公开用于查看云计算服务上存储的协作电子表格上的过滤器的方法。方法包括从多个客户端计算机中的每个客户端计算机访问云计算服务上存储的电子表格的第一工作表,其中多个过滤器与第一工作表相关联。方法进一步包括:在多个客户端计算机中的第一客户端计算机处接收第一用户的用于向第一工作表应用多个过滤器中的第一过滤器的命令;以及向第一客户端计算机上的第一工作表应用第一过滤器。方法进一步包括向第一用户显示经过滤的第一工作表,其中多个客户端计算机中的第二客户端计算机并发地显示未过滤的第一工作表。

本文中描述的另一方面公开用于创建用于云计算服务上存储的协作电子表格的过滤器的方法。方法包括:从多个客户端计算机中的每个客户端计算机访问云计算服务上存储的电子表格的第一工作表;以及在多个客户端计算机中的第一客户端计算机上创建第一过滤器,其中第一客户端计算机上的用户定义第一过滤器。方法进一步包括:向第一客户端计算机上的第一工作表应用第一过滤器,其中多个客户端计算机中的第二客户端计算机并发地显示未过滤的第一工作表;以及向云计算服务发送第一过滤器,以用于存储和与第一工作表相关联。

本文中描述的另一方面公开用于向云计算服务上存储的协作电子表格应用过滤器的系统。系统包括客户端计算机,客户端计算机被配置为:通过网络连接与云计算服务和多个客户端计算机进行通信;以及加载云计算服务上存储的电子表格的第一工作表,其中多个过滤器与第一工作表相关联。客户端计算机进一步被配置为:从用户接收用于向第一工作表应用多个过滤器中的第一过滤器的命令;向第一客户端计算机上的第一工作表应用第一过滤器;以及向用户显示经过滤的第一工作表,其中多个客户端计算机中的第一客户端计算机并发地显示未过滤的第一工作表。

本文中描述的另一方面公开用于在多个客户端计算机上查看云计算服务上存储的协作电子表格的图形用户界面。每个客户端计算机上的图形用户界面包括:编辑窗口,示出云计算服务上存储的协作电子表格的第一工作表的多个单元格;以及在编辑窗口内的侧栏窗口,示出用户可选择的多个过滤器,其中多个过滤器被存储在服务器上。图形用户界面进一步被设计为使得当多个客户端计算机中的第一客户端计算机上的用户从多个过滤器中选择第一过滤器时,第一过滤器被应用于第一工作表,并且经过滤的第一工作表被示于第一客户端计算机的编辑窗口中,其中多个客户端计算机中的第二客户端计算机的编辑窗口显示未过滤的第一工作表。

附图说明

参照附图,从以下说明性描述可以更好地理解方法和系统,其中:

图1示出依照如本文中描述的实施方式的与存储一个或多个电子表格的云计算服务进行通信的若干客户端计算机;

图2示出依照如本文中描述的实施方式的实现云计算服务的服务器;

图3示出依照如本文中描述的实施方式的用于加载云计算服务上存储的电子表格的客户端计算机;

图4示出依照如本文中描述的实施方式的云计算服务上存储的协作电子表格的工作表;

图5示出依照如本文中描述的实施方式的用于云计算服务上存储的协作电子表格的工作表的过滤器选项;

图6示出依照如本文中描述的实施方式的云计算服务上存储的协作电子表格的经过滤的工作表;

图7示出依照如本文中描述的实施方式的用于向云计算服务上存储的协作电子表格的工作表应用过滤器的侧栏窗口;

图8示出依照如本文中描述的实施方式的用于处理针对云计算服务上存储的协作电子表格的协作者变异的示图;

图9示出依照如本文中描述的实施方式的用于处理针对云计算服务上存储的协作电子表格的协作者变异的另一示图;

图10示出依照如本文中描述的实施方式的用于查看云计算服务上存储的协作电子表格上的过滤器的方法;

图11示出依照如本文中描述的实施方式的用于创建用于云计算服务上存储的协作电子表格的过滤器的方法;

图12示出依照如本文中描述的实施方式的用于提供用于服务器上存储的协作电子表格的过滤器的方法;

图13示出依照如本文中描述的实施方式的用于处理关于协作电子表格的用户动作的方法;

图14示出依照如本文中描述的实施方式的用于接收关于协作电子表格的协作者动作的方法;以及

图15示出依照如本文中描述的实施方式的用于处理关于协作电子表格的用户动作的另一方法。

具体实施方式

为了提供对本文中描述的系统和方法的整体理解,现在将描述某些说明性实施例,包括用于提供协作者对云计算服务上存储的协作电子表格的独立过滤器使用的系统和方法。然而,应当理解,如适当的话本文中描述的系统和方法可以被适配和修改用于正处理的应用,并且可以在其它适合的应用中采用本文中描述的系统和方法,并且这样的其它添加和修改不会脱离其范围。具体地,如本描述中所使用的服务器、服务或系统可以是单个计算设备、或者集体工作并且其中数据的存储和功能的执行在各种计算设备之间展开的多个计算设备。

本文中描述的系统和方法的方面涉及向多个协作者提供独立地利用用于云计算服务上存储的协作电子表格的过滤器的能力的方法。云计算服务存储包含数据的一个或多个工作表的电子表格文件。云计算服务还存储用于每个工作表的若干过滤器。过滤器可以由任何协作者通过对电子表格的写访问来创建和保存。过滤器可以是用于从工作表的显示排序或隐藏某些值的指令。客户端计算机上的用户使用web浏览器从云计算服务加载电子表格的工作表的本地副本及其相关联的过滤器。过滤器被显示在web浏览器内的过滤器界面上,例如在侧栏窗口上。当用户选择向工作表应用的过滤器时,过滤器仅被应用到工作表的本地副本并且向用户显示。不像对工作表的正常编辑,不会向其他协作者传达过滤器选择。从而每个协作者可以独立地选择和查看不同的过滤器。用户可以使用过滤器界面来设置用于工作表的默认过滤器、移除向工作表应用的所有过滤器、以及创建、编辑、重命名、复制或删除过滤器。由用户做出的对经过滤工作表的编辑或变异可以参考未过滤工作表或者经过滤工作表而由客户端计算机存储。如果变异参考未过滤工作表,则变异可以被直接发送到云计算服务以用于存储并且发送到其它协作者客户端计算机,在向协作者显示变异之前,其它协作者客户端计算机根据相应协作者客户端计算机上应用的任何过滤器对变异进行变换。如果变异参考经过滤工作表,则在被发送到云计算服务和协作者客户端计算机之前,根据过滤器的逆对它们进行变换。

首先,描述其中若干客户端计算机可以连接到云计算服务的客户端服务器系统。图1示出包括云计算服务102以及若干客户端计算机104a至104d的客户端服务器系统100。云计算服务102可以包括向多个客户端计算机集体提供云计算服务的一个或多个服务器。云计算服务102存储由客户端计算机104a-104d可访问的包括协作电子表格106的若干文件。用户可以创建、编辑、拷贝、共享和删除云计算服务102上存储的文件。例如,客户端计算机104a-104d可以使用web浏览器同时访问云计算服务102上的电子表格106。云计算服务102向每个客户端计算机提供电子表格106的本地副本,客户端计算机上的用户可以查看和编辑该本地副本。由客户端计算机104a做出的编辑(另外称为变异)被自动发送到云计算服务102并且被传输到其它客户端计算机104b-104d。从而由一个协作者做出的变异立即被其他协作者看到。客户端计算机104a-104d可以包括台式计算机、膝上型计算机、平板电脑、智能电话、移动电子设备、或者可以通过远程网络连接到云计算服务102的任何其它设备。系统100可以包括与云计算服务102连接的许多客户端计算机。系统100的云计算服务102和客户端计算机104a-104d通过诸如因特网之类的远程网络连接。通过局域网、广域网、以太网、光纤网络、或任何其他有线或无线连接可以便于网络连接。

现在更详细地描述用于提供云计算服务的服务器。图2中的服务器200示出用于在云计算服务中使用的服务器的示例。云计算服务可以包括集体提供云计算服务的若干服务器。服务器200包括中央处理单元(CPU)202、只读存储器(ROM)204、随机存取存储器(RAM)206、通信单元208、数据存储210和总线212。服务器200可以具有图2中未图示的附加部件。总线212允许服务器200的各种部件彼此通信。通信单元208允许服务器200与诸如若干客户端计算机之类的其他设备通信。除了别的之外,数据存储210可以存储其可以由若干客户端计算机访问、查看或编辑的文件。这些文件可以包括字处理文件、演示文件、电子表格或多媒体文件。数据存储210中的每个文件可以与访问控制列表(ACL)相关联,访问控制列表(ACL)确定试图查看数据存储210中的文件的用户的访问权限(例如,写访问、读访问、不能访问)。用户通过通信单元208与服务器200连接以访问数据存储210中存储的文件。

现在更详细地描述用于访问云计算服务上存储的文件的客户端计算机。图3中的客户端计算机300包括中央处理单元(CPU)302、只读存储器(ROM)304、随机存取存储器(RAM)306、输入/输出接口308、web浏览器310和总线312。客户端计算机300可以具有图3中未图示的附加部件。总线312允许客户端计算机300的各种部件彼此通信。输入/输出接口308允许客户端计算机300与诸如云计算服务之类的其他设备通信,并且还包括用于接收用户输入并且向用户显示输出的设备。除了别的之外,web浏览器310用于提供用户界面以查看和编辑云计算服务上存储的文件。Web浏览器310还显示由其可以编辑与客户端计算机300的用户的相同文件的其他协作者做出的变异。云计算服务可以确定web浏览器310上显示的用于访问和查看文件的用户界面的布局。

图2中用于云计算服务200上存储的文件的数据存储210、图3中用于客户端计算机300的web浏览器310、以及云计算服务200和客户端计算机300上的其他数据结构和软件程序可以使用非瞬态计算机可读介质来实现。适合的非瞬态计算机可读介质的示例包括所有形式的非易失性存储器、介质和存储器设备,通过示例的方式包括:半导体存储器设备,例如EPROM、EEPROM和快闪存储器设备;磁盘,例如内部硬盘或可移除盘;磁光盘;以及可读的、可写一次的、或可再写的CD-ROM和DVD-ROM盘。

现在描述对云计算服务上存储的协作电子表格的操作。图4示出云计算服务上存储的协作电子表格的工作表400。协作电子表格是其可以由不止一个用户同时访问和编辑的电子表格文件。协作电子表格可以包含一个或多个工作表,其中每个工作表包含单元格的网格。例如,工作表400包含在几个单元格中的数据,其中相同类型的数据列出在列402中并且与同一人相关联的数据被排列在行404中。工作表400可以包含以任何可能配置排列的任何量的数据,并且不限于图4所示的布局。工作表400中的数据可以如图1所示的由连接到云计算服务的一个或多个用户使用客户端计算机输入。用户可以对工作表400进行写访问或者可以仅进行读访问,在读访问中用户可以查看但是不可以编辑数据。与协作电子表格相关联的ACL可以确定试图访问电子表格的用户的访问权限。

云计算服务可以向用户提供用于创建、操纵和显示电子表格上的数据的多种功能。一个这样的功能称为过滤。过滤可以包含根据一个或多个准则(例如,按字母顺序或按数字)对数据排序,并且可以包含从显示中隐藏某些数据值、行或列。过滤器可被存储为数据变换模型,数据变换模型在显示它之前映射或变换电子表格的底层数据(例如,出于显示在屏幕上的目的将单元格数据分配到新单元格的变换)。图5示出用于云计算服务上存储的协作电子表格的工作表500的过滤菜单的示例。工作表500包括列标题,列标题包括“年龄”和“得分”。当用户打开过滤器选项时,每列可以显示下拉箭头504。当用户选择下拉箭头时,可以显示用于该列的过滤器菜单502。例如,当选择用于“年龄”列的过滤器下拉箭头时,过滤器菜单502出现,并且向用户给出用于使用向“年龄”列应用的准则来过滤工作表502的数据的若干方式。过滤器菜单502包括其可以按特定顺序对工作表502的行进行排序的排序功能506。例如,如果用户选择“从小到大排序”,可以根据“年龄”列中的数字对行1-6进行排序,使得具有最小数值年龄的行首先出现,并且具有最大数值年龄的行最后出现。过滤器菜单502还允许用户使用数据复选框512来隐藏数据。数据复选框512示出“年龄”列中的所有记录的数据值。当数据值未选中时,包含该数据值的任何行从工作表500的显示中被隐藏。过滤器菜单502还可以提供用于选择所有数据值或者从数据复选框512清除对所有数据值的选择的快捷键508,并且可以提供用于搜索数据复选框列表中的特定数据值的搜索框510。过滤器菜单502还可以提供用于应用过滤器或取消应用的“确定(OK)”和“取消”按钮。过滤还可以不只应用于列,而是应用于行或单元格的选择。用户突出显示用户想要过滤的单元格、行或列,并且然后调用过滤器功能。过滤器菜单502可以包括图5中未示出的其它数据排序和过滤选项。

图6中示出协作电子表格中的经过滤工作表的示例。例如,将图4的工作表400视为未过滤工作表。用户选择用于“年龄”列的过滤器菜单,并且从小到大对年龄进行排序,并且未选择数据值“18”的数据复选框。这一过滤器将根据年龄排列工作表400的行,并且隐藏其中年龄值是18的任何行。图6中的工作表600示出向未过滤工作表400应用这一过滤器的结果。如可以看到的,工作表600的行被排列为使得最小的年龄在最前面,并且最大的年龄在最后。还有,因为与姓名“蒂龙”相关联的年龄值是18,“蒂龙”条目的整个行从工作表600的显示中被隐藏。通过省略行计数器中的隐藏行的行编号,工作表600可以指示行已经被过滤器隐藏。例如,在图6中没有行“5”。通过选择该列的过滤器下拉箭头,用户可以编辑或取消“年龄”列上的过滤器。用户还可以使用适当的过滤器下拉箭头来创建另一过滤器。

通常,当编辑云计算服务上存储的协作电子表格的用户向工作表应用过滤器时,过滤器被传输到云计算服务以及其也在查看工作表的任何其他协作者。从而在任何一个时刻只有一个过滤器可以被应用于工作表,并且多个协作者不能彼此独立地应用过滤器。如果多个协作者希望以不同方式过滤重叠数据集,则这可能是有问题的,因为工作表将只显示最新的过滤器。还有,云计算服务无法向用户提供保存多个过滤器并允许多个协作者独立地选择这些保存的过滤器的能力。

本申请的系统和方法向协作者提供独立地向协作电子表格的工作表应用过滤器的能力。针对协作电子表格中的每个工作表,云计算服务存储与该工作表相关联的多个过滤器。当客户端计算机上的用户访问协作电子表格的工作表时,云计算服务向客户端计算机提供工作表的本地副本以及与该工作表相关联的多个过滤器的副本。访问协作电子表格的其他协作者也接收工作表和过滤器的本地副本。当用户选择过滤器以应用于工作表时,过滤器变换工作表的本地副本上的数据,并且向用户显示经过滤工作表。不像正常变异,用户对过滤器的选择不会被传达到其他协作者。从而过滤器不会自动应用于协作者客户端计算机所显示的工作表。每个协作者可以独立地向云计算服务上存储的协作电子表格的同一工作表应用不同的过滤器。用户对过滤器的选择可以被传达给云计算服务,或者可以根本不传达。

客户端计算机可以使用web浏览器来显示云计算服务上存储的协作电子表格。云计算服务提供要在web浏览器上显示的用户界面(UI)。UI允许用户查看和编辑协作电子表格的工作表、以及调用诸如过滤之类的电子表格功能。图7示出用于显示协作电子表格的工作表的UI 700的示例。UI 700示出以标有数字的行和标有字母的列排列的数据的若干单元格。UI 700包括用于向工作表应用过滤器的侧栏窗口702。侧栏窗口702示出可以应用于工作表的过滤器列表。例如,过滤器704是“无过滤器”选项,当被选择时,其从工作表的显示移除所有过滤器。命名为“超过20”的过滤器706可以实现关于图6描述的过滤器,即“年龄”列从小到大排序并且等于18的任何年龄值从显示中移除。另一过滤器710命名为“过滤器2”。每个过滤器可以具有其可以被选择的下拉菜单708。下拉菜单708包括用于复制过滤器、重命名过滤器、删除过滤器、或者使所选过滤器作为默认过滤器的过滤器命令。过滤器704、706或708可以标记有诸如星号之类的符号,以表示哪个过滤器是默认过滤器。用于正向工作表应用的当前过滤器可以被突出显示或加粗,以指示哪个过滤器活跃。还存在用于创建新过滤器的过滤器命令712。选择过滤器命令712可以生成与图5所示的过滤器菜单502相似的过滤器编辑窗口,使得用户可以定义过滤器。用户可以创建过滤器而不保存过滤器,或者可以保存并命名过滤器,在这种情况下过滤器将被添加到侧栏窗口702所示的过滤器列表。侧栏窗口702可以包括图7中未示出的其它过滤器命令。例如,下拉菜单708可以具有用于使过滤器私有或公用的选项。如果使过滤器私有,没有其他协作者可以使用过滤器。UI 700还可以提供独立于过滤器功能的单独排序功能。当用户使用与过滤器功能相对的排序功能对工作表数据进行排序时,它可以被视为变异。从而排序命令被发送到云计算服务、以及其他协作者使得他们的数据显示被自动更新。如果用户使用过滤器功能对工作表数据进行排序,命令不被发送到其他协作者。在任一选项中,当受排序准则影响的单元格值改变时,工作表的显示可被自动更新以反映新的顺序。

当用户从UI 700上的菜单选择过滤器选项时侧栏窗口702可以出现,或者当用户编辑过滤器时侧栏窗口702可以被调用。只要存在应用于工作表的活跃过滤器,侧栏窗口702可以打开,并且当工作表上没有活跃的过滤器时,侧栏窗口702可以消失。当用户不使用侧栏窗口一段时间(诸如用户停止编辑过滤器后的一段时间)时,侧栏窗口702可以逐渐消失。侧栏窗口702可以由用户最小化、触发(toggle)或关闭,或者用户可以移动侧栏窗口702在UI 700内的位置。关闭侧栏窗口702可以从工作表的显示移除所有活跃过滤器。备选地,侧栏窗口702可以保持打开,并且仅当用户停用所有过滤器(即选择“无过滤器”选项)时,可以消失。仅当用户选择受过滤器影响的单元格或者编辑过滤器时,侧栏窗口702可以出现。可以存在其可以使得侧栏窗口702出现或从UI 700消失的通过用户的其它动作。UI 700可以提供具有对侧栏窗口702如何操作的解释的帮助链接。UI 700可以使用包括HTML和JavaScript的任何已知web浏览器编程语言来实现。

过滤器模型可以被存储在云计算服务和客户端计算机上作为具有若干定义属性的数据结构。例如,过滤器模型可以包括用于过滤器的唯一标识符(诸如字母数字字符串)以及由用户向过滤器给出的名称。过滤器模型包括过滤器应用在其之上的单元格范围。过滤器模型还可以包括经排序的行顺序的列表,其中未过滤工作表的行根据过滤器准则被映射到经过滤工作表的行。过滤器模型还可以包括隐藏行的布尔列表,其指示某些行将从视图中隐藏还是保持可见。过滤器模型还可以包括排除数据的列表,其跟踪图5中复选框512的用户选择。过滤器模型还可以包括其创建或最后修改过滤器的用户的标识。未列出的其它信息也可以被包括在过滤器模型中。每个过滤器具有相关联的数据结构,并且当加载协作电子表格的工作表时,这一数据结构从云计算服务被发送到客户端计算机。对过滤器的编辑改变数据结构,并且被传达到云计算服务和其他协作者。

向侧栏窗口702输入的用户动作可以被传达到云计算服务。例如,如果用户创建或复制用于工作表的新过滤器,客户端计算机可以创建过滤器模型并且将其发送到云计算服务以存储为与工作表相关联的过滤器。如果用户删除与工作表相关联的过滤器,客户端计算机可以向云计算服务发送请求以删除过滤器的对应主副本。如果用户编辑或重命名过滤器,客户端计算机改变其存储的过滤器模型,并且将经编辑的过滤器模型发送到云计算服务,然后云计算服务将更新过滤器模型的主副本。如果用户将过滤器设置为默认过滤器,则客户端计算机可以向云计算服务发送请求以将该过滤器的主副本设置为默认过滤器。随后从云计算服务访问工作表的任何协作者将接收未过滤工作表的副本,并且默认过滤器将自动应用。如果用户对电子表格进行写访问(例如,通过ACL确定的),则用户可以创建、编辑或删除过滤器。如果用户至对电子表格进行读访问,云计算服务可以允许用户使用过滤器,但是可能不会允许用户创建、编辑或删除过滤器。用户对过滤器的创建、编辑或删除可被发送到云计算服务以及当前访问电子表格的其他协作者。所以虽然使用过滤器重新排列数据不会被传达到协作者,但是对过滤器本身的改变被传达到协作者。

当向协作电子表格的工作表应用过滤器时,可以以两种方式参考单元格——参考未过滤工作表或者经过滤工作表。例如,在UI 700中在应用“超过20”过滤器的情况下,当参考经过滤工作表时,姓名条目“尼克”出现在单元格A4中。然而,当参考图4所示的未过滤工作表时,姓名“尼克”实际上在单元格A2中。过滤器可以被认为是在未过滤工作表的单元格和经过滤工作表的单元格之间的映射或变换。通过向未过滤工作表应用过滤器而生成经过滤工作表,并且经过滤工作表由客户端计算机显示。当用户输入对工作表的编辑或变异时,变异可以参考未过滤工作表的单元格或者可以参考经过滤工作表的单元格。此外,用户呈现信息可以被发送到其他协作者。例如,如果用户突出显示单元格A1-A5,则协作者客户端计算机上的用户界面可以显示用户已经突出显示了那些单元格。变异和用户呈现信息可以统称为用户动作。图8示出用于处理针对协作电子表格的用户动作的系统,其中参考未过滤工作表做出用户输入。系统800包括存储协作电子表格804的主副本的云计算服务802。协作电子表格804可以包括一个或多个工作表,并且每个工作表可以与一个或多个过滤器相关联。两个客户端计算机806和812连接到云计算服务802以访问协作电子表格804。当每个客户端计算机访问协作电子表格时,协作电子表格804的本地副本被加载到每个客户端计算机上,示为本地副本810和816。本地副本包括至少一个工作表的副本和相关联的用于该工作表的过滤器。

客户端计算机806上的用户向其协作电子表格的本地副本810应用命名为“过滤器1”的过滤器808。过滤器变换未过滤工作表的单元格,并且重新排列单元格以向用户显示。同样地,客户端计算机812上的用户选择示为过滤器变换814的“过滤器2”以应用于其协作电子表格的本地副本816。每个客户端计算机对过滤器的选择不会被传达到其它客户端计算机,并且从而每个用户对过滤器的选择不会受到其他用户的影响。客户端计算机806和812可以向云计算服务802发送过滤器选择信息。客户端计算机上的用户对本地副本810和816采取用户动作。根据用户动作是参考未过滤工作表还是经过滤工作表,由客户端计算机和云计算服务802来处理用户动作。

图8示出当用户动作参考未过滤工作表时经过滤电子表格的用户动作处理的示例。在这种情况下,客户端计算机上存储的本地副本810和816总是存储工作表的未过滤副本,而不管用户可能向工作表应用的任何过滤器808或814。用户发起其参考未过滤工作表的单元格的用户动作818。仅当向用户显示工作表时,过滤器808和814被应用于未过滤本地副本810和816。例如,假设过滤器将工作表的单元格A1中的数据重新排列到单元格D5。当用户向工作表应用该过滤器时,过滤器不会更改客户端计算机上存储的工作表的底层本地副本。更确切地说,客户端计算机从未过滤本地副本计算工作表的经过滤版本,并且显示经过滤工作表。这一经过滤工作表存储在临时存储器中,并且每当显示屏幕上的工作表刷新时,可以被重新计算。从而虽然客户端计算机屏幕将数据显示在单元格D5中,工作表的本地副本将数据存储在单元格A1中。当用户输入用户动作时,其参考工作表的未过滤本地副本被存储。例如,当用户编辑用户看到的作为显示上的单元格D5的内容时,客户端计算机实际上变异其本地副本中的单元格A1,而非单元格D5。仅当工作表的显示接着刷新时,客户端计算机向本地副本应用过滤器并且显示单元格D5中的变异。因为参考未过滤工作表存储用户动作,用户动作可以被直接发送到云计算服务和协作者客户端计算机,而无需任何变换。云计算服务将用户动作记录在其工作表的主副本中,并且将用户动作发送到当前访问工作表的所有其他协作者。在协作者客户端计算机处,用户动作被应用于该客户端计算机上存储的未过滤本地副本。如果协作者已经向本地副本应用过滤器,则在协作者客户端计算机的屏幕上显示之前,用户动作通过过滤器进行变换。例如,协作者可以接收对协作者客户端计算机上的本地副本的单元格A1的变异并且更新单元格A1。如果协作者使用将单元格A1中的数据变换到单元格B3的过滤器,变异通过过滤器进行变换并且协作者计算机屏幕上的单元格B3被更新。

协作电子表格可以具有其计算单元格值的计算引擎。这一引擎与向用户显示工作表的UI引擎分立。当用户动作参考未过滤工作表时,计算和公式受到影响,并且仅当显示时,过滤工作表。计算和公式可以使用由过滤器重新排列的一个或多个单元格中找到的数据。当公式或计算被显示在屏幕上时,它可以参考未过滤工作表的单元格,而工作表本身已经重新排列。这对于用户查看来说可能是混乱的。为了解决这一问题,过滤器还可以被应用于计算和公式中的单元格参考。从而当计算和公式显示在屏幕上时,它们参考经过滤工作表的单元格,而存储器中存储的实际计算或公式参考未过滤工作表的单元格。客户端计算机还可以限制用户创建新公式的能力。例如,如果用户突出显示要在公式中使用的工作表的经过滤视图中的连续单元格集,单元格集可能实际上在未过滤视图中不是连续的。客户端计算机可以不允许这样的动作。

在备选设计中,用户动作可以参考客户端计算机上的经过滤工作表的单元格。图9示出当用户动作参考经过滤工作表时的对经过滤电子表格的变异处理的示例。系统900包括存储协作电子表格904的主副本的云计算服务902。协作电子表格904可以包括一个或多个工作表,并且每个工作表可以与一个或多个过滤器相关联。两个客户端计算机906和912连接到云计算服务902以访问协作电子表格904。当每个客户端计算机访问协作电子表格时,协作电子表格904的本地副本被加载到每个客户端计算机上,示为本地副本910和916。本地副本包括至少一个工作表的副本和相关联的用于该工作表的过滤器。客户端计算机906上的用户向其协作电子表格的本地副本910应用“过滤器1”。同样地,客户端计算机912上的用户向其协作电子表格的本地副本916应用“过滤器2”。

在图9中,每当用户选择或改变过滤器时,客户端计算机上存储的本地副本910和916被更新。从而,不像关于图8的情况,过滤器改变工作表的本地副本,该本地副本然后直接向用户显示。对工作表的用户变异918参考经过滤工作表的单元格。从而当由客户端计算机接收用户动作时,用户动作被应用于工作表的经过滤本地副本并且直接向用户显示。然而,在用户动作被发送到云计算服务之前,用户动作通过过滤器的逆进行变换,使得用户动作参考未过滤工作表。当客户端计算机906上的用户向工作表应用过滤器1时,客户端计算机906确定和存储“过滤器1”908的逆,其将经过滤工作表的单元格映射到未过滤工作表的单元格。同样地,客户端计算机912确定和存储“过滤器2”914的逆。例如,用户变异参考客户端计算机上存储的经过滤本地副本的单元格D5,其中单元格D5中的数据对应于未过滤工作表的单元格A1中的数据。在变异被发送到云计算服务之前,根据过滤器的逆来变换变异,使得经变换的变异参考单元格A1。这一用户动作被发送到云计算服务以记录在工作表的未过滤主副本中。云计算服务还将用户动作发送到当前访问工作表的其他协作者。在协作者客户端计算机处,用户动作通过由协作者使用的任何过滤器进行变换,并且然后被保存为该客户端计算机上的本地副本。例如,如果协作者使用将单元格A1中的数据变换到单元格B3的过滤器,则变异通过过滤器进行变换并且被存储在协作者客户端计算机上的工作表的本地副本的单元格B3中。公式和计算也可以以与用户动作相同的方式进行变换,因此单元格参考对于每个协作者具有逻辑意义。

在另一备选设计中,客户端计算服务可以跟踪每个协作者当前正使用的过滤器。如图9中的,工作表的本地副本可以由过滤器更改,并且用户动作参考经过滤工作表进行存储。客户端计算机可以将用户动作直接发送到云计算服务,云计算服务执行逆过滤器变换以获得参考未过滤工作表的用户动作。云计算服务还可以在将用户动作发送到协作者客户端计算机之前,通过由协作者使用的过滤器对用户动作进行变换。从而与图9中描述的情况相比之下,过滤器变换和逆变换的计算在云计算服务而非客户端计算机上完成。通过跟踪协作者正使用哪些过滤器,云计算服务还可以允许一些协作者镜像彼此的过滤器,而允许其他协作者独立地使用过滤器。例如,如果用户A和用户B选择彼此镜像,则用户A对过滤器的任何应用自动地更新用户B的工作表视图。另一用户C选择独立地工作,并且所以用户C的工作表视图不会受到用户A对过滤器的选择的影响。

现在描述用于创建、存储和显示用于云计算服务上存储的协作电子表格的过滤器的各种方法。图10所示的一种方法提供查看云计算服务上存储的协作电子表格上的过滤器的方法。方法1000包括从多个客户端计算机中的每个客户端计算机访问云计算服务上存储的电子表格的第一工作表,其中多个过滤器与第一工作表相关联。方法进一步包括在多个客户端计算机中的第一客户端计算机处接收第一用户的向第一工作表应用多个过滤器中的第一过滤器的命令。方法进一步包括向第一客户端计算机上的第一工作表应用第一过滤器、并且向第一用户显示经过滤第一工作表,其中多个客户端计算机中的第二客户端计算机并发地显示未过滤第一工作表。方法1000可以在其可以连接到云计算服务的任何类型的客户端计算机上执行,诸如图3中描述的客户端计算机或者任何台式计算机、膝上型计算机、平板电脑、智能电话、或者这样的电子设备。

1002处图示的,当多个客户端计算机访问云计算服务上存储的协作电子表格的第一工作表时,方法1000开始。云计算服务上存储的电子表格的主副本包含一个或多个工作表,其中至少一个工作表与多个过滤器相关联。如上面描述的,过滤器重新排列针对用户的工作表上的数据显示,并且可以包括对数据进行排序以及从视图中移除某些数据值。过滤器可以由用户定义并且存储在云计算服务上。诸如图1中图示的,云计算服务允许多个客户端计算机上的用户并发地访问第一工作表。电子表格可以具有ACL,ACL确定哪些用户可以访问电子表格以及每个用户的访问级别。当客户端计算机上的用户访问第一工作表时,云计算服务向客户端计算机发送第一工作表的副本以及相关联的过滤器。这一副本被存储为客户端计算机上的本地副本并且向用户显示(例如,通过web浏览器)。Web浏览器上的用户界面允许用户查看和编辑工作表。由用户做出的编辑或变异被记录在工作表的本地副本中,并且被发送到云计算服务以记录在主副本中。

1004处图示的,在第一工作表的本地副本被加载到每个客户端计算机上之后,客户端计算机接收来自用户的向第一工作表应用过滤器的命令。云计算服务向客户端计算机提供用于查看和编辑第一工作表的用户界面,诸如图7所示的用户界面。用户界面包括用于用户选择要应用于第一工作表中的单元格组的过滤器的菜单或侧栏窗口。用户突出显示用户期望过滤的单元格组,并且从与第一工作表相关联的多个过滤器中选择过滤器。1006处图示的,然后客户端计算机向第一工作表应用所选过滤器。如先前在这一应用中描述的,过滤器变换第一工作表的本地副本中存储的单元格数据。如果用户先前已经向第一工作表应用另一过滤器,则新过滤器的选择使得客户端计算机移除先前的过滤器并且向第一工作表应用新的过滤器。

1008处图示的,在客户端计算机向第一工作表应用所选过滤器之后,向客户端计算机的用户显示经过滤第一工作表。一个客户端计算机上的过滤器的用户选择不会被传达到并发地访问同一工作表的其它客户端计算机。从而虽然一个客户端计算机上的用户可以向第一工作表应用过滤器,但是第二客户端计算机仍然显示未过滤工作表,或者也许显示基于第二客户端计算机上的用户对另一过滤器的选择而过滤的工作表。过滤器的用户选择可以被传达到云计算服务,云计算服务可以存储每个用户当前正使用什么过滤器。然而,云计算服务不会更改第一工作表的主副本,并且不会向其它客户端计算机发送过滤器选择信息。以这种方式,方法1000向多个并发协作者提供独立地在云计算服务上存储的协作电子表格上利用过滤器的能力。

本文中描述的另一方法提供创建用于云计算服务上存储的协作电子表格的过滤器的方法。图11中的方法1100包括从多个客户端计算机中的每个客户端计算机访问云计算服务上存储的电子表格的第一工作表。方法进一步包括在多个客户端计算机中的第一客户端计算机上创建第一过滤器,其中第一客户端计算机上的用户定义第一过滤器。方法进一步包括:向第一客户端计算机上的第一工作表应用第一过滤器,其中多个客户端计算机中的第二客户端计算机并发地显示未过滤第一工作表;以及向云计算服务发送第一过滤器以用于存储和与第一工作表相关联。方法1100可以在其可以连接到云计算服务的任何类型的客户端计算机上执行,诸如图3中描述的客户端计算机或者任何台式计算机、膝上型计算机、平板电脑、智能电话、或者这样的电子设备。

1102处图示的,当多个客户端计算机访问云计算服务上存储的协作电子表格的第一工作表时,方法1100开始。云计算服务上存储的电子表格的主副本包含一个或多个工作表。一个或多个过滤器可以与每个工作表相关联。诸如图1中图示的,云计算服务允许多个客户端计算机上的用户并发地访问第一工作表。电子表格可以具有ACL,ACL确定哪些用户可以访问电子表格以及每个用户的访问级别。当客户端计算机上的用户访问第一工作表时,云计算服务向客户端计算机发送第一工作表的副本以及相关联的过滤器。这一副本被存储为客户端计算机上的本地副本并且向用户显示(例如通过web浏览器)。Web浏览器上的用户界面允许用户查看和编辑工作表。由用户做出的编辑或变异被记录在工作表的本地副本中,并且被发送到云计算服务以记录在主副本中。

1104处图示的,在第一工作表的本地副本被加载在客户端计算机上之后,第一客户端计算机上的用户创建用于第一工作表的第一过滤器。创建或编辑用于电子表格的过滤器的能力可以由电子表格的ACL来限制。例如,具有写访问的用户可以创建或编辑用于工作表的过滤器,而具有读访问的用户可以使用过滤器但是不可以创建或编辑它们。如上面描述的,过滤器重新排列针对用户的工作表上的数据显示,并且可以包括对数据进行排序以及从视图中移除某些数据值。云计算服务向客户端计算机提供用于创建和编辑用于第一工作表的过滤器的用户界面,诸如图5和图7所示的用户界面。这一用户界面可以显示在客户端计算机上执行的web浏览器上。例如,用户界面可以包括用于用户创建或编辑过滤器以及将它应用于第一工作表中的单元格组的菜单或侧栏窗口,诸如图7所示的侧栏窗口。当用户选择创建或编辑过滤器的选项时,可以出现与图5中的菜单502相似的菜单。在这一菜单中,用户定义过滤器,诸如定义排序顺序或者选择要显示或从显示中移除的某些数据值。

1106处图示的,在用户创建或编辑过滤器之后,过滤器被应用于客户端计算机的第一工作表。如先前在这一应用中描述的,过滤器变换第一工作表的本地副本中存储的单元格数据。然后向用户显示经过滤工作表。创建或编辑的过滤器还被发送到云计算服务,在云计算服务处过滤器被存储并且与第一工作表相关联。第一工作表还可以具有与其相关联的其它过滤器。具有对电子表格的适当访问的每个用户可以创建、编辑、删除、重命名或复制过滤器。当用户创建或编辑过滤器时,云计算服务可以将创建或更新的过滤器发送到并发地访问第一工作表的其它客户端计算机,因此其他用户可以使用过滤器。当用户删除过滤器时,云计算服务删除过滤器的主副本,并且指示其它客户端计算机也删除它们的过滤器副本。以这种方式,方法1100向多个并发协作者提供创建或编辑云计算服务上存储的协作电子表格上的过滤器的能力。

本文中描述的另一方法公开了提供用于托管云计算服务的服务器上存储的协作电子表格的过滤器的方法。图12中的方法1200包括:将电子表格存储在服务器上,其中电子表格包括多个工作表;以及授权多个客户端计算机并发访问电子表格。方法进一步包括:从多个客户端计算机接收要应用于多个工作表中的第一工作表的多个过滤器;以及将多个过滤器存储在服务器上,其中多个过滤器与第一工作表相关联。方法进一步包括向多个客户端计算机中的每个客户端计算机提供多个过滤器,其中当多个客户端计算机中的第一客户端计算机上的用户向第一工作表应用多个过滤器中的第一过滤器时,多个客户端计算机中的第二客户端计算机上的第一工作表的显示独立于第一客户端计算机上的过滤器应用。方法1200可以在托管云计算服务的服务器(诸如图2中描述的服务器)上执行。

1202处图示的,当电子表格被存储在托管云计算服务的服务器上时,方法1200开始。电子表格具有一个或多个工作表,其中每个工作表由以列和行排列的若干单元格组成。诸如图1中图示的,客户端计算机上的用户连接到服务器以访问电子表格。服务器提供用于用户查看和编辑电子表格的工作表的用户界面,诸如每个客户端计算机上执行的web浏览器上显示的用户界面。用于电子表格的用户界面的示例被示于图4至图7中。电子表格可以已经由客户端计算机上的用户创建并且被保存在服务器上。电子表格是协作式的,从而意指不止一个用户可以同时编辑电子表格。电子表格可以与其确定每个用户对电子表格的访问级别的访问控制列表相关联。

1204处图示的,在电子表格被存储在服务器上之后,服务器授权一个或多个客户端计算机并发访问电子表格。客户端计算机上的用户可以并发地协作和编辑电子表格。当客户端计算机连接到服务器并且请求访问电子表格时,服务器可以检查用户是否在电子表格的ACL中。如果用户是授权用户,服务器向客户端计算机提供电子表格的副本。客户端计算机将这一副本存储为客户端计算机上的本地副本,并且将它显示在web浏览器内。从而每个客户端计算机拥有电子表格的本地副本,而服务器保持主副本。由一个用户做出的变异被传播到服务器和其他用户,因此所有协作者具有电子表格的最新副本。

1206处图示的,在客户端计算机已被授权访问电子表格之后,服务器从一个或多个客户端计算机接收要应用于电子表格的第一工作表的多个过滤器。客户端计算机上的用户使用服务器提供的用户界面创建过滤器。例如,用户可以选择图7所示的侧栏窗口702中提供的“创建新过滤器”选项712。然后用户使用与图5所示的菜单502相似的过滤器菜单来定义过滤器。过滤器可以包括用于对某些单元格进行排序或者从视图中隐藏某些单元格值的命令。一旦用户定义过滤器,它就被保存在客户端计算机上并且被发送到服务器。用户还可以使用用户界面来编辑过滤器、重命名过滤器、复制过滤器、将过滤器设置为默认过滤器、或者删除过滤器。访问控制列表可以确定哪些用户可以创建、编辑或删除用于电子表格的过滤器。1208处图示的,服务器接收由各种用户创建的过滤器并且存储它们。服务器将过滤器与第一工作表相关联。如果用户已经编辑或重命名过滤器,服务器保存更新的过滤器以代替旧过滤器。如果用户已经删除过滤器,服务器删除其过滤器的副本。如果用户将过滤器设置为默认过滤器,服务器可以设置用于其过滤器的副本的标志。

1210处图示的,在用于第一工作表的若干过滤器已被创建并且存储在服务器上之后,服务器向每个客户端计算机提供最新的多个过滤器。服务器向每个客户端计算机发送任何新过滤器、用户对过滤器做出的改变、或者用于删除过滤器的命令,使得所有协作者具有可用于第一工作表的过滤器的最新列表。因为每个客户端计算机保持第一工作表的单独本地副本,用户可以独立地向他们的第一工作表的本地副本应用过滤器,而不影响第一工作表在其它客户端计算机上的显示。过滤器的应用不会被视为与变异相同,变异被自动地传递到其他协作者。用户对过滤器的选择可以被传达到服务器,但是选择不会被传达到协作者客户端计算机。例如,两个用户可以向相同数据集应用两个不同的过滤器,并且不会彼此干扰,或者一个用户可以应用过滤器,而另一用户可以仍然查看第一工作表的未过滤版本。服务器可以向用户提供用于镜像彼此的过滤器选择的选项。例如,如果用户A和用户B选择彼此镜像,则用户A对过滤器的任何应用自动地更新针对用户B的工作表视图。另一用户C选择独立地工作,并且所以用户C的工作表视图不会受到用户A对过滤器的选择的影响。以这种方式,方法1200提供用于托管云计算服务的服务器提供用于协作电子表格的过滤器的方法。

本文中描述的另一方法公开了当用户动作参考未过滤工作表时处理协作电子表格上的用户动作的方法。图13所示的方法1300包括访问服务器上存储的电子表格的未过滤工作表以在客户端计算机上显示,其中多个过滤器与未过滤工作表相关联。方法进一步包括:接收用户对要应用于未过滤工作表的多个过滤器中的第一过滤器的选择;以及向用户显示经过滤工作表,其中通过向未过滤工作表应用第一过滤器来获得经过滤工作表。方法进一步包括:接收由客户端计算机上的用户输入的用户动作,其中用户动作参考未过滤工作表的单元格;向服务器发送用户动作;根据第一过滤器变换用户动作;以及基于变换的用户动作来更新经过滤工作表的显示。方法1300可以在其可以连接到云计算服务的任何类型的客户端计算机上执行,诸如图3中描述的客户端计算机或者任何台式计算机、膝上型计算机、平板电脑、智能电话、或者这样的电子设备。

1302处图示的,当客户端计算机访问托管云计算服务的服务器上存储的电子表格的未过滤工作表时,方法1300开始。服务器上存储的电子表格的主副本包含一个或多个工作表。一个或多个过滤器可以与每个工作表相关联。如图1中图示的,服务器允许客户端计算机上的多个用户并发地访问第一工作表。电子表格可以具有ACL,ACL确定哪些用户可以访问电子表格以及每个用户的访问级别。当客户端计算机上的用户访问第一工作表时,云计算服务向客户端计算机发送第一工作表的副本以及相关联的过滤器。这一副本被存储为客户端计算机上的本地副本并且向用户显示(例如,通过web浏览器)。Web浏览器上的用户界面允许用户查看和编辑工作表,诸如图4至图7所示的用户界面。

1304处图示的,在客户端计算机访问来自服务器的未过滤工作表之后,客户端计算机接收要应用于未过滤工作表的第一过滤器的选择。诸如图7中图示的,用户界面可以包括侧栏窗口,用户可以从侧栏窗口中选择要应用于未过滤工作表中的数据区段的过滤器。1306处图示的,然后客户端计算机向未过滤工作表应用第一过滤器,并且显示结果经过滤工作表。第一过滤器是在未过滤工作表的单元格和经过滤工作表的单元格之间的映射或变换。例如,第一过滤器可以将未过滤工作表的单元格A1映射到经过滤工作表的单元格B2,于是使得当应用第一过滤器时,单元格B2的显示会显示单元格A1的数据值。客户端计算机上存储的未过滤工作表的本地副本不会受到用户对第一过滤器的选择的影响。也就是,在存储器中客户端计算机不会用经过滤工作表覆写未过滤工作表。更确切地说,经过滤工作表被临时存储和显示在客户端计算机的显示屏幕上。

1308处图示的,在向用户显示经过滤工作表之后,客户端计算机接收由用户输入的用户动作。用户动作可以是编辑或变异或者用户呈现活动(诸如,突出显示或者选择一个或多个单元格)。用户动作参考未过滤工作表而非经过滤工作表的单元格。例如,如果用户改变单元格A1(其通过第一过滤器被映射到单元格B2)中的数据值,用户动作参考单元格A1。在用户选择单元格A1的情况下是同样的。从而改变客户端计算机上存储的未过滤工作表的本地副本中的单元格A1。1310处图示的,这一用户动作(未改变的)被发送到服务器。服务器存储不受过滤器的用户选择影响的第一工作表的主副本,所以用户动作可以直接应用于第一工作表的主副本。然后服务器可以将用户动作发送到当前也在访问电子表格的任何其他协作者。在显示它之前,协作者客户端计算机将根据已经应用于它们的本地副本的任何过滤器来变换用户动作。关于图14讨论协作者用户动作的变换。

1312处图示的,还根据客户端计算机上的第一过滤器来变换用户动作。在用户动作根据第一过滤器进行变换之后,它参考经过滤工作表的单元格。从而对单元格A1的变异被变换为单元格B2的变异。1314处图示的,经过滤工作表通过变换的用户动作而更新,并且然后向用户显示。通过在存储器中保持未过滤工作表、并且当向用户显示工作表时仅确定经过滤工作表,客户端计算机可以将用户动作直接发送到服务器,而不需要对它们进行更改。这允许服务器和客户端计算机彼此直接传达用户动作,而无需中间变换层来考虑用户应用的任何过滤器。以这种方式,方法1300提供当用户动作参考未过滤工作表时,处理协作电子表格上的用户动作的方法。

本文中描述的另一方法公开了当协作者动作参考未过滤工作表时,处理协作电子表格上的协作者动作的方法。图14中图示的方法1400包括:访问服务器上存储的电子表格的未过滤工作表以在客户端计算机上显示,其中多个过滤器与未过滤工作表相关联;以及接收用户对要应用于未过滤工作表的多个过滤器中的第一过滤器的选择。方法进一步包括:向用户显示经过滤工作表,其中通过向未过滤工作表应用第一过滤器而获得经过滤工作表;以及从服务器接收协作者动作,其中协作者动作参考未过滤工作表的单元格。方法进一步包括:根据第一过滤器来变换协作者动作;以及基于变换的协作者动作,更新经过滤工作表的显示。方法1400可以在其可以连接到云计算服务的任何类型的客户端计算机上执行,诸如图3中描述的客户端计算机或者任何台式计算机、膝上型计算机、平板电脑、智能电话、或者这样的电子设备。

1402处图示的,当客户端计算机访问托管云计算服务的服务器上存储的电子表格的未过滤工作表时,方法1400开始。服务器上存储的电子表格的主副本包含一个或多个工作表。一个或多个过滤器可以与每个工作表相关联。如图1中图示的,服务器允许客户端计算机上的多个用户并发地访问第一工作表。电子表格可以具有ACL,ACL确定哪些用户可以访问电子表格以及每个用户的访问级别。当客户端计算机上的用户访问第一工作表时,云计算服务向客户端计算机发送第一工作表的副本以及相关联的过滤器。这一副本被存储为客户端计算机上的本地副本并且向用户显示(例如,通过web浏览器)。Web浏览器上的用户界面允许用户查看和编辑工作表,诸如图4至图7所示的用户界面。

1404处图示的,在客户端计算机访问来自服务器的未过滤工作表之后,客户端计算机接收要应用于未过滤工作表的第一过滤器的选择。诸如图7中图示的,用户界面可以包括侧栏窗口,用户可以从侧栏窗口中选择要应用于未过滤工作表中的数据区段的过滤器。1406处图示的,然后客户端计算机向未过滤工作表应用第一过滤器,并且显示结果经过滤工作表。第一过滤器是在未过滤工作表的单元格和经过滤工作表的单元格之间的映射或变换。例如,第一过滤器可以将未过滤工作表的单元格A1映射到经过滤工作表的单元格B2,于是使得当应用第一过滤器时,单元格B2的显示会显示单元格A1的数据值。客户端计算机上存储的未过滤工作表的本地副本不会受到用户对第一过滤器的选择的影响。也就是,在存储器中客户端计算机不会用经过滤工作表覆写未过滤工作表。更确切地说,经过滤工作表被临时存储和显示在客户端计算机的显示屏幕上。

1408处图示的,在向用户显示经过滤工作表之后,客户端计算机从服务器接收协作者动作。协作者动作可以是当前访问电子表格的协作者对第一工作表做出的变异或者协作者呈现活动(诸如,突出显示或者选择一个或多个单元格)。协作者动作参考未过滤工作表而非经过滤工作表的单元格。例如,如果协作者改变单元格A1(其通过客户端计算机上的第一过滤器被映射到单元格B2)中的数据值,从服务器接收的协作者动作参考单元格A1。客户端计算机将协作者动作应用于存储器中存储的未过滤工作表。服务器接收来自协作者的协作者动作并且将它直接应用于服务器存储的第一工作表的主副本。然后,服务器将变异发送到当前也在访问电子表格的任何其他协作者。

1410处图示的,在客户端计算机接收协作者动作之后,它根据第一过滤器来变换协作者动作。在协作者动作根据第一过滤器进行变换之后,它参考经过滤工作表的单元格。从而对单元格A1的变异被变换为单元格B2的变异。1412处图示的,经过滤工作表通过变换的协作者动作而更新,并且然后向用户显示。例如,客户端计算机的显示屏幕上的单元格B2可以改变为反映协作者的变异。在协作者呈现活动的情况下,web浏览器上的用户界面可以示出协作者当前正突出显示单元格B2。以这种方式,方法1400提供当用户动作参考未过滤工作表时,处理协作电子表格上的协作者动作的方法。

本文中描述的另一方法公开了当用户动作参考经过滤工作表时处理协作电子表格上的用户动作的方法。图15中图示的方法1500包括:访问服务器上存储的电子表格的未过滤工作表以在客户端计算机上显示,其中多个过滤器与未过滤工作表相关联;以及接收用户对要应用于未过滤工作表的多个过滤器中的第一过滤器的选择。方法进一步包括:向用户显示经过滤工作表,其中通过向未过滤工作表应用第一过滤器来获得经过滤工作表;以及接收由客户端计算机上的用户输入的用户动作,其中用户动作参考经过滤工作表的单元格。方法进一步包括:基于用户动作而更新经过滤工作表的显示;根据第一过滤器的逆来变换用户动作;以及向服务器发送经变换的用户动作。方法1500可以在其可以连接到云计算服务的任何类型的客户端计算机上执行,诸如图3中描述的客户端计算机或者任何台式计算机、膝上型计算机、平板电脑、智能电话、或者这样的电子设备。

1502处图示的,当客户端计算机访问托管云计算服务的服务器上存储的电子表格的未过滤工作表时,方法1500开始。服务器上存储的电子表格的主副本包含一个或多个工作表。一个或多个过滤器可以与每个工作表相关联。如图1中图示的,服务器允许客户端计算机上的多个用户并发地访问第一工作表。电子表格可以具有ACL,ACL确定哪些用户可以访问电子表格以及每个用户的访问级别。当客户端计算机上的用户访问第一工作表时,云计算服务向客户端计算机发送第一工作表的副本以及相关联的过滤器。这一副本被存储为客户端计算机上的本地副本并且向用户显示(例如,通过web浏览器)。Web浏览器上的用户界面允许用户查看和编辑工作表,诸如图4至图7所示的用户界面。

1504处图示的,在客户端计算机访问来自服务器的未过滤工作表之后,客户端计算机接收要应用于未过滤工作表的第一过滤器的选择。诸如图7中图示的,用户界面可以包括侧栏窗口,用户可以从侧栏窗口中选择要应用于未过滤工作表中的数据区段的过滤器。1406处图示的,然后客户端计算机向未过滤工作表应用第一过滤器,并且显示结果经过滤工作表。第一过滤器是在未过滤工作表的单元格和经过滤工作表的单元格之间的映射或变换。例如,第一过滤器可以将未过滤工作表的单元格A1映射到经过滤工作表的单元格B2,于是使得当应用第一过滤器时,单元格B2的显示会显示单元格A1的数据值。与方法1300中的其中未过滤工作表不会被覆写为经过滤工作表的情况相反,客户端计算机上存储的未过滤工作表的本地副本被覆写为经过滤工作表。

1508处图示的,在向用户显示经过滤工作表之后,客户端计算机接收由用户输入的用户动作。用户动作可以是编辑或变异或者用户呈现活动(诸如,突出显示或者选择一个或多个单元格)。用户动作参考经过滤工作表而非未过滤工作表的单元格。例如,如果用户改变未过滤单元格A1(其通过第一过滤器被映射到单元格B2)中的数据值,用户动作参考单元格B2。在用户选择未过滤单元格A1的情况下是同样的。从而改变客户端计算机上存储的第一工作表的本地副本中的单元格B2。1510处图示的,经过滤工作表由用户动作直接更新,并且然后向用户显示。

1512处图示的,还根据客户端计算机上的第一过滤器的逆来变换用户动作。在用户动作根据第一过滤器的逆进行变换之后,它参考未过滤工作表的单元格。从而对经过滤工作表的单元格B2的变异被变换为对未过滤工作表的单元格A1的变异。1514处图示的,这一经变换的用户动作被发送到服务器。服务器存储不受过滤器的用户选择影响的第一工作表的主副本,所以向服务器发送的用户动作应该参考未过滤工作表而不是经过滤工作表的单元格。否则,服务器将改变其主副本中的错误单元格。然后服务器可以将用户动作发送到当前也在访问电子表格的任何其他协作者。在显示它之前,协作者客户端计算机将根据已经应用于它们的本地副本的任何过滤器来变换用户动作。关于图14讨论了协作者动作的变换。通过在存储器中保持经过滤工作表,客户端计算机可以显示用户动作,而无需任何中间步骤。这导致比方法1300更快的显示时间。然而,在被发送到服务器之前,用户动作根据过滤器的逆进行变换,以保持与第一工作表的服务器副本的一致性。以这种方式,方法1500提供当用户动作参考经过滤工作表时,处理协作电子表格上的用户动作的方法。

在方法1500的备选方法中,客户端计算机可以向服务器发送未变换的用户动作连同关于客户端计算机当前使用哪个过滤器的信息。然后服务器可以根据第一过滤器的逆来变换用户动作。然后用户动作可以被存储在服务器存储器中。服务器还可以在向协作者发送用户动作之前,根据协作者使用的过滤器来变换经变换的用户动作。

应当理解,本文中描述的系统和方法的方面在图中图示的实施方式中可以实现在许多不同形式的软件、固件和硬件中。用于实现符合本文中描述的系统和方法的原理的方面的实际的软件代码或专用控制硬件不是限制性的。从而,系统和方法的方面的操作和行为在未参照具体软件代码的情况下进行描述——应当理解,本领域普通技术人员将能够基于本文中的描述来设计用于实现方面的软件和控制硬件。

相似地,虽然在附图中以特定顺序来描述操作,这不应该被理解为要求以所示的特定顺序或者以序列顺序来执行这样的操作,或者要求执行所有图示的操作,以实现期望结果。在某些情况下,多任务处理和并行处理可以是有利的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号