著录项信息
专利名称 | 协作在线电子表格应用 |
申请号 | CN200780019797.8 | 申请日期 | 2007-03-30 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2009-06-10 | 公开/公告号 | CN101454774 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/24 | IPC分类号 | G;0;6;F;1;7;/;2;4查看分类表>
|
申请人 | 谷歌公司 | 申请人地址 | 美国加利福尼亚州
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 谷歌有限责任公司 | 当前权利人 | 谷歌有限责任公司 |
发明人 | 乔纳森·罗谢勒;迈卡·莱蒙尼克;法扎德·科斯罗沙西;约翰·斯蒂芬·丹纳赫尔 |
代理机构 | 中原信达知识产权代理有限责任公司 | 代理人 | 张焕生;安翔 |
摘要
一种分布式电子表格应用,在网络中的服务器和客户端处执行。通常不需要用户在使用应用之前安装任何特定的电子表格软件就能够使用连网的电子表格应用。在一个实现中,电子表格应用可以包括在多个客户端计算装置的浏览器程序中执行的客户端引擎以及服务器逻辑。服务器逻辑可以被配置为当通过多个客户端计算装置中的每一个的浏览器程序被请求时将客户端引擎分发给电子表格应用的多个客户端计算装置。服务器逻辑对在多个客户端计算装置处同时打开的单个电子表格文档进行同步。
1.一种用于提供电子表格应用的方法,包括:
接收来自客户端计算装置的浏览器程序的对在服务器计算装置处的电子表格应用的请求;
响应于所述请求将用于所述电子表格应用的第一部分的编程代码传送到所述客户端计算装置的所述浏览器程序,用于所述电子表格应用的所述第一部分的所述编程代码本地处理来自在所述客户端计算装置处的用户的请求,所述请求与对所述电子表格应用的电子表格文档进行导航或格式化有关;
在所述服务器计算装置执行用于所述电子表格应用的第二部分的编程代码,用于所述电子表格应用的所述第二部分的所述编程代码代表所述客户端计算装置对在所述电子表格文档中的公式计值;
从所述客户端计算装置接收由用户输入的公式;以及
与一个或多个其它客户端计算装置共享所述公式的结果,而不与所述一个或多个其它客户端计算装置共享所述公式的内部细节。
2.如权利要求1所述的方法,还包括:
将用于所述电子表格应用的所述第一部分的所述编程代码传送到多个客户端计算装置的浏览器程序;以及
更新对所述电子表格文档的改变,所述改变是在所述多个客户端计算装置中的一个客户端计算装置上经由所述电子表格应用的所述第一部分对所述多个客户端计算装置中的其它客户端计算装置上的电子表格文档所作的。
3.如权利要求2所述的方法,其中实时地或接近实时地对所述多个客户端计算装置中的所述其它客户端计算装置进行更新。
4.如权利要求2所述的方法,其中所述电子表格应用的所述第一部分显示消息区域以显示来自所述多个客户端计算装置的用户的消息,并且其中所述消息被实时地在所述多个客户端计算装置的所述用户之间通信。
5.如权利要求1所述的方法,还包括:
提供在所述电子表格文档中的多个功能,所述多个功能的至少一些是由所述一个或多个其它客户端计算装置的用户所创建的功能。
6.如权利要求1所述的方法,还包括:
向所述客户端计算装置的用户提供选项,以使所述电子表格文档对所述一个或多个其它客户端计算装置的用户可公共访问。
7.一种用于提供电子表格应用的系统,包括:
通过网络将客户端引擎分发到多个客户端计算装置的装置,所述客户端引擎实现与电子表格应用相关联的功能的第一部分并且响应于来自所述多个客户端计算装置的对所述电子表格应用的请求被分发到所述多个客户端计算装置的每一个;
执行电子表格服务器组件的装置,所述电子表格服务器组件在服务器处本地执行与所述电子表格应用相关联的功能的第二部分,所述电子表格服务器组件执行与所述电子表格应用中的公式相关的计值,所述公式是代表所述多个客户端计算装置中的一个或多个而被计值,所述电子表格服务器组件实时地或接近实时地更新在所述多个客户端计算装置中的一个客户端计算装置处对所述多个客户端计算装置中的其它客户端计算装置所作的改变;
从所述多个客户端计算装置中的所述一个客户端计算装置接收公式的装置;以及与所述多个客户端计算装置中的所述其它客户端计算装置共享所述公式的结果而不与所述多个客户端计算装置中的所述其它客户端计算装置共享所述公式的内部细节的装置。
8.如权利要求7所述的系统,其中在所述多个客户端计算装置处的所述客户端引擎中的一个或多个提供用户界面,所述用户界面包括用于显示在所述多个客户端计算装置的用户之间通信的消息的消息区域,其中所述消息被实时地在所述多个客户端计算装置的所述用户之间通信。
9.如权利要求7所述的系统,其中与所述电子表格应用相关联的功能的所述第一部分被设计为本地处理来自在所述多个客户端计算装置处的用户的请求,所述请求与对所述电子表格应用的电子表格文档进行导航或格式化有关,以及与所述电子表格应用相关联的功能的所述第二部分被设计为执行在所述电子表格中的功能的更新。
10.一种用于提供分布式电子表格应用的方法,包括:
通过网络将客户端引擎分发到多个客户端计算装置,所述客户端引擎实现与电子表格应用相关联的功能的第一部分并且响应于来自所述多个客户端计算装置的对所述电子表格应用的请求被分发到所述多个客户端计算装置的每一个;
执行电子表格服务器组件,所述电子表格服务器组件在托管所述电子表格服务器组件的服务器装置处本地执行与所述电子表格应用相关联的所述功能的第二部分,所述电子表格服务器组件执行所述多个客户端计算装置所共享的电子表格中的公式的计值,所述电子表格服务器组件实时地或接近实时地更新在所述多个客户端计算装置中的一个客户端计算装置处针对所述电子表格对所述多个客户端计算装置中的其它客户端计算装置所作的改变;
从所述多个客户端计算装置中的所述一个客户端计算装置接收公式;以及与所述多个客户端计算装置中的所述其它客户端计算装置共享所述公式的结果,而不与所述多个客户端计算装置中的所述其它客户端计算装置共享所述公式的内部细节。
11.如权利要求10所述的方法,还包括提供用户界面,所述用户界面包括用于显示在所述多个客户端计算装置的用户之间通信的消息的消息区域。
12.一种用于向多个用户提供分布式电子表格应用的系统,包括:
在多个客户端计算装置的每一个中的浏览器程序中执行的客户端引擎组件;以及电子表格服务器组件,所述电子表格服务器组件用于当通过所述多个客户端计算装置的所述浏览器程序请求电子表格应用时将所述客户端引擎组件分发到所述多个客户端计算装置,所述电子表格服务器组件响应于来自所述多个客户端计算装置的请求执行与所述电子表格应用中的公式有关的计值,所述电子表格服务器组件对在所述多个客户端计算装置处同时打开的单个电子表格文档进行同步,
其中所述电子表格服务器组件进一步:
从所述多个客户端计算装置中的一个客户端计算装置接收公式;以及
与所述多个客户端计算装置中的其它客户端计算装置共享所述公式的结果,而不与所述多个客户端计算装置中的所述其它客户端计算装置共享所述公式的内部细节。
13.如权利要求12所述的系统,其中所述电子表格应用的所述电子表格文档的界面包括消息边栏,通过所述消息边栏显示在所述多个客户端计算装置的用户之间发送的实时消息。
14.一种用于提供分布式电子表格应用的系统,包括:
在多个客户端计算装置中的每一个的浏览器程序中执行的客户端引擎组件,所述客户端引擎组件用于向所述多个客户端计算装置中的相应一个显示电子表格文档,以及用于本地处理来自在所述多个客户端计算装置中的所述相应一个处的用户的请求,所述请求与对所述电子表格文档进行导航或格式化有关;以及
服务器组件,所述服务器组件用于当通过所述多个客户端计算装置的每一个的浏览器程序被请求时将所述客户端引擎组件分发到所述多个客户端计算装置,所述服务器组件对在所述多个客户端计算装置处同时打开的单个电子表格文档进行同步,所述服务器组件包括用于向所述多个客户端计算装置提供web界面的前端服务器组件和用于代表所述多个客户端计算装置中的一个或多个执行所述电子表格文档中的公式的更新的后端组件,其中所述服务器组件进一步:
从所述多个客户端计算装置中的一个客户端计算装置接收公式;以及
与所述多个客户端计算装置中的其它客户端计算装置共享所述公式的结果,而不与所述多个客户端计算装置中的所述其它客户端计算装置共享所述公式的内部细节。
协作在线电子表格应用 \n技术领域\n[0001] 本公开一般涉及电子表格应用,更具体地涉及基于网络的协作电子表格应用。 背景技术\n[0002] 电子表格应用在各个行业都得到了广泛的应用,包括金融、商务以及学术领域。电子表格应用典型地被用来产生通常是矩形表格(或格栅)的数据和/或编程信息的电子表格。电子表格应用流行的一个原因是它们可以帮助促进分析和/或数据库应用的实现。 [0003] 现有的电子表格应用趋向于是在单个用户的计算机系统上本地执行的软件程序。\n这样的系统所产生的电子表格可能很难分发,并且在组环境中工作时很难在其上修改或协作。 \n发明内容\n[0004] 一个方面涉及包括在服务器计算装置上接收来自客户端计算装置的浏览器程序的对电子表格应用的请求的方法。该方法进一步包括响应于所述请求将用于电子表格应用的第一部分的编程代码传送到客户端计算装置的浏览器程序,所述电子表格应用的第一部分的编程代码被设计为本地处理来自客户端计算装置的用户的请求,所述请求与对电子表格应用的电子表格文档进行导航或格式化有关。该方法进一步包括在服务器计算装置执行用于电子表格应用的第二部分的编程代码,所述电子表格应用的第二部分的编程代码被设计为处理在电子表格文档中的函数的更新。 \n[0005] 另一个方面涉及用于向多个用户提供分布式电子表格应用的系 统。该系统包括在客户端计算装置的浏览器程序中执行的客户端引擎逻辑。该系统进一步包括服务器逻辑,其被配置为当通过客户端计算装置的浏览器程序请求时将客户端引擎分发到电子表格应用的客户端计算装置,该服务器逻辑将在多个客户端计算装置上同时打开的单个电子表格文档进行同步。 \n[0006] 再另一个方面涉及一种方法,包括:提供唯一地识别电子表格文档的链接;从正在处理网页的web浏览器接收对该链接的请求,所述网页包括嵌入在该网页中的该链接;\n以及响应于接收对该链接的请求,传送该电子表格文档和被配置为向web浏览器的用户提供该电子表格文档的电子表格应用的至少一部分。 \n附图说明\n[0007] 被并入在内且构成本说明书的一部分的附图图解了本发明的实施例,并且与本描述一起解释本发明。在附图中, \n[0008] 图1是在其中可以实现与本发明的原理相一致的概念的示例系统的图; [0009] 图2是图1中所图解的计算装置的示例图; \n[0010] 图3是图解了在线电子表格应用的示例实现的图; \n[0011] 图4是图解了在示例电子表格会话中的在线电子表格应用的各种组件的示例操作的流程图; \n[0012] 图5是图解了可以向用户展示的示例电子表格界面的图; \n[0013] 图6是图解了可以向用户展示的另一个示例电子表格界面的图; [0014] 图7是图解了可以向用户展示的另一个示例电子表格界面的图;以及 [0015] 图8是图解了与本发明的一个方面相一致的嵌入在网页中的电子表格的图。 具体实施方式\n[0016] 下面的详细描述参考附图。该详细描述不限制本发明。\n[0017] 概览 \n[0018] 与本发明的原理一致的实现涉及在线电子表格应用。在线电子表格应用可以提供标准电子表格应用所提供的许多或所有特征。在线电子表格应用可以提供使潜在地位于相对于彼此物理远离的位置的多个用户容易地对电子表格进行协作和修改的能力。此外,在线电子表格应用可以允许用户容易地发布他们所创建的电子表格。 \n[0019] 系统描述 \n[0020] 图1是在其中可以实现与本发明的原理一致的概念的示例系统100的图。系统\n100可以包括能够经由网络140连接到诸如服务器120的服务器的多个客户端110。网络\n140可以包括局域网(LAN)、广域网(WAN)、诸如公共交换电话网络(PSTN)的电话网络、内联网、因特网或网络的组合。为简便起见,三个客户端110和一个服务器120被图解为连接到网络140。在实践中,可以有更多的客户端和/或服务器。而且,在一些情况下,客户端可以执行服务器的一个或多个功能,并且服务器可以执行客户端的一个或多个功能。 [0021] 客户端110可以包括诸如个人计算机、膝上计算机、无线电话、个人数字助理(PDA)或另一种计算或通信装置的装置。客户端110的用户可以访问或接收来自服务器120的信息。 \n[0022] 在所示的实现中,服务器120通常可以与客户端110交互,以使得客户端110与服务器120协力执行在线电子表格应用。服务器120可以包括被标记为电子表格服务器组件\n125的软件,以帮助实现该在线电子表格应用。客户端110的用户所创建的在线电子表格应用可以被服务器120存储在例如诸如数据库130的存储介质中。虽然在图1中被图解为单个装置,但是服务器120可以被实现为例如单个计算装置或多个分布式计算装置。本领域的普通技术人员将会认识到,装置是作为服务器还是客户端起作用通常取决于所实现的特定应用。即, 计算装置是作为客户端还是服务器运行可以取决于该计算装置在该应用中的角色的环境。基于运行在各自的计算机上的相互具有客户端-服务器关系的计算机程序,出现了客户端和服务器的关系。 \n[0023] 客户端110与服务器120的交互可以通过在客户端110处的浏览器程序115进行。\n例如,在线电子表格应用可以是在浏览器115中运行的web应用。这样,客户端110可以不需要安装任何特定于电子表格的软件以在客户端110使用在线电子表格。在本领域中浏览器程序是公知的且到处可获得的。在此讨论到浏览器或浏览器程序时,这些术语意在指下述的任何程序,该程序允许用户浏览标记文档(例如web文档),不管该浏览器程序是独立程序或嵌入程序,诸如作为操作系统的一部分被包括的浏览器程序。 \n[0024] 示例计算装置架构 \n[0025] 图2是计算装置200的示例图,诸如客户端110或服务器120中的一个。计算装置200可以包括总线210、处理器220、主存储器230、只读存储器(ROM)240、存储装置250、输入装置260、输出装置270以及通信接口280。总线210可以包括允许在计算装置200的组件之间进行通信的路径。 \n[0026] 处理器220可以包括任何类型的处理器、微处理器或解释和执行指令的处理逻辑。主存储器230可以包括随机存取存储器(RAM)或可以存储信息和用于处理器220执行的指令的另一类型的动态存储装置。ROM240可以包括ROM装置或可以存储静态信息和用于处理器220使用的指令的另一类型的静态存储装置。存储装置250可以包括磁和/或光记录介质和其相应的驱动。 \n[0027] 输入装置260可以包括允许用户向计算装置200输入信息的机制,诸如键盘、鼠标、笔、语音识别和/或生物识别机制等。输出装置270可以包括向用户输出信息的传统机制,包括显示器、打印机、扬声器 等。通信接口280可以包括使计算装置200能够与其它装置和/或系统进行通信的任何类似收发器的机制。例如,通信接口280可以包括用于经由诸如网络140的网络与另一个装置或系统进行通信的机制。 \n[0028] 电子表格服务器组件125可以以软件实现并存储在诸如存储器230的计算机可读介质中。计算机可读介质可以被定义为一个或多个物理或逻辑的存储器装置和/或载波。 [0029] 定义电子表格服务器组件125的计算机指令可以被从另一个计算机可读介质诸如数据存储装置250或者经由通信接口280从另一个装置读入存储器230。包含在存储器\n230中的软件指令使处理器220执行后面将要描述的过程。可选地,硬连线电路可以被用来替代软件指令或与软件指令结合来实现与本发明一致的过程。因此,与本发明的原理相一致的实现没有限制在硬连线电路和软件的任何特定组合。 \n[0030] 在线电子表格应用 \n[0031] 如在此所描述的在线电子表格应用可以被实现为分布式web应用,在其中应用的部分在一个或多个客户端110处和在服务器120处执行。更具体地,希望使用在线电子表格应用的客户端110可以从服务器120请求电子表格应用。作为响应,服务器120可以传送电子表格应用的部分用于在客户端110处的本地执行。这样在线电子表格应用可以作为跨服务器120和一个或多个客户端110的分布式应用来执行。 \n[0032] 图3是类似于图1的图,其更详细地图解了在线电子表格应用的示例实现。电子表格服务器组件125可以包括前端组件326和后端组件327。前端组件326可以包括与客户端110接口连接的web和/或XML服务器。例如,前端组件326可以从客户端110接收HTTP请求并且将XML数据传送给客户端110。后端组件327可以执行与电子表格应用相关的更为实质性的处理,诸如需要用来更新电子表格的函数的计算。\n[0033] 在线电子表格应用的部分也可以在客户端110内执行。例如,在浏览器115中,在线电子表格应用可以被概念化为包括客户端引擎316和用户界面317。可以使用例如当客户端110需要时从服务器120下载的Javascript来实现客户端引擎316。用户界面317可以基于例如提供自客户端引擎316的HTML(超文本标记语言)和CSS(层叠样式表)数据,提供显示在浏览器115中的最终用户界面。 \n[0034] 用户界面317和客户端引擎316一起起作用来降低传统的基于浏览器的web程序的启动-停止启动-停止的性质,因为客户端引擎316添加了能够处理与用户界面317的许多用户交互的客户端层。替代在用户会话的开始时加载网页,浏览器115可以从服务器\n120(或可选地从本地缓存)加载客户端引擎316。客户端引擎316可以负责呈现用户看到的界面以及代表用户与服务器120通信两者。客户端引擎316允许与在线电子表格应用的用户交互异步发生,即,独立于与服务器120的通信。 \n[0035] 在一个实现中,可以使用已知的异步JavaScript和XML(AJAX)web开发技术来实现在线电子表格应用的客户端侧操作,虽然本领域的普通技术人员将会认识到可以使用其它技术。 \n[0036] 图4是图解了在示例电子表格会话中的在线电子表格应用的各种组件的示例操作的流程图。在一个客户端110处的用户可以启动电子表格应用会话(动作401)。例如,客户端110的用户可以使用浏览器115接触前端组件326。在一些实现中,可以要求用户是预先已经登记或创建账户并且登录进电子表格服务器组件125中。 \n[0037] 响应于用户启动电子表格会话,电子表格服务器组件125可以将客户端引擎316传送到客户端110(动作402)。可以在客户端110处从前一个会话缓存客户端引擎316的一些部分,在这种情况下这些部 分不需要从服务器120重新下载。在一些实现中,可以以模块化的方式来实现包括客户端引擎316的编程代码。在这种情况下,可以在客户端110需要客户端引擎316的这些部分的功能时,基于需要将客户端引擎316的部分传送到客户端110。例如,客户端引擎316可以实现多个“核心”功能,诸如总是被传送到客户端110的基本用户交互和显示功能,而可以基于需要将诸如更专业化的电子表格功能的其它功能传送到客户端110。此外,在线电子表格应用的一些功能可以总是由后端组件327执行,因而从不被传送到客户端引擎316。 \n[0038] 因为可以根据客户端110的需要将客户端引擎316传送到客户端110,所以在线电子表格应用可以是纯粹基于web的应用,在该应用中客户端无需预先安装客户端引擎316的任何部分。有利的是,用户将典型地能够从包括兼容浏览器115并且连接到网络140的任何计算装置使用在线电子表格应用。 \n[0039] 一旦在客户端110加载了客户端引擎316,客户端引擎316可以经由用户界面317向用户展示电子表格的图形用户界面(动作403)。在此处也被称为电子表格文档的电子表格是电子表格应用向用户展示的数据对象。展示给用户的电子表格可以是:用户可从其开始新的电子表格文档的“空白”电子表格;从在线电子表格应用的先前会话检索的电子表格文档;或者从传统的电子表格文档(例如,“.xls”文档、“.cvs”文档或其它类型的已知的电子表格文档格式)导入的一种版本的电子表格文档。 \n[0040] 图5是图解了可以向用户展示的示例电子表格界面的图。浏览器可以基于从客户端引擎316接收的HTML和CSS数据来显示电子表格界面510。电子表格界面可以包括控制行511、列标题行512、以及被标记为一到八的多个数据行513。控制行511可以包括显示当前活动的单元格(例如图5中所示的范例中的单元格D4)的域521以及用户可在其中输入公式或其它电子表格操作的公式域522。列标题行511包括 标记为“A”到“H”的列标题。\n用户可以通过列标题和行标题的组合来指定电子表格界面中的特定单元格。例如单元格D1包括值“$9.00”。 \n[0041] 通过电子表格界面510,用户能够例如将值或公式输入到电子表格单元格中并且执行与电子表格相关的格式化操作。作为响应,客户端引擎316根据需要与电子表格服务器组件120相交互并且向其作出请求(动作404)。如图5所示,用户已经将文本“Expenses for the tip(小费的开销)”输入到单元格B1中并将美元值输入到单元格D1、D2和D3。\n单元格D4当前是活动的单元格(通过围绕该单元格的粗线条来表示)。用户已经输入了公式“=sum(D1:D3)”,其在公式域522中被显示,并且其引导电子表格将单元格D1到D3中的值相加并且将结果写入到单元格D4中。此外,如也在图5中所示,用户已经修改了列“F”和“G”的宽度。用户可以通过例如将列“F”和“G”之间的列分隔线拖向所想要的方向来做到这一点。 \n[0042] 在线电子表格应用所允许的上述功能和操作是示例性的。通过电子表格界面510,在线电子表格应用可以允许用户执行通常被认为与电子表格应用相一致的多个操作。 [0043] 在一个实现中,客户端引擎316可以处理与对用户动作作出响应相关联的绝大部分或所有功能,所述用户动作与不需要接触电子表格服务器组件125而对电子表格界面进行导航和/或格式化有关。电子表格应用的其它功能,诸如电子表格中的函数的计值,可以由后端组件327中的逻辑来处理。通过在客户端110本地处理格式化和数据输入反馈,在线电子表格应用能够提供对倾向于频繁发生且用户对于其期待立即反馈的用户动作的高度的响应度。通过在后端组件327处理电子表格公式的计值,能够与其他用户共享第一用户创建的公式的结果,而不必共享该公式的内部细节。以这种方式,用户能够共享或发布自定义公式/操作而潜在地将内部细节保持为私有。\n[0044] 本领域的普通技术人员将认识到,在可选实现中,在客户端引擎316和后端组件\n327执行的功能的分割可以被修改使得客户端引擎316处理更多或更少功能,并且类似地后端组件327也可以处理更多或更少的功能。 \n[0045] 定期地,或者在通过电子表格界面510的用户的清楚指示下,包括电子表格文档的数据可以被保存(动作405)。在一个可能的实现中,电子表格服务器组件125可以把电子表格文档保存到数据库130。以这种方式,该用户(或其他用户)可以从连接到网络140的任何计算装置访问该电子表格文档。 \n[0046] 在线电子表格应用的附加功能 \n[0047] 将在下面更为详细地描述在线电子表格应用提供的附加功能。 [0048] 在线电子表格应用可以提供在单个电子表格上工作的多个用户之间的协作。例如,多个用户可以同时编辑电子表格和查看每一个用户的编辑。当一个用户编辑电子表格的特定单元格时,可以将该编辑传送到电子表格服务器组件125,并且接着将其转发到也在编辑或查看该电子表格的其他协作用户。为了该目的,电子表格服务器组件125可以处理协作用户之间的冲突,诸如当两个用户试图同时编辑特定的单元格时。例如,电子表格服务器组件125可以接受所收到的第一个编辑或者以某种方式对协作用户分优先级使得高优先级用户的编辑覆盖低优先级用户的编辑。如果电子表格服务器组件125拒绝了用户的编辑,则电子表格服务器组件125可以向用户传送告知该用户拒绝了该编辑的消息。以这种方式,多个用户可以在单个电子表格上潜在地是实时地(或接近实时)协作。 [0049] 在一个实现中,电子表格的最初创建者可以指定可以在特定的电子表格应用上查看和协作的各方。例如,可以向最初创建者给予“管理员”权限,其允许创建者指定用于每一个其他协作者的权限。创建 者可以指定其他协作者具有权限来做以下一个或多个:编辑电子表格、仅查看电子表格、编辑电子表格的指定部分、或将另外的用户添加到可能的协作者清单中。例如,某些用户可以能够编辑电子表格的某些部分,而其他指定的单元格或单元格的区域将保持对那些用户是“锁定的”使得这些用户能够查看但不能编辑锁定的单元格。\n在一些实现中,电子表格可以被指定为任何人都能够查看和/或编辑的“公共”电子表格。 [0050] 图6是图解了可以向用户展示的示例电子表格界面610的图。除了已经添加了被标示为条目640的四个额外条目之外,界面610类似于界面510。假设所述条目是由不同于添加初始条目645的用户的不同的协作用户添加的。条目640可以是与第一用户添加初始条目645同时添加的或在第一用户已添加了条目645后添加的。可以把协作用户所作的每一个条目从该协作用户的客户端引擎316传回到电子表格服务器组件125,然后转发至所有其他在线协作用户。以这种方式,用户可以在文档上同时协作。 \n[0051] 在一些实现中,用户能够配置电子表格界面610的展示来以某种方式说明哪些用户作了哪些编辑。例如,可以对每个用户以不同的字体或不同的颜色来显示不同的用户所作的改变。可选地或额外地,当用户将鼠标移到单元格上或以某种方式选择单元格,可以显示最后编辑了该单元格的协作者的指示。在图6所示的示例中,以不同的字体显示了条目\n640和645。图6中也显示了文本框650。可以用编辑该当前选定的单元格的最后用户的名称来填充文本框650。在该示例中,单元格E4是当前选定的单元格(以黑体显示)并且最后编辑该单元格的人是用户“Julie”。 \n[0052] 除了用户间的协作之外,在线电子表格应用可以允许协作者在他们在电子表格上工作时相互交互地通信。\n[0053] 图7是图解了可以向用户展示的另一个示例电子表格界面710的图。界面710类似于界面510和610,不同的是界面710还额外包括消息边栏715,在其中电子表格的协作者可以互相通信。 \n[0054] 边栏715可以包括显示当前在查看或编辑电子表格的用户的区域720。该用户列表可以对应于为特定电子表格而登录到电子表格服务器组件125的用户。边栏715也可以包括显示用户间发送的过去消息的消息区域725,以及在其中用户可以输入消息的输入区域730。键入到输入区域730的消息可以在消息区域725中显示给所有其他用户或显示给选定数量的用户。例如,可以将输入的消息从发送该消息的用户的客户端引擎316传送到电子表格服务器组件125。在电子表格服务器组件125处,可以将所输入的消息再次传送回所有其他在线协作者的客户端引擎316。以这种方式,在电子表格上的协作者可以在该电子表格上工作时相互实时地通信。 \n[0055] 本领域的普通技术人员将认识到如上所述的消息边栏715是示例性的,并且消息边栏所提供的实际的可视布局和消息功能可以改变。例如,消息边栏可以包括允许用户启动相互经由网络140的语音会话的语音链接。 \n[0056] 在一些实现中,通过允许在线电子表格应用的任何用户打开电子表格或通过允许用户将所创建的电子表格嵌入到网页中,在线电子表格应用可以提供界面,通过该界面用户能够发布他们所创建的电子表格。例如可以向希望在网页中发布电子表格的用户提供到电子表格服务器组件125的链接,所述链接也包括用户希望发布的特定的电子表格文档的识别。 \n[0057] 图8是图解与本发明的一个方面一致的嵌入在网页中的电子表格的图。在该示例中,假设用户将内容805放到与第一个域(例如“jimswebpage.org”)相关联的web服务器\n810上。客户端可以使用 浏览器815访问第一个域并且作为网页820从web服务器810接收内容805。内容805可以在其内部包括指向电子表格服务器组件125的链接825(诸如HTML内嵌框(IFRAME)中的链接)。本领域的普通技术人员将认识到可以使用不同于IFRAME的技术来实现链接825。链接825可以包括URL,所述URL包括对客户端将要从服务器120下载的特定电子表格文档的识别符。在图8所示的示例中,电子表格服务器组件125与域“spreadsheetserver.com”相关联,并且通过字符串“sheet=123456”识别要下载的特定电子表格文档。在呈现该网页时,浏览器815将接触电子表格服务器组件125、下载客户端引擎316以及在客户端812处适当地显示该电子表格。从客户端812的用户的观点看,电子表格响应于导航到第一个域而被加载。 \n[0058] 在线电子表格应用可以允许用户创建自定义功能或操作。自定义用户功能可以被创建为例如现有功能的组合。在线电子表格应用可以提供更先进的工具,诸如以其它编程语言来创建自定义功能的能力,诸如以JavaScript编写的自定义功能或编译为可执行代码的自定义功能,如DLL(动态链接库)文件。在一个实现中,自定义功能的创建者可以具有向其他用户发布其自定义功能的能力。电子表格服务器组件125可以通过提供例如用户可以通过其提交功能的界面以及其他用户通过其能够搜索、计值及选择以将其它自定义功能导入到其应用中的界面来促进用户发布其自定义功能的能力。在一些实现中,电子表格服务器组件125可以允许用户对其自定义功能收费。 \n[0059] 结论 \n[0060] 在此描述了连网的电子表格应用,其在网络上以分布式的方式执行。该连网的电子表格应用通常不需要用户在使用该应用前安装任何特定电子表格软件就能被使用。而且,除了提供通常与电子表格应用相关联的许多或所有特征之外,通过为多个用户提供编辑该电子表格以及当在电子表格上工作时互相发送即时消息的能力,该连网的电子表格应用可以允许多个用户容易地在电子表格上协作。 \n[0061] 上述对本发明的示例实施例的描述提供了说明和描述,但是并不意在穷举或将本发明限制在所公开的精确形式。基于以上的教导可以进行修改和变动,或者其可以从本发明的实践中获得。例如,虽然在此描述的计算机系统被描述为用来实现在线电子表格,其也能够被用来创建其它协作性的文档,诸如wiki或表。 \n[0062] 而且,虽然已经参照图4描述了一系列动作,但是在与本发明相一致的其它实现中所述动作的顺序可以被改变。而且,可以并行实现非从属性的动作。 [0063] 对本领域的普通技术人员显而易见的是,可以以附图中所图解的实现中的软件、固件和硬件的多种不同的形式来实现如以上所描述的本发明的各个方面。用来实现与本发明的原理相一致的方面的实际的软件代码或专用控制硬件不限制本发明。因此,没有引用特定软件代码来描述本发明的各个方面的操作和行为——应理解,本领域的普通技术人员将能够基于此处的描述来设计软件和控制硬件以实现上述方面。 \n[0064] 此外,本发明的某些部分可以被实现为执行一个或多个功能的“逻辑”或“组件”。\n该逻辑可以包括硬件(诸如专用集成电路或现场可编程门阵列)、软件或硬件和软件的组合。 \n[0065] 本发明的描述中使用的任何要素、动作或指令都不应被解释为对于本发明是至关重要的或不可少的,除非明确地表示为此。并且,如在此所使用的,不加数量限定的项用于指一个或多个项。在只想表示一个项的地方,使用了术语“一个”或类似语言。此外,除非明确说明并非如此,否则短语“基于”意为“至少部分地基于”。
法律信息
- 2018-01-23
专利权人的姓名或者名称、地址的变更
专利权人由谷歌公司变更为谷歌有限责任公司
地址由美国加利福尼亚州变更为美国加利福尼亚州
- 2012-04-04
- 2009-08-05
- 2009-06-10
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 1 | | 2014-06-06 | 2014-06-06 | | |