具体描述
现在参考附图描述本发明的各方面,其中相同的编号表示相同的元素。特别地,图1和相应的讨论旨在提供对其中可实现本发明的各实施例的合适的计算环境的简要概括描述。虽然在于服务器和个人计算机系统上执行的程序模块的一般上下文环境中描述了本发明,但是本领域的技术人员会认识到本发明也可以结合其它类型的计算机系统或程序模块实现。
一般而言,程序模块包括例程、程序、对象、组件、数据结构、以及其它类型的数据结构,它们执行特定的任务或实现特定的抽象数据类型。此外,本领域的技术人员会理解本发明可以使用其它计算机系统配置来实施,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、微型计算机、大型计算机等。本发明也可以在通过经由网络链接的远程处理设备执行任务的分布式计算环境中实现。在分布式计算环境中,程序模块可以同时位于本地和远程存储器存储设备中。
现在参考图1,将描述在本发明的各个实施例中使用的计算机100的说明性计算机体系结构。图1中所示的计算机体系结构示出了常规的台式或膝上型计算机,它们包括中央处理单元110(“CPU”)、系统存储器120(包括随机存取存储器(“RAM”)122和只读存储器(“ROM”)124)以及将存储器耦合到CPU 110的系统总线130。基本输入/输出系统包括如在启动时帮助在计算机内的元件之间传输信息的基本例程,它通常储存在ROM 124中。计算机100还包括用于存储操作系统142、应用程序和其它程序模块的大容量存储设备140,这将在下文中作出详细的描述。
大容量存储设备140通过连接到总线130的大容量存储控制器(未示出)连接到CPU 110。大容量存储设备140及其相关联的计算机可读介质计算机100提供了非易失性存储。虽然此处所包含的计算机可读介质的描述是指诸如硬盘或CD-ROM设备等大容量存储设备,本领域的技术人员应该理解计算机可读介质可以是可由计算机100访问的任何可用介质。
作为示例而非局限,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括以任意方法或技术实现的用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EPROM、EEPROM、闪存或其它固态存储器技术、CD-ROM、数字视频盘(“DVD”)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机100访问的任一其它介质。
依照本发明的各实施例,计算机100可以使用通过诸如因特网的网络150到远程计算机的逻辑连接在网络化环境中操作。计算机100可以通过连接到总线130的网络接口单元160连接到网络150。应该理解网络接口单元160也可用于连接到其它类型的网络或远程计算机系统。计算机100也可以包括输入/输出控制器170,用于从包括键盘、鼠标或电子笔(在图1中未示出)的多个其它设备接收和处理输入。类似地,输入/输出控制器170可以提供到显示器屏幕、打印机或其它类型的输出设备的输出。
如以上简述的,多个程序模块和数据文件可以被存储在计算机100的大容量存储设备140和RAM 122中,包括适于控制联网的个人计算机的操作的操作系统142,诸如来自华盛顿州雷德蒙市的微软公司的WINDOWS XP操作系统。大容量存储设备140和RAM 122也可以存储一个和多个程序模块。具体地,大容量存储设备140和RAM 122可以存储Web浏览器应用程序144。如本领域的技术人员公知的,Web浏览器应用程序144可用于请求、接收、呈现诸如已使用HTML格式化的网页146的电子文档并提供与之的交互性。依照本发明的一个实施例,Web浏览器应用程序144包括来自微软公司的INTERNET EXPLORER Web浏览器应用程序。然而,应该理解,也可以使用来自其它制造商的其它Web浏览器应用程序来体现本发明的各个方面,诸如来自莫咨拉基金(MOZILLA FOUNDATION)的FIREFOX Web浏览器应用程序。
如以下更详细描述的,网页146可以包括来自电子表格应用程序148的电子表格文档的快照的可见表示。电子表格应用程序148可以包括来自微软公司的EXCEL电子表格应用程序和来自其它制造商的其它电子表格应用程序。以下关于图2-8提供了用于生成电子表格文档的快照的过程的其他细节。
现在参考图2,将描述网络体系结构图,其示出用于本发明的各个实施例的操作环境。如图2中所示,计算机100被连接到网络150。同样连接到网络150上的是应用服务器210。应用服务器210包括可以包含以上关于图1描述的一些和全部常规计算机组件的服务器计算机。此外,应用服务器210可用于执行Web服务器应用,即接收和响应对存储在应用服务器210上和应用服务器210可访问的文档的请求。此外,应用程序服务器210可用于接收和响应对由Web应用220生成的页面的请求。应该理解Web应用220可以包括可在应用服务器210上执行的代码、用于与其它计算机通信的可执行代码并且可以包括本领域的技术人员公知的模板、图形、视频文件以及其它内容。
Web应用220可用于向计算机100的用户提供接口,用于查看可经由网络150访问的电子表格或工作本的快照。具体地,Web应用220使用服务器应用程序编程接口(“API”)222。依照本发明的该实施例,服务器API 222可用于允许与电子表格计算服务器230的通信。电子表格计算服务器230可用于执行电子表格计算服务器程序232。电子表格计算服务器程序232包括用于检索或计算诸如存储在数据存储器240中的工作本242的电子表格的快照的可执行程序。应该理解,在此处所描述的本发明的实施例中,电子表格计算服务器230可以包括上述关于图1讨论的许多常规的硬件和软件组件。
在Web浏览器应用144的上下文环境内,计算机100可以将对工作本242的快照的请求发送给应用服务器210。为了响应该请求,Web应用220通过服务器API 222与电子表格计算服务器230通信。具体地,Web应用220从电子表格计算服务器230请求适当的工作本242的快照。
如以下详细讨论的,电子表格计算服务器程序232通过从数据存储240载入适当的工作本242并根据所请求的快照的类型处理工作本242来生成工作本242的快照。快照的类型包括静态快照、动态快照以及发布项目快照。电子表格计算服务器程序232将工作本242的快照转换成适于表示电子表格的内容的格式。在一个实施例中,工作本的快照被转换成EXCEL文件格式。一旦电子表格计算服务器程序232已将所请求的工作本242的快照转换成适当的格式,该经格式化的文件被返回给Web应用220。应用服务器210经由网络150将经格式化的文件转发给客户机100。经格式化的文家被存储在客户机100处,并且可以通过适当的应用程序访问。
快照提供有关文件(例如工作本)在特定的时间点的信息,这样使得用户可以在稍后的时间访问快照,以标识在创建该快照时它所存在的文件数据。工作本的所有者可以标识呈现给请求用户的不同类型的快照。不同类型的快照包括静态快照、动态快照以及发布项目快照。每种类型的快照可以向请求用户隐藏工作本数据的一部分。隐藏的数据可以包括所有者不希望与请求用户共享的专属信息。
工作本可以包括不同的对象(例如表格数据透视表、单元格、一定范围的单元格、图表等)。工作本的对象可以与所显示的值和与该值相关联的元数据(例如用于格式化)相关联。在一个实施例中,元数据可以对应于动态数据,诸如用于生成值的公式或对外部数据源的引用。
图3示出了工作本和对应的静态快照。工作本300包括可以在若干个工作表分布的数据。一个工作表可以包括对外部数据源310的引用305。例如,引用305可以提供到包括当前股票价格信息的URL的链接307。工作本300也可以包括用于计算值(例如Y)的公式315。公式315可以是取决于变量320的。例如,公式315可以使用标识多个消费者的变量。由此,当变量320的值改变时,公式315的值改变。工作本300也可以包括诸如表格325和图表330等对象。工作本数据中的一些可以包括专属信息335。专属信息的示例包括备注、修订标记、删除的文本、个人信息、电子邮件标题、传送名单、用户名、墨水注释以及文件路径。在一个实施例中,专属信息可以与公式相关联。例如,公式可以提供所有者不希望与请求用户共享的复杂的计算模型。在另一实施例中,专属信息可以与外部数据源310相关联。例如,外部数据源310可以标识所有者不希望与请求用户共享的服务器名称、连接字符串、查询、凭证等。
通过在特定的时间点仅保存与工作本300相关联的静态对象信息并移除任何动态工作本数据来生成静态快照350。静态对象信息的示例可以包括表格325和图表330。静态快照350确保访问静态快照350的所有用户看到相同的工作本数据。静态快照350可以用与工作本300相同的文件格式生成。与工作本对象相关联的格式化也可以与静态快照一起保存。专属信息335不包括在静态快照350中。与工作本对象相关联的任何元数据也不包括在静态快照350中。
静态对象信息可以通过根据工作本中表示的公式计算来计算值生成。公式组成动态工作本数据,并且不被保存在静态快照中。而是仅保存从公式计算得出的值。例如,当生成快照时,消费者的数目是3(即X=3)。基于当生成快照时的现有条件计算并保存公式的值(即Y=5)。
也可以通过刷新工作本中引用的任何外部数据来生成静态对象信息。例如,当生成静态快照350时,从外部数据源310刷新的所引用的股票价格是$14.95。生成快照时股票价格的值被保存在静态快照中(即$14.95)。接着该值被从外部数据源310断开(例如通过移除链接307)。由此,随后不能更新该值并保护了该值的原始的源。
图4示出了工作本和相应的发布项目快照。工作本400包括可在若干个工作表上分布的数据。一个工作表包括对外部数据源410的引用405。例如,引用405可以提供到URL的链接407。工作本400也可以包括公式415和诸如表格425、图象425和图表330等对象。
发布项目快照450包括特定的工作本对象。工作本所有者可以指定哪些对象被包括在发布项目快照450中并且可为请求用户所用;未指定的项目不包括在发布项目快照450中。例如,工作本所有者可以选择将表格425、图象430和图表435包括在发布项目快照450中。发布项目快照450类似于静态快照,因为移除了对任何外部数据源的引用。例如,对外部数据源410的链接407被移除。
在一个实施例中,选择用于发布的每个对象被置于发布项目快照340中的分开的工作表上,以便简化用于与发布对象的交互。例如,图象430和图表435是包括在工作本400中的同一工作表上的。当生成发布项目快照450时,图象430被包括在一个工作表上,而图表被包括在不同的工作表上。可以命名每个工作表以标识包括在该工作表上的发布对象。
在另一实施例中,选择在发布项目快照450中发布的每个对象被以使得当查看时能够方便地标识所发布的对象的方式置于工作表上。例如,表格425被置于工作本中工作表的右下部分。当生成发布项目快照450时,表格425被置于发布项目快照450中工作表的左上部分。该特征是有用的,因为电子表格可以是相当大的(例如数千行和数千列)。如果当发布项目快照450被载入到用户界面上时从工作本工作表中一位置复制的发布对象不在工作表的可见部分中,那么用户查看为发布项目快照450生成的新的工作表可能错误地假设工作表是空的。必须滚动动作表以定位发布的对象。
图5示出了工作本和相应的交互式快照。通过在特定的时间点保存与工作本500相关联的对象信息(例如来自公式的值、对外部数据源的引用等)来生成交互式快照550。交互式快照550维护到包括与工作本500中的对象相关联的元数据的动态工作本数据的链接。例如,交互式快照550不将值从工作本500中的公式断开。交互式快照550维护从工作本500中的引用505到外部数据源510的链接507。也可以用交互式快照550保存包括在工作本中的备注。与工作本500相关联的任何专属信息535也与交互式快照550相关联,然而可以向请求交互式快照550的用户隐藏专属信息。在交互式快照550中禁用与动态工作本数据相关联的任何自动更新特征,这样使得在生成交互式快照550时所保存的值可以使用当前值手动刷新。由此,用户可以刷新交互式快照550以查看与工作本500的当前版本相关联的数据。交互式快照对于存档数据记录会是有用的。
现在参考图6-8,将描述说明性例程,其示出生成电子数据的快照的过程。应该理解虽然此处所描述的本发明的实施例是在电子表格应用程序的上下文场景中示出的,但是本发明可以在支持文档共享的其它类型的应用程序中使用。例如,此处所描述的本发明的实施例可以用在文字处理应用程序、演示应用程序、制图或计算机辅助设计应用程序或数据库应用程序中,以用于允许呈现文档并与之交互而无需专门的应用程序。
当阅读此处示出的例程的讨论时,应该理解本发明的各个实施例的逻辑操作被实现为(1)在计算系统上运行的计算机实现动作或程序模块的序列和/或(2)该计算系统内互连的机器逻辑电路或电路模块。实现是根据实现本发明的计算系统的性能需求的选择。相应地,在图6-8中示出并组成此处所描述的本发明的实施例的逻辑操作以不同的方式被认为是操作、结构设备、动作或模块。本领域的技术人员应该认识到这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑以及其任意组合实现而不背离如所附权利要求中所述的本发明的精神和范围。
图6是示出生成静态快照的说明性过程的各方面的过程图。处理从开始框开始,其中应用被载入到客户机上。用户通过在客户机处提交静态快照请求来发起静态快照的生成。
在框600,电子表格计算服务器接收静态快照请求。电子表格计算服务器可以直接从客户机处接收静态快照请求。或者,可以经由与电子表格计算服务器通信的Web应用程序通过网络发送静态快照请求。
转到框610,电子表格计算服务器检索与静态快照请求相关联的工作本数据。可以从与电子表格计算服务器通信的数据存储检索工作本数据。工作本数据可以包括不同的对象(例如表格、单元格、一定范围的单元格、图表等)。工作本的对象可以与显示的值和与该值相关联的元数据(例如用于格式化)相关联。在一个实施例中,元数据可以对应于诸如用于生成值的公式或对外部数据源的引用的动态数据。
转换到框620处,刷新链接到外部数据源的任何工作本数据。当生成静态快照时,经刷新的数据提供当前值。进入框630,计算工作本数据中的任何公式以生成相应的值。所生成的值被保存在静态快照中。
继续到框640,将工作本数据中的任何外部数据引用从外部数据源断开。由此,在生成静态快照后,不能更新外部数据引用。往前至框650,将值从公式断开,这样使得无论何时访问静态快照,该值都不会改变。
移动到框660,移除工作本数据中的任何专属信息。专属信息包括工作本的所有者不希望与访问静态快照的用户共享的工作本数据。专属信息的示例包括备注、修订标记、删除的文本、个人信息、电子邮件标题、传送名单、用户名、墨水注释以及文件路径。
转到框670,移除与工作本数据中的对象相关联的元数据。然而,保留与对象相关联的任何格式化信息,这样使得可以用与工作本中相同的方式在静态快照中显示这些对象。
进入框680,保存静态快照。静态快照提供有关工作本数据在特定的时间点的信息。工作本数据的一部分未被包括在静态快照中,这样能够防止访问静态快照的用户查看敏感信息。
继续到框690处,电子表格应用服务器将静态快照转换成可以在客户机处呈现的格式。在一个实施例中,静态快照被转换成电子表格文件格式。接着在客户机处呈现该文件。处理接着在结束框处结束。
图7是示出用于生成交互式快照的说明性过程的各方面的过程图。处理从开始框开始,其中应用被载入到客户机上。用户通过在客户机处提交交互式快照请求来发起交互式快照的生成。
在框700,电子表格计算服务器接收交互式快照请求。电子表格计算服务器可以直接从客户机处接收交互式快照请求。或者,可以经由与电子表格计算服务器通信的Web应用程序通过网络发送交互式快照请求。
移动到框710,电子表格计算服务器检索与交互式快照请求相关联的工作本数据。可以从与电子表格计算服务器通信的数据存储检索工作本数据。工作本数据可以包括不同的对象。工作本的对象可以与显示的值及与该值相关联的元数据相关联。在一个实施例中,元数据可以对应于诸如用于生成值的公式或对外部数据源的引用的动态数据。
转换到框720处,刷新链接到外部数据源的任何工作本数据。当生成静态快照时,经刷新的数据提供当前值。不同于生成静态快照的过程,与工作本数据中的对象相关联的元数据被保留。例如,并不将工作本中的外部数据引用从外部数据源断开。维护外部数据引用与外部数据源之间的链接使得能够响应用户动作来更新外部数据引用。进入框730,计算工作本数据中的任何公式以生成相应的值。所生成的值被保存在交互式快照中。然而,并不将所生成的值从公式断开。维护值与公式之间的链接使得能够响应用户动作对值进行更新。
继续到框740,禁用自动更新对外部数据源的引用的特征。由此,仅可以手动地更新对外部数据源的引用。前进到框750,禁用用于自动公式计算的特征。由此,仅可以响应用户动作重新计算公式。
移动到框760,在交互式快照中隐藏工作本数据中的任何专属信息。专属信息包括工作本的所有者不希望与访问交互式快照的用户共享的工作本数据。专属信息保持与交互式快照相关联,这样使得所有者可以在交互式快照中显露专属信息,或者更新与专属信息相关联的值。
转换到框770,保存交互式快照。交互式快照提供有关工作本数据在特定时间点的信息。工作本数据的一部分未被包括在静态快照中,这样能够防止访问交互式快照的用户查看敏感信息。维护到包括与工作本中的对象相关联的元数据的动态数据的链接。动态数据的示例包括值和相应的公式,以及外部数据引用和外部数据源。由此,可以响应用户动作使用当前数据手动地更新交互式快照。
进入框780,电子表格应用服务器将交互式快照转换成可以在客户机处呈现的格式。在一个实施例中,交互式快照被转换成电子表格文件格式。接着在客户机处呈现该文件。
继续到框790处,可以响应用户动作更新交互式快照中的任何动态工作本数据。用户可以通过点击“刷新”或“更新”按钮来发起动态数据的更新。在存档数据时交互式快照的动态方面是有用的。处理接着在结束框处结束。
图8是示出生成发布项目快照的说明性过程的各方面的过程图。处理从开始框开始,其中应用被载入到客户机上。用户通过在客户机处提交发布项目快照请求来发起发布项目快照的生成。
在框800,电子表格计算服务器接收发布项目快照请求。电子表格计算服务器可以直接从客户机处接收发布项目快照请求。或者,可以经由与电子表格计算服务器通信的Web应用程序通过网络发送发布项目快照请求。
移动到框805,电子表格计算服务器检索与发布项目快照请求相关联的工作本数据。可以从与电子表格计算服务器通信的数据存储检索工作本数据。工作本数据可以包括不同的对象(例如表格、数据透视表、单元格、一定范围的单元格、图表等)。对象的一部分被选择用于在发布项目快照中发布。工作本的对象可以与显示的值及与该值相关联的元数据(例如用于格式化)相关联。在一个实施例中,元数据可以对应于诸如用于生成值的公式或对外部数据源的引用的动态数据。
转换到框810处,电子表格计算服务器定位被选择用于在工作本数据中发布的对象。进入框815,刷新对象中链接到外部数据源的任何工作本数据。当生成发布项目快照时,经刷新的数据提供当前值。继续到框820,计算对象中的任何公式以生成相应的值。所生成的值被保存在对象中。前进到框825,将值从公式断开,这样使得无论何时访问发布项目快照,该值都不会改变。移动到框830,将对象中的任何外部数据引用从外部数据源断开。由此,在生成发布项目快照后,不能更新外部数据引用。
转换到框835,移除对象中的任何专属信息。专属信息包括工作本的所有者不希望与访问发布项目快照的用户共享的工作本数据。进入框840,移除与对象相关联的元数据。然而,保留与对象相关联的任何格式化信息,这样使得可以用与在工作本中显示的对象相似的方式在发布项目快照中显示该对象。
继续到框845,为发布项目快照的该对象创建工作表。前进到框850,对象被复制到工作表。对象被以使得当用户访问发布项目快照时该对象在呈现工作表时的工作表上可见的方式置于工作表上。例如,对象被存储在靠近工作表的左上部分。
移动到判决框855,作出在工作本数据中是否还存在更多的发布对象的判定。如果在工作本数据中还存在更多的发布对象,那么处理进入框810。如果在工作本数据中不存在更多的发布对象,那么处理继续到框860。
转换到框860,保存发布项目快照。发布项目快照提供有关工作本数据中的选择对象在特定时间点的信息。某些对象数据未被包括在发布项目快照中,这样能够防止访问发布项目快照的用户查看敏感信息。
进入框865,电子表格应用服务器将发布项目快照转换成可以在客户机处呈现的格式。在一个实施例中,发布项目快照被转换成电子表格文件格式。接着在客户机处呈现该文件。处理接着在结束框处结束。
基于上述,应该理解本发明的各个实施例包括用于生成电子数据的快照的方法、系统、装置和计算机可读介质。上述规范、示例和数据提供了对本发明的组成的制造和使用的完整描述。由于可以作出本发明的很多实施例而不背离本发明的精神和范围,本发明驻留在此后所附的权利要求中。