平码五不中公式规律
  • / 37
  • 下载费用:30 金币  

协作电子表格中的有效拷贝粘贴.pdf

关 键 ?#21097;?/dt>
协作 电子表格 中的 有效 拷贝 粘贴
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201580035486.5

申请日:

2015.11.25

公开号:

CN106663088A

公开日:

2017.05.10

当前法律状态:

实审

有效性:

审中

法?#19978;?#24773;: 著录事项变更IPC(主分类):G06F 17/22变更事项:申请人变更前:谷歌公司变更后:谷歌有限责任公司变更事项:地址变更前:美国加利福尼亚州变更后:美国加利福尼亚州|||实质审查的生效IPC(主分类):G06F 17/22申请日:20151125|||公开
IPC分类号: G06F17/22; G06F17/24 主分类号: G06F17/22
申请人: 谷歌公司
发明人: 本杰明·沃尔夫·西蒙; 阿莫德·卡尔韦; 乔舒亚·阿里·丹齐格; 扎卡里·埃里克·罗伊德
地址: 美国加利福尼亚州
优?#28909;ǎ?/td> 2014.12.04 US 14/560,954
专利代理机构: 中原信达知识产权代理有限责任公司 11219 代理人: 周亚荣;安翔
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201580035486.5

授权公告号:

||||||

法律状态公告日:

2018.02.13|||2017.12.15|||2017.05.10

法律状态类型:

著录事项变更|||实质审查的生效|||公开

摘要

本文公开了用于编辑托管在服务器上的协作电子表格的系统和方法。多个用户可以编辑所述电子表格,这会导致交叉或冲突编辑的状况。由一个用户提供的更改可以与由另一个用户提供的更改所影响的单元格相交叉。在这些情形下,一个用户的更改针对另一个用户的更改而被变换。通过这种方式,冲突得到解决,并且两个更改都能够被应用于所述电子表格。每个用户设备都可以执行这些变换,并且服务器也可以执行这些变换。与其他方法相比,这能够减少通过网络在设备与服务器之间传输的数据量。

权利要求书

1.一种用于编辑托管在服务器上的协作电子表格的计算机实现的方法,包括:
使用处理器并且在用户设备上基于存储在所述用户设备上的第一模型来显示所述协
作电子表格;
在所述处理器处并且从用户接收第一输入,所述第一输入包括所述电子表格的源范
围、所述电子表格的目的地范围、以及用以将内容从所述源范围拷贝到所述目的地范围的
指令;
在所述处理器处并且从所述服务器接收第二输入以修改所述电子表格的一部分,其
中,所述第二输入包括用以通过影响所述源范围和所述目的地范围中的至少一个中的内容
的方式来修改所述电子表格的指令;
在所述处理器处基于所述第二输入来变换所述第一输入以获得经变换的第一输入;
使用所述处理器基于所述第二输入来修改所述第一模型以获得第二模型;
使用所述处理器基于所述经变换的第一输入来进一步修改所述第二模型以获得第三
模型;以及
使用所述处理器并且在所述用户设备处基于所述第三模型来显示所述协作电子表格。
2.根据权利要求1所述的方法,进一步包括:向所述服务器传送存储在所述用户设备上
的所述第一输入以及对应于所述第一模型的第一修订号。
3.根据权利要求2所述的方法,进一步包括:基于是否从所述服务器接收到确认来确定
是否变换所述第一输入,其中,所述确认与所述第一输入相关联并且包括大于所述第一修
订号的第二修订号。
4.根据权利要求3所述的方法,其中,是否接收到所述确认来确定是否进一步修改所述
第二模型。
5.根据权利要求1所述的方法,进一步包括:向所述服务器传送存储在所述用户设备上
的所述经变换的第一输入以及对应于所述第二模型的修订号。
6.根据权利要求1所述的方法,其中:
所述目的地范围大于所述源范围;以及
用以拷贝内容的指令包括用以将内容从所述源范围拼贴?#20102;?#36848;目的地范围的指令。
7.一种用于编辑托管在服务器上的协作电子表格的计算机实现的方法,包括:
在所述服务器处从第一用户设备接收用以修改所述电子表格的第一输入;
在所述服务器处从第二用户设备接收第二输入,所述第二输入包括所述电子表格的源
范围、所述电子表格的目的地范围、以及用以将内容从所述源范围拷贝?#20102;?#36848;目的地范围
的指令,其中,所述第一输入包括用以通过影响所述源范围和所述目的地范围中的至少一
个的方式修改所述电子表格的指令;
基于所述第一输入来变换所述第二输入以获得经变换的第二输入;以及
从所述服务器向所述第一用户设备传送所述经变换的第二输入。
8.根据权利要求7所述的方法,进一步包括:基于将与所述第一输入相关联的第一修订
号同与所述第二输入相关联的第二修订号相比较,来确定是否变换所述第二输入。
9.根据权利要求7所述的方法,进一步包括:
基于所述第一输入修改存储在所述服务器上的所述电子表格的模型以获得第一修改
模型;以及
基于所述经变换的第二输入进一步修改所述第一修改模型以获得第二修改模型。
10.根据权利要求9所述的方法,进一步包括:
从所述服务器向所述第一用户设备传送对所述第一输入的确认以及第一修订号;
从所述服务器向所述第二用户设备传送所述第一输入以及所述第一修订号;
从所述服务器向所述第一用户设备传送所述经变换的第二输入以及大于所述第一修
订号的第二修订号;以及
从所述服务器向所述第二用户设备传送对所述第二输入的确认以及所述第二修订号。
11.一种包括处理器的系统,所述处理器被配置成:
使用所述处理器并?#19968;?#20110;存储在所述系统上的第一模型来显示托管在服务器上的协
作电子表格;
在所述处理器处并且从用户接收第一输入,所述第一输入包括所述电子表格的源范
围、所述电子表格的目的地范围、以及用以将内容从所述源范围拷贝到所述目的地范围的
指令;
在所述处理器处并且从所述服务器接收第二输入以修改所述电子表格的一部分,其
中,所述第二输入包括用于以影响所述源范围和所述目的地范围中的至少一个中的内容的
方式来修改所述电子表格的指令;
在所述处理器处基于所述第二输入来变换所述第一输入以获得经变换的第一输入;
使用所述处理器基于所述第二输入来修改所述模型以获得第二模型;
使用所述处理器基于所述经变换的第一输入来进一步修改所述第二模型以获得第三
模型;以及
使用所述处理器基于所述第三模型来显示所述协作电子表格。
12.根据权利要求11所述的系统,所述处理器被进一步配置成:向所述服务器传送存储
在所述系统上的所述第一输入以及对应于所述第一模型的第一修订号。
13.根据权利要求12所述的系统,所述处理器被进一步配置成:基于是否从所述服务器
接收到确认来确定是否变换所述第一输入,其中,所述确认与所述第一输入相关联并且包
括大于所述第一修订号的第二修订号。
14.根据权利要求13所述的系统,所述处理器被进一步配置成:基于接收到所述确认来
确定是否进一步修改所述第二模型。
15.根据权利要求11所述的系统,所述处理器被进一步配置成:向所述服务器传送存储
在所述系统上的所述经变换的第一输入以及对应于所述第二模型的修订号。
16.根据权利要求11所述的系统,其中:
所述目的地范围大于所述源范围;以及
用以拷贝内容的指令包括用以将内容从所述源范围拼贴?#20102;?#36848;目的地范围的指令。
17.一种包括处理器的系统,所述处理器被配置成:
从第一用户设备接收用以修改托管在服务器上的协同电子表格的第一输入;
从第二用户设备接收第二输入,所述第二输入包括所述电子表格的源范围、所述电子
表格的目的地范围、以及用以将内容从所述源范围拷贝?#20102;?#36848;目的地范围的指令,其中,所
述第一输入包括用以通过影响所述源范围和所述目的地范围中的至少一个的方式修改所
述电子表格的指令;
基于所述第一输入来变换所述第二输入以获得经变换的第二输入;以及
向所述第一用户设备传送所述经变换的第二输入。
18.根据权利要求17所述的系统,所述处理器被进一步配置成:基于将与所述第一输入
相关联的第一修订号同与所述第二输入相关联的第二修订号相比较,来确定是否变换所述
第二输入。
19.根据权利要求17所述的系统,所述处理器被进一步配置成:
基于所述第一输入修改存储在所述服务器上的所述电子表格的模型以获得第一修改
模型;以及
基于所述经变换的第二输入进一步修改所述第一修改模型以获得第二修改模型。
20.根据权利要求19所述的系统,所述处理器被进一步配置成:
向所述第一用户设备传送对所述第一输入的确认以及第一修订号;
向所述第二用户设备传送所述第一输入以及所述第一修订号;
向所述第一用户设备传送所述经变换的第二输入以及大于所述第一修订号的第二修
订号;以及
向所述第二用户设备传送对所述第二输入的确认以及所述第二修订号。

?#24471;?#20070;

协作电子表格中的有效拷贝粘贴

相关申请的交叉引用

本申请请求于2014年12月4日提交的美国申请序列号14/560,954的优?#28909;ǎ?#20854;全
部内容通过引用并入本文中。

技术领域

一般而言,本公开涉及在协作电子表格中执行拷贝粘贴操作。

背景技术

电子表格有益于操纵数据的结?#22815;?#25968;组。特别地,电子表格能够对这样的数据数
组迅速执行许多重复计算。协作电子表格有益于允许多个用户同时地在经由网络通信的多
个设备上编辑文档。在协作电子表格中,多个用户能够同时编辑电子表格的同一部分。这种
状况可能导致一个用户作出的编辑与另一个用户作出的编辑冲突或者交叉。解决这种状况
的一种方式是,针对每个设备,将网络上每次编辑产生的数据经由网络传送至其他设备和
服务器。然而,这会导致跨网络传递大量数据,尤其是针对拷贝粘贴操作而言。

发明内容

因此,本文公开了用于解决协作电子表格中的交叉编辑的系统和方法。在某些方
面中,本文所述的系统和方法涉及编辑托管在服务器上的协作电子表格。使用处理器并且
在用户设备上显示所述协作电子表格。可以基于存储在所述用户设备上的第一模型来显示
所述协作电子表格。可以在所述处理器处并且从用户接收第一输入。所述第一输入可以包
括所述电子表格的源范围、所述电子表格的目的地范围、以及用以将内容从所述源范围拷
贝到所述目的地范围的指令。可以在所述处理器处并且从所述服务器接收第二输入。所述
第二输入可以包括用以修改所述电子表格的一部分的输入。所述第二输入可以包括用以通
过影响所述源范围以及所述目的地范围中的至少一个中的内容的方式修改所述电子表格
的指令。可以在所述处理器处变换所述第一输入。可以基于所述第二输入来变换所述第一
输入以获得经变换的第一输入。可以使用所述处理器来修改所述模型。可以基于所述第二
输入来修改所述第一模型以获得第二模型。可以使用所述处理器来进一步修改所述第二模
型。可以基于所述经变换的第一输入来修改所述第二模型以获得第三模型。可以使用所述
处理器并且在所述用户设备上显示所述协作电子表格。可以基于所述第三模型来显示所述
协作电子表格。

可以将存储在所述用户设备上的所述第一输入以及对应于所述第一模型的第一
修订号传送?#20102;?#36848;服务器。确定是否变换所述第一输入可以是基于是否从所述服务器接收
到确认。所述确认可以与所述第一输入相关联并且可以包括大于所述第一修订号的第二修
订号。是否接收到确认可以确定是否进一步修改所述第二模型。可以将存储在所述用户设
备上的所述经变换的第一输入以及对应于所述第二模型的修订号传送?#20102;?#36848;服务器。所述
目的地范围可以大于所述源范围。用以拷贝内容的指令可以包括用以将内容从所述源范围
拼贴?#20102;?#36848;目的地范围中的指令。

在一些方面中,可以在所述服务器处从第一用户设备接收用以修改所述电子表格
的第一输入。可以在所述服务器处从第二用户设备接收第二输入。所述第二输入可以包括
所述电子表格的源范围、所述电子表格的目的地范围、以及用以将内容从所述源范围拷贝
?#20102;?#36848;目的地范围拷贝的指令。所述第一输入可以包括用以通过影响所述源范围和所述目
的地范围中的至少一个的方式修改所述电子表格的指令。可以基于所述第一输入来变换所
述第二输入以获得经变换的第二输入。可以将所述经变换的第二输入从所述服务器传送至
所述第一用户设备。

确定是否变换所述第二输入可以是基于将与所述第一输入相关联的第一修订号
同与所述第二输入相关联的第二修订号相比较。可以基于所述第一输入来修改存储在所述
服务器上的所述电子表格的模型以获得第一修改模型。可以基于所述经变换的第二输入来
进一步修改所述第一修改模型以获得第二修改模型。

可以将对所述第一输入的确认以及第一修订号从所述服务器传送?#20102;?#36848;第一用
户设备。可以将所述第一输入以及所述第一修订号从所述服务器传送?#20102;?#36848;第二用户设
备。可以将所述经变换的第二输入以及大于所述第一修订号的第二修订号从所述服务器传
送?#20102;?#36848;第一用户设备。可以将对所述第二输入的确认以及所述第二修订号从所述服务器
传送?#20102;?#36848;第二用户设备。

附图?#24471;?br />

图1是根据?#24471;?#24615;实施方式的云计算服务的框图;

图2是根据?#24471;?#24615;实施方式的与服务器通信的两个客户端设备的框图;

图3A、3B、3C和3D描绘了示出根据?#24471;?#24615;实施方式的使用与服务器通信的两个客
户端设备对协作文档作出编辑的?#38236;?#22270;;

图4是根据?#24471;?#24615;实施方式的由客户端设备在协调用户更改与从服务器所接收的
更改时所执行的方法的流程图;

图5是根据?#24471;?#24615;实施方式的由服务器在协调从多个客户端设备所接收的更改时
所执行的方法的流程图;

图6是根据?#24471;?#24615;实施方式的由服务器或者客户端设备在将一个更改针对另一个
进行变换时所执行的方法的流程图;

图7是对根据?#24471;?#24615;实施方式的行插入更改交叉拷贝粘贴更改的?#24471;鰨?br />

图8是对根据?#24471;?#24615;实施方式的行删除更改交叉拷贝粘贴更改的?#24471;鰨?br />

图9是对根据?#24471;?#24615;实施方式的设置单元格更改交叉拷贝粘贴的源范围更改的说
明;

图10是对根据?#24471;?#24615;实施方式的设置单元格更改交叉拷贝粘贴的目的地范围更
改的?#24471;鰨?br />

图11是对根据?#24471;?#24615;实施方式的拼贴式拷贝粘贴操作的?#24471;鰨?#20197;及

图12是根据?#24471;?#24615;实施方式的用于执行本文所述过程中的任何一个的计算设备
的框图。

具体实施方式

为提供对本公开的全面理解,?#32440;?#23545;某些?#24471;?#24615;实施例进行描述,包括用于在协
作电子表格中有效地执行拷贝粘贴操作的系统和方法。然而,本领域普通技术人员将理解
的是,本文所述的系统和方法可以被调整?#25176;?#25913;为适用于所处理的应用,并且本文所述的
系统和方法可以被用于其他合适的应用中,并且这样的其他补充?#25176;?#25913;不会脱离其范围。
一般地,本文所述的计算机化系统可以包括一个或多个组件,其包括处理设备或多个设备,
诸如计算机、微处理器、逻辑设备或者配置有用于执行本文所述的计算机化方法中的一个
或多个的硬件、固件和软件的其他设备或处理器。

如本文所用,电子表格是具有包含在单元格中的数据的电子文档。单元格被布置
成阵列,通常是矩形阵列。每个单元格能够通过一个或多个索引?#35789;?#21035;。在矩形阵列中,这
些索引能够是行和列索引。通常,在电子表格用户界面中,行索引由阿拉伯数字表示,并且
列索引由英文字母表示。虽然这是常用的实施方式,但诸如使用数字对或者字母对的其他
实施方式也可行。可以使用诸如罗马系统的其他数字系统以及诸如希腊字母的其他字母。
实现电子表格的软件可以通过不同于用户界面中所显示的格式来存储索引。例如,虽然单
元格可以具有用户界面的索引“B4?#20445;?#20294;软件可以在内?#25335;?#21333;元格的索引存储为有序行列对
(4,2),表?#38236;?#22235;行和第二列。

在用户界面中,每个单元格中所包含的数据可以是数字、文本串、公?#20132;?#32773;其组合
的形式。软件可以存储文本串、整数、浮点数或者其组合形式的全部数据。如果电子表格的
单元格B4包含文本串“Hello World(你好世界)”(在此,该串不包括引号),则?#22336;癢”可以
通过索引集合(4,2,7)来引用,指示该?#22336;?#26159;在电子表格的第四行和第二列中的单元格中
所包含的串中的第七个?#22336;?br />

索引的其他表示和排序也可行。例如,索引集合可以从0而非1开始编号,或者单元
格内的位置可以在行和列索引之前被定位。在一些示例中,整数和浮点数仅为行和列索引
所引用并且不为单元格内的位置所引用。在单个电子表格中可以包含相异类型的数据,使
得电子表格的一个单元格包含文本串,电子表格的一个单元格包含整数,并且电子表格的
另一个单元格包含浮点数。公式可以被存储为文本串并且根据特定规则来处理。例如,公式
?#22467;紸2+B2”在被输入单元格B4内时指令应用在单元格B4中显示单元格A2和B2的内容之和。

如本文所用,在电子表格中的拷贝粘贴操作是由用户发起的、从源范围中的一个
或多个单元格向目的地范围中的一个或多个单元格拷贝数据的操作。所述操作可以是文字
复制,并且目的地范围中的单元格可以在操作之后包含与源范围中的对应单元格相同的内
容。拷贝和粘贴的公式可以包括绝对或相对引用,如参照图6予以更加详细的描述。拷贝-粘
贴操作可以包括拼贴,如参照图11予以更加详细的描述。在拼贴式拷贝-粘贴操作中,源范
围和目的地范围的大小并不相同。

协作电子表格可以由基于云的文档存储系统的多个用户来编辑。当多个用户编辑
电子表格的同一部分时,可能出现问题。当发生这种情况时,正在编辑的单元格的范围可能
交叉,导致关于每个编辑引用哪些单元格的潜在模糊性。特别地,在一个设备处作出的拷
贝-粘贴更改可以与在另一个设备处作出的另一个更改交叉。例如,可能在拷贝-粘贴操作
的目的地范围相交的位置插入行。当发生这种情况时,对单元格索引的更改能够产生关于
哪些单元格应接受粘贴数据的潜在模糊性。

结合协作逻辑实现的操作变换能够解决这种潜在模糊性。通过这种方式,每个设
备都能够通过交叉更改来变换拷贝-粘贴更改,使得拷贝-粘贴更改操作于经调整的单元格
范围。如果未得到有效处理,实现这一变换会在设备之间产生大量的网络流量。例如,每个
设备作为发送粘贴命令的一部分,可以将全部待粘贴的数据发送至网络上的其他设备。虽
然容?#36164;?#29616;,但如果粘贴的目的地范围很大,这就会造成沉重的网络流量。然而,在一些实
施方式中,通过仅发送可以包括源范围和目的地范围中的单元格的索引的拷贝-粘贴指令,
能够大幅缩减这种流量。每个设备以及服务器能够再根据协作逻辑而对拷贝-粘贴指令执
行操作变换。

通过这种方式执行拷贝-粘贴操作十分有益,原因是在网络上传送的数据?#23458;?#25928;
?#24335;系?#30340;拷贝-粘贴操作相比有所减少。大量的数据转移会使协作电子表格因设备的应用
和网络连接减速而无法有效地使用。通过有效地对拷贝-粘贴操作执行操作变换,能够实现
电子表格复杂操作的益处,同?#34987;?#23454;现协作文档的益处。

图1示出客户端-服务器系统100,其包括云计算服务102以及数个客户端设备104a
至104d(统称为客户端设备104)。云计算服务102提供用于客户端设备104的集合的云计算
服务。特别地,云计算服务102可以包括存储可供客户端设备104a至104d访问的数个文件的
一个或多个服务器,所述文件诸如示例性的协作电子表格106。在客户端设备104处的用户
可以创建、编辑、拷贝、共享以及删除存储在云计算服务102上的文件。例如,客户端设备104
可以各自使用web浏览器来同时访?#35797;?#35745;算服务102上的电子表格106。云计算服务102向每
个客户端设备104提供电子表格106的本地副本,客户端设备104上的用户可以再查看和编
辑该本地副本。云计算服务102可以使电子表格106的本地副本彼?#36865;?#27493;并且与存储在云计
算服务102中的服务器上的电子表格106的副本同步。在一个示例中,由客户端设备104a作
出的、在本文中可以称作更改的编辑被自动地发送至云计算服务102并且被传送至其他客
户端设备104b、104c和104d。通过这种方式,由一个协作者作出的更改可以立刻被其他协作
者看到。

如本文所用,文件包括存储在存储媒介上的一组数字编码位。云文件包括存储在
服务器上并且可经由网络访问的文件。本地文件包括存储在用户的本地设备上的文件。客
户端设备包括与客户端-服务器关系中的服务器通信的本地设备。如本文所用,客户端设备
与用户设备以及本地设备同步,除非上下文另作?#24471;鰲?#22914;本文所用,文?#30340;?#22815;与多个文件相
关联。例如,云文件可以是存储在服务器上的文档的副本,并且本地文件可以是存储在本地
设备上的相同文档的副本。一般地,同一文档的多个副本可以是相同的,但如果由一个协作
者作出的更改?#24418;?#34987;传送至其他协作者,则它们可能有所不同。当网络连接很慢或者间歇
时,可能发生这种状况。如果副本被存储在不同类型的设备上,诸如具有不同操作系统的设
备,同一文档的多个副本也可以略有不同。在此情形下,不同的副本可以具有略有不同的元
数据,或者可能以不同方式来编码。例如,一个副本可能以大端格式来编码,并且另一个副
本可能以小端格式来编码。只要显示给用户的信息内容在副本之间相同,这些格式差异便
能够跨多个文件存在,这些文件是同一文档的副本。本地设备可以读取文件(存储在?#19988;资?br />?#28304;?#20648;器中)的内容并且存储表示工作存储器中的文件的模型。工作存储器可以?#19988;资?#24615;
的(例如,RAM或者等价物)。

客户端设备104可以包括桌面型计算机、膝上型计算机、平板型计算机、智能电话、
移动电子设备、或者可以通过网络连接至云计算服务102的任何其他设备的任何组合。在系
统100中仅示出四个客户端设备104,但应理解的是,任何数目的任何类型的客户端设备104
可以被配置成与云计算服务102通信。系统100的云计算服务102以及客户端设备104可以通
过诸如互联网的远程网络来连接。通过局域网、广域网、以太网、光纤网络、无线网络、蜂窝
网络、交互式电视网络、电话网络、无线数据传输系统、双向电缆系统、定制的私用或公用计
算机网络、交互式自助终端网络、直接链路、卫星网络、和/或任何其他有线或无线连接,可
以促进网络连接。

图2更加详细地示出客户端-服务器系统200,其可以被使用于实现对协作电子表
格的有效拷贝-粘贴操作。系统200包括服务器202以及通过网络208连接的两个客户端设备
204a和204b。如图2所示,客户端设备204a和204b相同并且具有相同的组件。关于客户端设
备204所述的部分可应用于客户端设备204b。如图所示,系统200包括一个服务器以及两个
客户端设备,但一般而言,系统200可以包括多于一个的服务器以及任何数目的客户端设
备。客户端设备204a包括处理器212a、存储文件224a的数据库222a、网络接口226a、显示器
228a、以及应用214a。

应用214a被配置成使用模型-视图-控制器范式来显示、渲染和编辑文档。应用
214a包括模型组件216a、控制器组件218a、以及视图组件220a。模型组件216a是文档的表示
并且通常具有层级性。视图组件220a被配置成解释或渲染以便显示模型组件216a。控制器
组件218a被配置成从用户或者从诸如网络源的另一来源接收输入,并且更新模型。模型组
件216a在其已被更新时可以向视图组件220a以及控制器组件218a通知已发生更新。在一些
示例中,模型组件216a是无源的,并且不提供这样的更新。在这些示例中,视图组件220a以
及控制器组件218a将针对更新轮询模型组件216a。模型216a可以是层级模型,诸如文?#30340;?br />型(DOM)。在DOM中,数据以层级方式被布置于节点中,使得每个节点具有?#38468;?#28857;和/或一个
或多个子节点。节点可以表示文档、段落、语句、词或者字?#31119;?#24182;且节点也可以包括对部分文
档的格?#20132;?#24403;文档是电子表格时,节点也可以包含电子表格的单元格或者指示单元格的
部分内容的文本串。

在图2中对应用214a的描绘是?#24471;?#24615;的,并且应用214a的一个或多个组件可以驻
存于客户端设备204a的其他部分上。例如,模型组件216a的一些或全部可以被存储于数据
库222a中,诸如文件224a内。另外,用于214a的代码可以被存储于数据库222a上并且由处理
器212a来执行。在图2中所示的示例中,应用214a的视图组件220a正在显示器228a上渲染电
子表格文档。基于渲染,处理器正基于存储在用户设备204a上的模型216a来显示协作电子
表格。如图2所示,应用214a驻存于客户端设备204a上。在一些示例中,应用214a的一部分或
全部可以驻存于服务器202上。在一些示例中,应用214a可以在瘦客户端环境下实现,其中
用于应用214a的代码中的大多数驻存于服务器上。在一些示例中,用于应用214a的代码可
以按需经由网络208从服务器202传递至本地设备204a。

网络接口226a可以包括配置成与网络208通信的硬件和/或软件。用于网络接口
226a的代码可以由处理器212a运行,或者替选地,可以在网络接口226a本身所包含的硬件
上实现。网络208可以是诸如因特网、万维网、局域网、广域网、蜂窝网络或者如本文所述的
其他类似网络的网络。客户端设备204a也可以包括一个或多个用户输入设备,诸如鼠标或
其他指示设备以及键盘。客户端设备204b包括与客户端设备204a相似的组件和特征。

服务器202包括处理器230、应用234、以及包含文件232的数据库210。在一些示例
中,服务器202可以实现云计算服务,诸如图1中所示的服务102。如图2所示,数据库220存储
文件232,但一般可以存储任何数目的文件。这些文件中的一些或者全部可以对云计算服务
的用户是可用的。处理器230运行存储在服务器202上的应用,诸如应用234。用于应用234的
代码也可以被存储在数据库210中。应用234可以是云计算服务的一部分。作为云计算服务
的一部分,应用234可以包含协作逻辑,其协调对存储在云计算服务上的文档作出的编辑。
当实现协作逻辑时,应用234可以保存对存储在云计算服务上的文档的更改的列表,并且可
以保存文档的主模型。为进一步实现协作逻辑,应用234可以接收例如由设备204a的用户作
出的编辑并且将那些编辑发送至协作文档服务的其他用户,诸如设备204b的用户。通过这
种方式,应用234协调由多个用户作出的编辑,使得多个用户可以查看相似或大体上相同的
文?#30340;?#22411;的渲染。在图2所示的示例中,设备204a和204b的用户都正在查看相同版本的协作
电子表格。由设备204a的用户作出的更改可以通过网络208以及服务器202而被发送至设备
204b以便显示于显示器228b上。这会使得模型216b用由设备204a的用户作出的更改来更
新。通过经由网络208与服务器202通信,设备204a和204b能够显示相似或大体上相同版本
的协作电子表格。在一些示例中,客户端设备可以执行由服务器执行的本文所述的一个或
多个功能。在这些示例中,服务器可以不起作用或者仅起附带作用。

图3A、3B、3C和3D描绘了示出如何经由服务器使用协调逻辑来协调由两个用户(即
Alice和Bob)作出的更改的?#38236;?#22270;。图3A至3D描绘出三个道301、303和305,每个道包含?#24405;?br />或者机器的状态。第一道301包括状态302、312、324、338和348以及?#24405;?08和334,其中每个
都发生在由名为Alice的用户操作的设备处。第二道303包括状态304、318、326、328和344以
及?#24405;?40,其中每个都发生在服务器处。第三道305包括状态306、314、320、336和352以及
?#24405;?10和350,其中每个都发生在由名为Bob的用户操作的设备处。图3A至3D也描绘出消息
316、322、332和346以及确认330和342,其中每个都从一个设备(或者服务器)中被传送并且
在另一个设备(或者服务器)处被接收。Alice的设备、Bob的设备以及服务器可以分别对应
于图2中所示的客户端设备204a、客户端设备204b以及服务器202。参照图3至11,术语“客户
端设备”、“服务器”、“Alice”和“Bob”旨在指代相应的机器,但也包括其上运行的应用以及
它们的组件,诸如处理器。因此,在本文中例如描述采取动作的机器的用语可以是对机器运
行应用和采取动作的处理器的简述。除非上下文另作?#24471;鰨?#21542;则本文所用的术语“设备”能
够包括服务器或者其他计算系统。

在图3A至3D中,道301、303和305中的每一个都包含其自有的垂?#27604;?#21521;的时间轴,
在稍后发生的?#24405;?#25110;状态上方示出早前发生的?#24405;?#25110;状态。例如,如道301中所示,状态302
发生在?#24405;?08之前。每个道提供该道内的?#24405;?#30340;相对时序的指示。通过跨两道的消息或者
确认,诸如从一个设备发送至另一个的消息,能够从图3A至3D中推测出不同道中发生的事
件或状态的相对时序。例如,无法单纯从图中推测出道301中的?#24405;?08是否发生在道305中
的?#24405;?10之前、同时或者之后。然而,能够单纯从图中推测出?#24405;?08发生在状态302之后
以及状态312之前的事实,因为?#24405;?08以及状态302和312是道301的一部分。道303和305以
及那些道内的?#24405;?#21644;状态也同样如此。

在该图中示出的客户端状态,诸如状态302,示出对客户端设备的当前状态的快照
并且包括已发送更改、待定更改、以及客户端设备上的当前文?#30340;?#22411;的状态。Alice的客户
端状态302不包含已发送更改并且不包含待定更改。状态302包括文?#30340;?#22411;307,?#20174;?#20986;电子
表格,其四个单元格包含数据。单元格A1包含文本串“AA?#20445;?#21333;元格B1包含文本串“BB”、单元
格A2包含文本串“CC?#20445;?#24182;且单元格B2包含文本串“DD”。每个状态也示出该状态的最后同步
修订号。状态302的最后同步修订号为0,其指示修订号0是于状态302前在Alice的设备与服
务器之间同步的文档的最后修订号。Bob的客户端状态306是Bob的起始状态并且与Alice的
客户端状态302相同。Bob的状态306包括文?#30340;?#22411;311。Bob的当前文?#30340;?#22411;311与Alice的当
前文?#30340;?#22411;307相同。

服务器状态,诸如服务器状态304,示出服务器的当前状态的快照并且包括针对文
档的修订日志、待定更改的列表、以及文档的当前模型。状态304包括文?#30340;?#22411;309,其与
Alice的当前文?#30340;?#22411;307相同。在一些示例中,服务器不保存当前文?#30340;?#22411;,而仅保存待定
更改的列表以及修订日志。在这些示例中,当前文?#30340;?#22411;的状态能够通过将修订日志中的
全部条目应用到空白电子表格而获得。

图3A至3D描绘出Alice和Bob对由服务器托管的协作电子表格执行交叉编辑操作
的情况。在图3A至3D中,Alice执行拷贝-粘贴操作,但使其更改与服务器同步之前,Bob插入
行,这与Alice更改的拷贝-粘贴范围相交叉。使用操作变换和协调逻辑,对这些交叉的更改
进行协调。

从图3A开始,Alice、服务器和Bob全部从协作文档的同一模?#32479;?#21457;,分别如状态
302、304和306中所示。另外,Alice、服务器和Bob全部?#26377;?#35746;号0开始。在?#24405;?08中,Alice
将范围B1:B2中的内容拷贝到C1:C2。作为?#24405;?08的结果,Alice的设备处于状态312,其包
括待定更改313a以及文?#30340;?#22411;313b。待定更改313a对应于在?#24405;?08中作出的更改。因在事
件308中所接收到的更改?#24418;?#34987;修改,故待定更改313a中的单元格范围与?#24405;?08中的单元
格范围相同。Alice的当前文?#30340;?#22411;313b被更新成?#20174;矨lice的拷贝-粘贴操作的结果。单元
格C1:C2的内容此时与单元格B1:B2中的内容相同。Alice在状态312中的最后同步修订号仍
然是0,原因是Alice的待定更改?#24418;?#19982;服务器同步。

在由Alice的拷贝-粘贴?#24405;?08产生的对文档的更改与服务器同步之前,Bob作出
更改,如?#24405;?10中所示。在?#24405;?10中,Bob提供输入以在行1与2之间向协作电子表格中插
入行。作为?#24405;?10的结果,Bob的设备处于状态314,其不具有已发送更改、具有待定更改
315a、并且具有文?#30340;?#22411;315b。待定更改315a对应于在?#24405;?10中作出的更改,?#24418;?#20462;改。状
态314还包括文?#30340;?#22411;315b,其已被更新成?#20174;矪ob在?#24405;?10中的更改。如文?#30340;?#22411;315b中
所示,已经插入行,并且行2此时为空。模型311的行2的内容已被移动至模型315b中的行3。
在状态314中,Bob的最后同步修订号仍为0,原因是Bob的待定更改?#24418;?#19982;服务器同步。

转至图3B,消息316描绘出Bob的设备将Bob对状态314的待定更改发送至服务器。
在该示例中,在发自?#24405;?08的Alice的更改被发送之前,发自?#24405;?10的Bob的更改被发送
至服务器。这种状况可能由数个因素所致。例如,在Alice作出其更改之前,Bob可能已经作
出其更改。替选地,更改可能大体上同时发生,或者Bob的更改可能甚至发生在Alice的更改
之后,但Alice的网络连接可能断续或者极慢。这些状况中的任何一个都可能导致服务器接
收Alice的更改稍晚于接收Bob的更改。此时,?#24405;?08的Alice的更改与?#24405;?10的Bob的更
改出现交叉,原因是Bob在行1下插入行分割了Alice的拷贝-粘贴操作的范围。消息316包含
Bob的更改的内容(即在行1下插入行的命令)以及修订号。在一些示例中,每个客户?#31169;?#19968;
次仅向服务器发送一个更改并且将在发送另一个更改之前等待接收确认。这样的确认传达
出已在服务器处应用了已发送更改。在消息316中发送的修订号为0,指示Bob的最后同步修
订号为0,由此消息316中的已发送更改对应于修订号0的状态下的电子表格。然而,在一些
实施方式中,该修订号可能代之以对应于Bob的设备预期应用该更改应会产生的修订号。在
这些实施方式中,这可以通过将Bob的设备的最后同步修订号递增1来确定。在消息316中发
送更改之后,Bob的设备处于状态320,其包括已发送更改321a以及文?#30340;?#22411;321b。已发送更
改321a对应于状态314的待定更改315a。Bob的当前文档321b未从状态314发生改变。另外,
状态320的最后同步修订号也未从状态314发生改变。

服务器状态318?#20174;?#26381;务器在接收到Bob的消息316之后的状态。状态318不包含修
订日志中的条目,包含待定更改319a并且包含文?#30340;?#22411;319b。在状态318中,待定更改319a
对应于消息316中的Bob的更改。更改319a包含指令(即在行1下插入一行)、与更改相关联的
修订号(即0)以及发送更改的客户端(Bob)的标识符。因更改319a?#24418;?#34987;提交?#21015;?#35746;日志,
故当前文?#30340;?#22411;319b?#24418;?#20174;模型309发生改变。

在消息322中,Alice的设备将?#24405;?08的Alice的拷贝-粘贴更改发送至服务器。消
息322包含更改指令(即将单元格B1:B2拷贝到单元格C1:C2)以及与更改相关联的修订号
(即0)。在消息322中发送更改之后,Alice设备处于状态324,其包括已发送更改325a以及文
?#30340;?#22411;325b。在状态324中,Alice的状态312的待定更改313a已被移动至已发送更改部分并
且表现为更改325a。Alice的当前文?#30340;?#22411;325b未从状态312中的模型313b发生改变。状态
324的最后同步修订号(即0)也未从状态312发生改变。

在接收到消息322中的Alice的更改之后,服务器然后处于状态326中。在状态326
中,没有修订日志中的条目,具有两个待定更改327a和327b并且具有文?#30340;?#22411;327c。因待定
更改327a在接收待定更改327b之前被接收,故待定更改327a第一个出现在列表中。待定更
改327a未从状态318的待定更改319a发生改变。因为待定更改327b第二个被接收,其第二个
出现在列表中。待定更改327b?#20174;?#22312;消息322中从Alice接收到的更改并且包括Alice的拷
贝-粘贴指令,其未从消息322发生改变。更改327b也包含修订号(即0)以及客户端发起的更
改(即Alice)。状态326也描绘出当前文?#30340;?#22411;327c。因还没有待定更改被应用于修订日志,
故模型327c与状态318中的模型319b相同。

现转至图3C,状态328?#20174;?#26381;务器在应用其最旧待定更改(即状态326中的待定更
改327a)之后的状态。状态328包括修订条目329a、待定更改329b以及文?#30340;?#22411;329c。Bob的
行插入已在服务器处被应用并且在修订日志的第一条目329a中被?#20174;場?#26465;目329a包含Bob
在行1下的行插入,并且修订号已被递增到1。条目329a也包含发起更改的客户端(即Bob)的
标识。另外,当前文?#30340;?#22411;329c已被更新成?#20174;程?#30446;329a。作为更新的一部分,已在行1下插
入行,并且先前行2的内容已被移至行3。在已更新的模型329c中,行2是插入的空白行。待定
更改329b包含Alice的拷贝-粘贴操作并且与状态326的待定更改327b相同。

在应用Bob的更改之后,服务器将消息332发送至Alice并且将确认330发送至Bob。
消息332包含所应用的更改的指令(即在行1下插入一行)以及相关联的修订号(即1)。发送
至Bob的确认330是简单地确认Bob最后发送的更改已被应用并且携带修订号1。在一些示例
中,因每个客户端等待直到接收到确认之后才发送另一个更改,故有关该确认所关联的更
改并不存在模糊性。

Bob的客户端状态326示出Bob的设备在接收到确认330之后的状态并且不包括已
发送更改、不包括待定更改、并且包括文?#30340;?#22411;337。?#28304;覤ob接收到确认330,Bob的更改便
已从状态336的已发送更改部分移除。在状态336中,Bob的当前文?#30340;?#22411;337与前一状态320
的模型321b相同,但最后同步修订号已被更新成匹配确认330中所包含的修订号(即1)。

Alice的设备在从服务器接收到消息332之后执行?#24405;?34中所示的三个步骤。第
一步,Alice的设备针对在消息332中所接收到的传入更改变换所有待定和已发送的更改。
该操作变换能够使用图6的方法600来执行。在一些示例中,Alice的设备可以确定变换已发
送更改339a,原因是?#24418;?#38024;对其接收到确认。在其他示例中,Alice的设备可以确定变换已
发送更改339a,原因是前一状态325的最后同步修订号(即0)小于传入更改的修订号(即1)。
第二步,Alice的设备将消息332中的传入更改应用于Alice的文?#30340;?#22411;。第三步,Alice的设
备将其最后同步修订号更新成匹配传入消息332中所包含的修订号。

在Alice的设备执行?#24405;?34的操作之后,Alice设备处于状态338,其包括经变换
的已发送更改339a、不包括待定更改、并且包括文?#30340;?#22411;339b。已发送更改339a已经针对消
息332中的更改而被变换并且被更新成对范围B1、B3和C1、C3进行操作。Alice的当前文?#30340;?br />型339b已被更新成应用消息332的更改。在模型339b中,文档?#20174;矨lice的原始拷贝-粘贴操
作以及Bob的行插入。行2是空白的,并且先前行2的内容已被移至行3。此外,在339b中,单元
格C1和C3分别匹配单元格B1和B3。通过在?#24405;?34中应用操作变换,Alice的已发送更改
339a中的单元格范围已被分成2个部分。Alice的经变换的更改339a没有对当前文档的行2
中的单元格进行操作。作为替代,Alice的经变换的更改仅对行1和3中的单元格操作。通过
这种方式变换更改,以保留Alice的更改的意向。在Alice发起那些更改时,文档339b的插入
的空白行2还不存在,由此Alice不可能意欲修改该行。在Alice的状态338中,最后同步修订
号已被更新成1以匹配与在消息332中所接收到的更改相关联的修订号。

现转至图3D,在?#24405;?40中,服务器针对修订日志中自修订号0以来的全部更改来
变换Alice的待定更改。服务器可以确定变换Alice的待定更改(即服务器状态328的更改
329b),原因是该待定更改的修订号小于最新修订条目的修订号(即服务器状态328的条目
329a中的修订号1)。此外,在?#24405;?40中,服务器将Alice的更改应用于修订日志。服务器使
用由Alice的客户端在?#24405;?34中所使用并且可以使用图6的方法600来执行的同一逻辑变
换Alice的拷贝-粘贴操作。在?#24405;?34和340二者中,Alice的拷贝-粘贴操作针对Bob的行插
入操作而被变换,并且Alice的拷贝-粘贴操作的源范围和目的地范围被分开以容纳Bob插
入的行。由?#24405;?40引起的更改被?#20174;?#22312;服务器状态344中。

服务器状态344包括两个修订条目345a和345b,并且包括文?#30340;?#22411;345c。在状态
344中,第一修订条目345a保持未从服务器状态328的修订条目329a发生改变,并且修订条
目345b已被添加?#21015;?#35746;日志。修订条目345b?#20174;?#26381;务器的前一状态的最旧待定更改(即服
务器状态328的待定更改329b)。修订条目345b包含Alice的经变换的拷贝-粘贴操作以及其
修订号2。经更新的文?#30340;?#22411;345c示出将Alice的拷贝-粘贴操作应用到前一版本的服务器
文档329c的结果,使得单元格B1和B3的内容已被拷贝到单元格C1和C3。因服务器和Alice的
设备使用同一逻辑针对Bob的行插入操作来变换Alice的拷贝-粘贴操作,故服务器和Alice
的设备此?#26412;?#26377;相同的文?#30340;?#22411;。在将Alice的拷贝-粘贴操作提交?#21015;?#35746;日志之后,服务
器将确认342发送至Alice,其简单地确认Alice的最后更改被提交?#21015;?#35746;日志并且携带修
订号2。再一次,因在一些示例中,客户端设备并不发送另一个更改,直至从服务器接收到确
认,故有关该确认所对应的更改不具有模糊性。

Alice的最终客户端状态348包括文?#30340;?#22411;349并且?#20174;矨lice的设备在接收到确
认342之后的状态。在最终状态348中,Alice的设备已将其最后保存的修订号更新成2以匹
配在确认342中所接收到的修订号并且已从已发送更改的列表中移除经确认的更改。

更进一步,在将Alice的拷贝-粘贴操作提交?#21015;?#35746;日志之后,服务器将消息346发
送至Bob。消息346包括Alice的经变换的更改,具体是经变换的Alice的拷贝-粘贴操作的指
令以及与该提交的更改相关联的修订号。在接收到消息346后,Bob的设备在?#24405;?50中执行
三个步骤。第一步,因在Bob的更改上不存在待定或已发送更改,故没有更改要变换。如果在
Bob的设备上存在待定或已发送的更改,则这些更改会通过在消息346中所接收到的传入更
改而被变换。该操作变换能够使用图6的方法600来执行。第二步,Bob的设备将消息346中的
传入更改应用于文?#30340;?#22411;。第三步,Bob的设备将其最后保存的修订号更新成匹配在消息
346中所接收到的修订号。

Bob的最终客户端状态352包括文?#30340;?#22411;353,不包括待定更改,并且不包括已发送
更改,并且?#20174;矪ob的设备在执行?#24405;?50的操作之后的状态。在最终状态352中,Bob的设备
已将其文?#30340;?#22411;更新成模型353,其包含将消息346中的传入更改应用到前一客户端状态
336的Bob的前一版本的文档337的结果。单元格B1和B3的内容已被拷贝到单元格C1和C3。
Bob的最后保存修订号已被更新成2以匹配消息346中所包含的修订号。

在图3D所示出的最终状态中,Alice的拷贝-粘贴操作以及Bob的行插入操作已被
传播至系统中的全?#21487;?#22791;,包括服务器。文?#30340;?#22411;349、345c和353全部?#20174;?#20986;该文档的同一
状态。另外,Alice的最后保存修订号匹配服务器修订日志345b中的最后更改的修订号,Bob
的最后保存修订号也同样如此。重要地,用跨系统发送的少量信息便已执行这些更新。因所
述设备应用相同的协作逻辑以?#23433;?#20316;变换来协调交叉的更改,故每个设备都能够优化地应
用其拥有的传入用户更改并且对那些用户更改和传入更改执行任何必要的变换。更改的应
用被称为“优化”?#19988;?#20026;客户端设备优化地假设其正在用最新版本的模型来工作。然而,为
免由当前在另一个设备上发生的冲突或交叉更改导致可能的复杂化,客户端设备将其最新
的更改保存在已发送或待定更改的列表中,直至从服务器接收到对该更改的确认。因全部
设备都正在使用相同的逻辑和变换,故不必多次跨服务器发送大体上相同的信息,例如,通
过发送原始变更以及经变换的变更二者。只有原始变更被发送至服务器,并且确认连同修
订号一起被接收。通过将该修订号与预计的修订号相比较,每个设备都能够根据需要执行
变换。参照图4至6,阐述由客户端设备和服务器遵循用来执行更新和操作变换的方法的细
节。

图4是由客户端设备在针对服务器更改来变换用户更改时所执行的方法400的流
程图。如本文所用,“用户更改”包括由本地设备从直接与本地设备相交互的用户接收到的
更改,并且“服务器更改”包括由本地设备从服务器接收的更改。在一示例中,服务器更改可
以最初由另一个用户在远程用户设备(其远离本地设备)处提供并且被传送至服务器,该服
务器再将更改传送至本地设备。虽然更改可能已经由用户在远程设备处发起,但因实现方
法400的本地设备从服务器接收该更改,故该更改被称为服务器更改。可以在图3C的步骤
334和图3D的350中执行方法400。

在步骤402,客户端设备基于存储在客户端设备上的模型向用户显示电子表格。在
步骤404,设备接收用以修改电子表格的用户输入。在步骤406,设备将用户输入发送至服务
器。在步骤408,设备基于所接收的用户输入来优化地修改其模型。在一些示例中,步骤406
和408能够以相反的顺序或者大体上同时发生。在步骤410,客户端设备从服务器接收输入。
所接收的输入可以包括用以修改电子表格的指令。

在判定框412处,客户端设备确定在步骤406所发送的用户输入是否已经由服务器
确认。如果?#24418;?#25509;收到确认,则方法400继续至步骤414,在此客户端设备针对从服务器所接
收的输入来变换所发送用户输入并且可以使用图6的方法600。在此,在步骤414,如果服务
器输入与用户输入相交叉,则通过变换来解决该冲突。如果两个输入并不交叉,则大体上没
有更改受步骤414的变更的影响。在步骤416,用户设备基于服务器输入来修改其最后同步
模型。因?#24418;?#25509;收到对已发送用户输入的确认,?#39318;?#21518;同步模型并不?#20174;?#35813;用户输入。在步
骤420,用户设备更新其修订号以匹配在步骤410从服务器所接收的修订号。在步骤424,客
户端设备基于经变换的用户输入来修改最后同步模型。虽然客户端设备基于经变换的用户
输入来优化地作出修改并且显示经修改的模型,但因?#24418;?#25509;收到确认,?#39318;?#21518;同步模型仍
会不?#20174;?#22312;步骤404所接收的用户输入。

替选地,如果客户端设备确定已在判定框412处从服务器接收到对所发送用户输
入的确认,则所述方法继续至步骤415。在步骤415,?#28304;?#25509;收到对用户输入的确认,客户端
设备便更新其修订号以匹配确认中所包含的修订号。在步骤418,客户端设备基于从服务器
所接收到的输入来修改其模型。在步骤422,客户端更新修订号以匹配在步骤410从服务器
所接收到的输入中所包含的修订号,并且返回步骤402,以基于经更新的模型向用户显示电
子表格。

图5是基于从客户端设备所接收的输入来变换服务器处的用户输入的方法500的
流程图。可以在图3D的步骤340中执行方法500。在步骤502,服务器接收对所托管的电子表
格的更改。步骤502中的更改是从经由网络与服务器通信的客户端设备上的用户所接收。在
判定框504处,服务器确定更改是否源自旧修订版。如果更改最初是对比提交至服务器上的
修订日志的最新版本的电子表格更旧版本的电子表格作出,则更改可能源自旧修订版。在
一些示例中,服务器可以通过比较修订号而作出判定。在这些示例中,服务器将与所接收的
更改相关联的修订号同与其修订日志中最新提交的条目相关联的修订号相比较。如果与所
接收的更改相关联的修订号是比与最新提交的更改的条目相关联的修订号更小的数字,则
服务器可以确定更改源自旧修订版。如果两个修订号相同,则服务器可以确定更改源自当
前修订版。

如果服务器在判定框504处确定更改源自旧修订版,则所述方法继续至步骤506。
在步骤506,服务器针对自与更改的修订号相关联的修订版以来的全部更改来变换更改,并
且可以实施图6的方法600。通过这种方式,服务器补偿具有不同修订号的不同设备的作用。

替选地,如果服务器在判定框504处确定更改并非源自旧修订版,则所述方法直接
继续至步骤508,在该步骤,服务器将更改提交?#21015;?#35746;日志中的条目并且将新的修订号分配
给该条目。在服务器处提交更改将其从服务器的待定更改日志中移除并?#19968;?#20110;该更改来更
新服务器的模型。在步骤510,设备将确认发送至曾发送更改的用户。在步骤512,服务器将
更改发送至编辑协作文档的其他用户。在步骤512中所发送的更改在步骤506发生的情况下
可以是经变换的更改,或者其可以是如在步骤502中所接收的更改,这取决于判定框504的
结果。通过这种方式,服务器基于接收输入的顺序来变换所接收的用户输入。通过基于用户
输入被接收的顺序对其进行变换,服务器确保多个设?#25913;?#22815;保存相似的协作电子表格的模
型。因全?#21487;?#22791;都使用与服务器相同的协作逻辑和操作变换,故在没有过多网络流量的情
况下,保存相似的模型。

图6是通过交叉更改而变换拷贝-粘贴更改的方法600的流程图。交叉更改可能影
响拷贝-粘贴更改的源范围或目的地范围或者影响这两个范围。拷贝-粘贴更改源自第一用
户,并且交叉更改源自第二用户。在一些示例中,这两个更改均源自相同的用户,但源自不
同的设备。如果用户同时登陆到来自诸如膝上型计算机以及平板型计算机的不同设备的云
计算系统,则可能发生这些示例。在一些示例中,这两个更改均源自相同设备上的不同用
户。因拷贝-粘贴更改以及交叉更改可以对相交的范围进行操作,故两个操作之间可能存在
冲突。可以对范围中的一个或多个应用操作变换来解决这种冲突,以便以根据每个用户的
意向而对协作电子表格应用更改。操作变换可以由客户端设备中的任何一个并且由协调更
改的服务器来执行。可以将方法600使用于在图3的?#24405;?34、340和352中的任何一个、图4的
步骤414、图5的步骤506或者其任何组合中执行操作变换。

在步骤602,从用户接收拷贝-粘贴更改。该更改可以从实施方法600的设备的用户
输入组件接收,或者该更改可以从网络上的另一个设备接收,诸如从服务器或用户设备。在
步骤604,从网络上的另一个用户接收交叉更改。该更改可以从实施方法600的设备的用户
输入组件接收,或者其可以从网络上的另一个设备接收,诸如从用户设备的服务器。如前所
?#33268;郟?#24403;多个用户编辑电子表格的同一部分时,可能发生交叉更改。当发生这种情况时,正
在编辑的单元格的范围可能交叉,导致关于编辑中的每一个编辑引用哪些单元格的潜在模
糊性。特别地,在一个设备处作出的拷贝-粘贴更改可以与在另一个设备处作出的另一个更
改交叉。例如,可以在拷贝-粘贴操作的目的地范围相交的位置插入行。

在判定框606处,确定交叉更改的类型。如果确定交叉更改为插入或者删除行或
列,则所述方法继续至步骤608,在该步骤中,在交叉更改的位置处,分开与拷贝-粘贴操作
的范围相关联的一个或多个范围。分开的范围可以是拷贝-粘贴操作的源范围或者目的地
范围。在一些示例中,源范围和目的地范围都被分开。将每个分开的范围均分成两个部分,
以允许变换受影响的部分或多个部分的索引。在步骤612,确定插入或者删除的大小,这可
能涉及确定待插入或者删除的行号或者列号。

在判定框618处,设备确定交叉更改是插入还是删除。如果确定交叉更改为插入,
则所述方法继续至步骤624。在步骤624,确定增量为正量并且在量值上等于待插入的行号。
在判定框618处,如果确定交叉更改为删除,则所述方法继续至步骤626。在步骤626,确定增
量为负量并且在量值上等于待删除的行号。在步骤628,拷贝-粘贴更改按步骤624或626中
所确定的增量来变换。

按增量变换拷贝-粘贴更改可以包括将增量添加?#20102;?#20998;开的范围部分中的一个部
分的索引。因增量可以为正或为负,?#36866;?#24433;响的索引可以相应增加或减少。例如,如果在步
骤608中将目的地范围分成两个部分,一个部分具有低于交叉更改的位置的索引,并且另一
个部分具有高于交叉更改的位置的索引,则可以将增量添加至具有高于交叉更改的位置的
索引的部分的索引。

如果交叉更改是插入,则具有高于交叉更改的位置的索引的部分可以使其索引增
加插入的大小。如果插入是行插入,则只有行索引可能受增量影响。如果插入是列插入,则
只有拷贝-粘贴范围的列索引可能受增量影响。

删除一个或多个行或者列可以通过与插入一个或多个行或者列大体上相同的方
式?#35789;?#29616;,除索引减少而非增加。添加负增量使得高于交叉更改的位置的部分的索引减少
删除的大小。

调整拷贝-粘贴范围中的单元格的索引并不影响单元格本身的内容,其也不影响
单元格内所包括的串中所包含的各个?#22336;?#30340;索引。只有在电子表格中定位单元格的索引受
到这种变换操作的影响。

在步骤628中所变换的索引可以是绝对索引或者相对索引。绝对索引是指单元格
在电子表格内的绝对位置,而相对索引是指单元格相对于另一个单元格的相对位置。绝对
索引的示例会是“A1”或者“D12”。这些会分别指列“A”、行“1”以及列“D”、行“12”。相对基准
的示例会是“R2C5”。这会是指在包含基准的单元格向下两行并且向右五列的单元格。相对基
准的另一个示例会是“R-3C-2”。该相对基准会是指在包含相对引用的单元格向上三行并且
向左两列的单元格。在步骤628,可以按增量调整绝对基准或者相对基准。在步骤630,当在
步骤604接收到交叉更改时,应用该交叉更改。在步骤632,应用经变换的拷贝-粘贴操作。在
此,当在步骤628中变换拷贝-粘贴操作时,应用该拷贝-粘贴操作。将参照图7和8来描述与
拷贝-粘贴更改相交的插入以及删除行和列的进一步?#38468;凇?br />

在判定框606处,如果确定交叉更改是设置单元格操作,则所述方法继续至判定框
610。设置单元格操作一般是用以更改一个或多个单元格的操作并且可以包括设置单元格
的值、设置或编辑单元格的公式、以及设置或编辑单元格的格式。单元格的格式可以包括文
本格?#20132;?#35832;如粗体或用斜字体、更改单元格的大小、以及更改单元格的边框。这些设置单
元格操作可能不需要如同插入或者删除行或者列?#21069;?#23558;拷贝-粘贴操作的范围分开。在判
定框610处,参照拷贝-粘贴操作的源范围以及目的地范围,确定设置单元格操作的位置。

如果设置单元格操作的位置影响拷贝-粘贴操作的源范围,则所述方法继续至步
骤614,在该步骤中,将设置单元格操作应用于源范围的所指令的部分。在步骤620,在没有
变换的情况下,应用拷贝-粘贴更改。

在判定框610,如果确定设置单元格操作的位置影响目的地范围,则所述方法继续
至步骤616,在该步骤中,按所接收的来应用拷贝-粘贴更改。在步骤622,将设置单元格操作
应用于其影响的目的地范围的部分。通过这种方式,设置单元格操作始终“取胜”并且设置
单元格操作不会被拷贝-粘贴操作覆盖。参照图9和10来描述设置单元格更改与拷贝-粘贴
更改相交的进一步?#38468;凇?br />

在一些示例中,设置单元格操作可以影响源范围以及目的地范围二者。在这些示
例中,如图6所示,将各自根据步骤614和620对源进行处理,并且将根据步骤616和622对目
的地范围进行处理。通过应用根据方法600的变换,能够将拷贝-粘贴操作以及相交的更改
操作都应用于表示协作电子表格的模型,同?#27604;?#25429;捉每个用户的意向。另外,因为与协作电
子表格通信的所有设备都应用该方法600来进行交叉的更改,所以减少了网络流量。

图7图示出可以如何根据本文所述的系统和方法来协调来自一个用户的插入行操
作相交来自另一个用户的拷贝粘贴操作,同?#27604;?#25429;捉这两个用户的意向。在图7中,用户
Charlie和Dave都正各自在不同的设备上编辑协作电子表格。状态710描绘出在作出更改之
前的电子表格的状态。状态720图示出协作电子表格在已应用这两个更改并且已使用本文
所述的操作变换方法对其进行协调之后的状态。Charlie发起拷贝-粘贴操作704,同时Dave
发起行插入操作702。Charlie和Dave的操作大体上同时发生,以致没有用户在他正执行其
操作时知道其他用户的更改。如果Charlie和Dave正在完全同时工作,便可能发生这种情
况,或者如果Charlie和Dave中的一个或两个具有高度延时的很慢网络连接,也可能发生这
种情况。在任一状况中,一个用户都可能不知道可以由其他用户作出的最新更改。

在704,Charlie发起拷贝-粘贴操作以将单元格D2的内容拷贝到范围D3:D5。因此,
Charlie的拷贝-粘贴操作具有源范围712(单元格D2)以及目的地范围714(单元格D3:D5)。
在702,Dave在协作电子表格的行3与行4之间插入行716。

如状态720中所示,原始目的地范围714(单元格D3:D5)在单元格D3与范围D4:D5之
间的交叉插入的位置被分成两个部分。下一步,将具有高于分开处的索引的范围部分下移
一行。通过根据插入的大小来递增该部分的索引,使该部分移位。在该示例中,插入一行,故
将状态710中的原始部分D4:D5的行索引递增1,以得出状态720中的部分D5:D6。因为在该示
例中没有插入列,所以列索引(均由“D”表示)不变。将前述操作变换应用于拷贝-粘贴更改
指令,而非电子表格本身。下一步,根据插入行更改以及经变换的拷贝-粘贴更改来修改电
子表格。

应用Dave的行插入更改以在行3下插入一行,在行4处产生空白行。状态710中的先
前行4和5的内容已被移至状态720中的行5和6。在插入后应用Charlie的经变换的拷贝-粘
贴更改。经变换的拷贝-粘贴更改将源范围D2的内容拷贝到新的目的地范围D3、D5:D6。单元
格722(D2)保持如其在状态710中那样。单元格724a-c指示经变换的拷贝-粘贴操作的目的
地范围并且示出经变换的操作的结果。单元格724a(D3)已被更新成?#20174;?#25335;贝-粘贴操作。单
元格724a包含公式?#22467;紹3*C3”。如图7中所示,用户可以在单元格724中输入公式,但协作电
子表格可以在内?#25335;?#30456;对公式存储为?#22467;絉0C-2*R0C-1?#20445;?#25351;示位于单元格712向左两列并且与
其在同一行的单元格的内容应乘以位于单元格712向左一列并且与其在同一行的单元格的
内容。在本文中所描述或图示的公式中的任一个都可以被实现为通用格式RxCy的相对公式,
其中,“R”为行索引遵循的标识符,“x”为相对行索引,“C”为列索引遵循的标识符,并且“y”
为相对列索引。相关行索引“x”指定行号(并且通过其符号指定方向),区分?#19978;?#23545;公式所指
示的单元格与包含相对公式的单元格。相对列索引“y”指定列号(并且通过其符号指定方
向),区分?#19978;?#23545;公式所指示的单元格与包含相对公式的单元格。在本文中所描述或图示的
公式中的任一个都可以被实现为通用绝对格式NZ的绝对公式。在该通用绝对格式中,“N”指
定列索引并且“Z”指定由绝对公式所指示的单元格的行索引。在一些示例中,在一个或多个
索引前用“$”符号将绝对公式显示给用户(即$N$Z)。

在图7中所示的示例中,源范围722(D2)中的公式是相对公式,并不是绝对公式,故
D3中的公式也是相对公式并且?#20174;?#35813;相对公式。单元格726是空白单元格,因为其处于空白
行中,其被插入通过Dave的相对插入操作702在行3下插入的空白行中。单元格724b此时包
含公式?#22467;紹5*C5”。单元格724b如同单元格724a一样包含从单元格722粘贴的相对公式。单
元格724c具有与单元格724b相似的公式。通过变换与拷贝-粘贴操作相关联的范围,调整拷
贝-粘贴的目的地范围以考虑插入的行。对拷贝-粘贴范围进行变换以及相对公式的上述描
述也适用于对关于图8至10中所示的操作的范围进行变换。虽然可以作出调整以考虑图8至
10的不同交叉操作,但使用相似的原理。图7中所示的示例是?#24471;?#24615;的,并且在一些示例中,
多于两个的用户编辑协作电子表格。在另一个示例中,一个用户编辑从多个设备编辑协作
电子表格。

图8图示出如何根据本文所述的系统和方法来协调来自一个用户的删除行操作相
交另一个用户的拷贝-粘贴操作。状态810示出正由用户Charlie和Dave编辑的协作电子表
格在应用任何编辑之前的状态。状态820图示出协作电子表格在已根据本文所述的系统和
方法应用并协调这两个用户的更改之后的的状态。

在802,Charlie提供拷贝-粘贴输入以将单元格D2的内容拷贝到范围D3:D5。在
804,Dave在其设备上提供输入以删除该电子表格的行4。Charlie和Dave正从分立的设备编
辑电子表格,并且如图7中所示,各自作出更改,而不知道其他用户的更改。因此,须根据本
文所述的系统和方法对他们的更改进行协调。在810中图示出Charlie的编辑802,用于将源
范围812中的单元格D2的内容拷贝到目的地范围814中的单元格D3:D5。Dave的删除行操作
的范围是816处所示的行4。源范围822与原始源范围812大体上相同,并且单元格824a-b此
?#24065;?#26681;据Charlie的拷贝-粘贴操作802而被更新。Dave的行删除804已使得范围816从电子
表格中删除。通过变换与拷贝-粘贴操作相关联的范围,调整拷贝-粘贴的目的地范围以考
虑删除的行。

图9图示出如何根据本文所述的系统和方法来协调来自一个用户的设置单元格操
作相交另一个用户的拷贝粘贴操作的源范围。状态910示出由用户Charlie和Dave编辑的协
作电子表格在更改应用之前的状态。状态920图示出协作电子表格在Charlie以及Dave的更
改已被协调和应用之后的状态。根据类似于参照图7所述的情况,Dave和Charlie正各自在
其相应的设备上查看协作电子表格。

在902,Charlie提供输入以将源范围912中的单元格D2的内容拷贝到目的地范围
914中的单元格D3:D5中。在904,Dave不知道Charlie的输入而提供输入以将单元格D2中的
公式更改成?#22467;紹2*C2*1.09”。在一些示例中,如参照图7所述,这个公式以及其他公式是相
对公式。因为Charlie和Dave各自作出更改,而不知道其他用户的更改,所以须根据本文所
述的系统和方法对他们的更改进行协调。单元格922是Charlie的拷贝-粘贴操作的源范围
并且单元格924a-c是Charlie的拷贝-粘贴操作的目的地单元格。因为Dave的设置单元格操
作被应用于Charlie的拷贝-粘贴操作的源范围,所以Dave的设置单元格操作在Charlie的
拷贝-粘贴操作之前被应用于协作电子表格,如由图6的方法600所决定。通过这种方式,
Dave的设置单元格编辑也被拷贝到Charlie的目的地范围。通过以适当的顺序来执行交叉
编辑,调整拷贝-粘贴操作以考虑设置单元格操作,并且保留每个用户的原始意向。Charlie
和Dave都会查看到根据920中所示视图的协作电子表格。

图10图示出如何根据本文所述的系统和方法来协调来自一个用户的设置单元格
操作相交来自另一个用户的拷贝-粘贴操作的目的地范围。两个用户Charlie和Dave正各自
在其相应的设备上编辑协作电子表格并且各自提供输入。状态1010描述协作文档在应用任
一用户的更改之前的状态。状态1020图示出协作电子文档在已协调和应用Charlie以及
Dave的更改之后的状态。在1002,Charlie提供拷贝-粘贴操作以将源范围1012中的单元格
D2的内容拷贝到目的地范围1014中的单元格D3:D5中。在步骤1004,Dave不知道Charlie的
拷贝-粘贴输入而提供输入以将单元格D4中的公式更改成?#22467;紹4*C4*1.09”。Dave的设置单
元格输入影响Charlie的拷贝-粘贴操作的目的地范围。在一些示例中,如参照图7所述,单
元格D4中的公式以及其他公式是相对公式。因为每个用户在作出他们自己的输入时都不知
道其他用户的输入,所以须根据本文所述的系统和方法对更改进行协调。单元格1022未从
状态1010发生改变。单元格1024a-b已被更新成?#20174;矯harlie的拷贝-粘贴操作的结果。单元
格1026也被更新成?#20174;矯harlie的拷贝-粘贴操作,而其也已被更新成?#20174;矰ave的设置单元
格操作。因为Dave的设置单元格操作与Charlie的拷贝-粘贴操作的目的地范围相交,所以
首先应用Charlie的拷贝-粘贴操作,其次再应用Dave的设置单元格操作。该顺序由图6的方
法600来决定。通过以适当的顺序来执行冲突的编辑,调整拷贝-粘贴操作以考虑设置单元
格操作,并且在经协调的更改中保留每个用户的原始意向。Charlie以及Dave此时都在他们
相应的设备中的每一个上查看到如状态1020中所示的协作电子表格。

图11图示出在协作电子表格中拼贴式拷贝-粘贴操作的结果并且包括状态1110和
1120。状态1110图示出协作电子表格在应用拷贝-粘贴操作之前的状态。状态1110包括源范
围1112以及目的地范围1114。如本文所用,术语“拼贴”描述目的地范围大于源范围的拷贝-
粘贴操作。在拼贴式拷贝粘贴操作中,根据范围中的每一个的相应大小,将源范围的内容多
次拷贝到目的地范围中。拼贴可以被使用于本文所述的拷贝-粘贴操作中的任一个中。拼贴
式拷贝-粘贴操作的源范围1112由两个单元格组成,这两个单元格为单元格A1和A2。单元格
A1包含文本“AA?#20445;?#24182;且单元格A2包含文本“BB”。拼贴式拷贝-粘贴操作的目的地范围1114由
范围C2:E5中的12个单元格组成。

在对协作电子表格应用拼贴式拷贝-粘贴操作之后,状态1120?#20174;?#35813;操作的结果。
状态1120包括源范围1122a-b中的单元格以及目的地范围1124a-m中的单元格。单元格
1122a-b没有改变,因为它们都是操作的源单元格。单元格1124a-m此时包括拼贴的单元格
1122a-b的内容。因为目的地范围1114在列尺寸上比源范围1112大三倍,所以在列尺寸上将
源单元格拼贴三次以产生状态1120。此外,因为范围1114在行尺寸上比源范围112大两倍,
所以将目的地范围1112中的单元格在行尺寸上拼贴两次以产生状态1120。如果目的地范围
1114已包括附?#26377;?例如,如果其反而由范围C2:E6组成),则源范围1112在行尺寸上仍会被
仅拼贴两次以产生状态1120。因为范围1114在行尺寸上大于范围1112的倍数会出于拼贴目
的而被四舍五入到最接近的整数,所以会发生这种情况。

对于用户而言,可能十?#20013;?#35201;拼贴,因为用户能够以最少次的输入将少数源单元
格拷贝到非常大的目的地范围中。然而,如果未恰?#36125;?#29702;拼贴,则当协作电子表格中实施拼
贴时,可能导致在网络上过多传送数据。如果目的地范围中的数据以其整体中的一些或全
部被传送至网络上的其他设备,诸如服务器以及其他客户端设备,便可能发生这种情况。如
果通过这种方式对状态1120中所示的协作电子表格实施拼贴,则会在网络上传送单元格
1124a至m中的每一个中的文本。因此,在网络上传送的数据与目的地范围的大小成比例,以
便数据传送量可能相?#36125;蟆?br />

然而,如果通过在网络上仅传送指令和范围索引而在协作电子表格中实?#21046;?#36148;,
并且独立地在每个本地设备处执行拼贴,则可以减少数据传送。在状态1120中所示的示例
中,仅需在网络上将对源范围和目的地范围的指定传送至其他设备,无论源范围或者目的
地范围的大小如何,只产生固定的数据量。在一些示例中,也可以传送源范围中所包含的数
据连同拷贝-粘贴指令。在这些示例中,在网络上传送的数据量与源范围的大小成比例,其
仍可能远小于目的地范围的大小。这些示例使得网络流量小于目的地范围的数据以其整体
的一些或全部被传送的情况。如图11中所示的拼贴可以被使用于本文所述的拷贝-粘贴操
作中的任一个中。

图12是用于执行本文所述过程中的任一个的计算设备的框图,诸如图1至11的系
统的组件中的任一个。这些系统中的组件的每一个都可以被实现在一个或多个计算设备
1200上。在某些方面,这些系统的多个组件可以被包括在一个计算设备1200内。在某些实施
方式中,组件以及存储设备可以跨多个计算设备1200?#35789;?#29616;。

计算设备1200包括至少一个通信接口单元、输入/输出控制器1210、系统存储器、
以及一个或多个数据存储设备。系统存储器包括至少一个随机存取存储器(RAM 1202)以及
至少一个只读存储器(ROM 1204)。这些元件中的全部都与中央处理单元(CPU 1206)通信以
促进计算设备1200的操作。计算设备1200可以以许多不同方式来配置。例如,计算设备1200
可以是常规的独立计算机,或者替选地,计算设备1200的功能可以跨多个计算机系统和架
构来分布。替选地,计算机系统可以被虚拟成提供多个计算设备1200的功能。在图12中,计
算设备1200经由网络或者本地网络而被链接至其他服务器或者系统。

计算设备1200可以被配置成分布式架构,其中,数据库以及处理器被封装于分立
的单元或者位置中。一些单元执行主要处理功能并且最低限度包含通用型控制器或处理器
以及系统存储器。在分布式架构的实施方式中,这些单元中的每一个都可以经由通信接口
单元1208而被连接至通信集线器或者端口(未示出),其用作与其他服务器、客户端、或者用
户计算机以及其他相关设备的主要通信链路。通信集线器或者端口本身可能具有最低的处
理能力,其主要用作通信路由器。各种通信协议可以是系统的一部分,包括但不限于:以太
网、SAP、SASTM、ATP、BLUETOOTHTM、GSM以及TCP/IP。

CPU 1206包括处理器,诸如一个或多个常规的微处理器以及一个或多个补充的协
同处理器,诸如数学协同处理器,用于?#23545;?#26469;自CPU 1206的工作负载。CPU 1206与通信接口
单元1208以及输入/输出控制器1210通信,由此CPU 1206与其他设备通信,诸如其他服务
器、用户终端、或者设备。通信接口单元1208以及输入/输出控制器1210可以包括多个通信
信道,用于同时与例如其他处理器、服务器合作和客户终端通信。

CPU 1206还与数据存储设备通信。数据存储设备可以包括磁性、光学或者半导体
存储器的适当组合,并且可以包括例如RAM 1202、ROM 1204、闪盘驱动器、诸如致密盘的光
盘或者硬盘或硬盘驱动器。CPU 1206以及数据存储设备各种可以例完全位于单个计算机或
者其他计算设?#25913;冢?#25110;者彼此通过通信介质相连接,诸如USB端口、串行端口电缆、同轴电
缆、以太网电缆、电话线、射频收发器或者其他类似的无线或有线介质或者前述的组合。例
如,CPU 1206可以经由通信接口单元1208而被连接至数据存储设备。CPU 1206可以被配置
成执行一个或多个特定的处理函数。

数据存储设备可以存储例如:(i)用于计算设备1200的操作系统1212;(ii)适于根
据本文所述的系统和方法,特别是根据参照CPU 1206所详述的过程,引导CPU 1206的一个
或多个应用1214(例如,计算机程序代码或者计算机程序产品);或者(iii)适于存储信息的
数据库1216,其可以用于存储程序所需的信息。

操作系统1212以及应用1214可以被存储成例如压缩、未编译以及?#29992;?#30340;格式,并
且可以包括计算机程序代码。除数据存储设备之外,可以从计算机可?#20004;?#36136;中,诸如从ROM
1204或者从RAM 1202中将程序的指令读入处理器的主存储器中。虽然程序中指令序列的执
行使得CPU 1206执行本文中所述过程步骤,但硬接线电路可以代替实现本发明的过程的软
件指令来使用或者与其相结合。因此,所述的系统和方法并不限于硬件和软件的任何特定
组合。

可以提供合适的计算机程序代码以便执行与执行如本文所述的过程相关的一个
或多个功能。程序也可以包括程序元素,诸如操作系统1212、数据库管理系统以及允许处理
器经由输入/输出控制器1210与计算机外围设备(例如,视频播放器、键盘、计算机鼠标等)
相交互的“设备驱动器”。

如本文所用的术语“计算机可?#20004;?#36136;”是指提供或者参与提供指令到计算设备
1200的处理器(或者任何其他的本文所述设备的处理器)以便执行的任何非暂时性介质。这
样的介质可以采取许多形式,包括但不限于?#19988;资?#24615;介质以及?#36164;?#24615;介质。?#19988;资?#24615;介质
例如包括光盘、?#25490;?#25110;光?#25490;?#25110;者集成电路存储器,诸如快闪存储器。?#36164;?#24615;介质包括动态
随机存取存储器(DRAM),其通常构成主存储器。计算机可?#20004;?#36136;的常用形式例如包括软盘、
柔性盘、硬盘、磁带、任何其他磁性介质、CD-ROM、DVD、任何其他光介质、穿孔卡、纸带、具有
孔图案的任何其他物理介质、RAM、PROM、EPROM或EEPROM(电可擦除可编程只读存储器)、
FLASH-EEPROM、任何其他存储器芯片或卡匣、或者计算机能够从中读取的任何其他非暂时
性介质。

各?#20013;?#24335;的计算机可读存储介质可以参与将一个或多个指令的一个或多个序列
携带至CPU 1206(或者任何其他的本文所述设备的处理器)以便执行。例如,指令最初可以
源于远程计算机(未示出)的?#25490;?#19978;。远程计算机能够将指令加载至其动态存储器中并且使
用调制解调器通过以太网连接、电缆线?#32442;?#33267;电话线来发送指令。计算机设备1200本地的
通信设?#25913;?#22815;在各自的通信线路上接收数据并且将数据置于用于处理器的系统总线上。系
统总线将数据携带至主存储器,处理器从该主存储器中检索指令并且执行指令。由主存储
器所接收的指令可以可选地在由处理器执行之前或者之后被存储在存储器上。此外,指令
可以经由通信端口作为电子、电磁或光信号而被接收,这些信号是携带各种类型的信息的
无线通信或者数据流的示例性形式。

显而易见,在附图中所示的实施方式中,可以在许多不同形式的软件、固件和硬件
中实现本文所述的系统和方法的多个方面。用?#35789;?#29616;与本文所述的系统和方法的原理一致
的多个方面的?#23548;?#36719;件代码或者专用控制硬件并非对本发明的限制。因此,未参照特定的
软件代码来描述所述系统和方法的多个方面的操作?#25176;形?#21487;以理解成本领域普通技术人
员能?#25442;?#20110;本文的描述来设计软件和控制硬件以实现各方面。

类似地,虽然在图中以特定次序来描绘操作,但这不应被理解为要求以所示的特
定次序或者以顺序来执行这样的操作,或者执行所有图示的操作,以获得期望的结果。在某
些情况下,多任务以及并行处理可能是有利的。

关于本文
本文标题:协作电子表格中的有效拷贝粘贴.pdf
链接地址:http://www.pqiex.tw/p-6091837.html
关于我们 - 网?#26087;?#26126; - 网?#38236;?#22270; - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
平码五不中公式规律 北京pk10什么计划最稳 北京pk10手机版走势图 喜乐彩票下载安装 极速快3下载安装 江苏十一选五遗漏排行 河北11选5玩法和拖号 星空游戏网官网 星空棋牌官方最新版下载 股票配资论坛ぴ杨方配资 最好的股票分析软件排行榜