首页 / 专利库 / 电脑编程 / 应用程序编程接口 / 指定、设置和发现电子表格文档的参数

指定、设置和发现电子表格文档的参数

阅读:4发布:2021-06-07

专利汇可以提供指定、设置和发现电子表格文档的参数专利检索,专利查询,专利分析的服务。并且对于独立 电子 表格应用程序和/或基于Web的电子表格服务,提供了 指定 、发现和设置电子表格文档的参数的能 力 。当创建电子表格文档时,启用了指定某些单元格或某些范围的单元格作为电子表格的参数的能力。此外,不管是在独立电子表格应用程序中还是经由Web服务查看,提供了通过 用户界面 或对象模型来发现这些参数的能力。也提供了一次一个或大批地设置或改变这些参数和并驱动对计算模型的改变的能力。相应地,无论是在独立电子表格应用程序中还是经由Web呈现服务查看,可以立刻计算和查看用户输入的参数的效果。也允许延缓工作手册的重新计算直至获取了诸如参数当前集合的所有相关值的能力。,下面是指定、设置和发现电子表格文档的参数专利的具体信息内容。

1.一种将表示模型的电子表格文档的至少一个单元格指定为参数以及发现和设置所述参数的方法,包括:
经由与电子表格文档创作软件相关联的用户界面组件,将由所述电子表格文档表示的多个单元格中的至少一个单元格指定为所述模型的参数,以使得与该参数相关联的所述电子表格文档的一单元格为可编辑的;
检索与由所述电子表格文档表示的模型相关联的参数列表;以及
经由用户界面组件,编辑与由所述电子表格文档表示的模型相关联的参数列表的至少一个参数。
2.如权利要求1所述的方法,其特征在于,不是依照所述将由所述电子表格文档表示的多个单元格中的至少一个单元格指定为所述模型的参数的步骤来指定的任何单元格都是不可编辑的。
3.如权利要求1所述的方法,还包括:
随所述电子表格文档存储参数信息,所述参数信息包括表示依照所述将由所述电子表格文档表示的多个单元格中的至少一个单元格指定为所述模型的参数的步骤来指定的所述至少一个单元格的信息。
4.如权利要求3所述的方法,还包括:
请求随所述电子表格文档存储的所述参数信息。
5.如权利要求4所述的方法,还包括:
经由所述用户界面组件,将所述参数信息显示为参数列表。
6.如权利要求5所述的方法,其特征在于,所述将所述参数信息显示为参数列表包括显示参数名称和用户界面控件的列表,其中每个参数名称包括一用户界面控件,所述用户界面控件用于接收编辑与由所述参数名称表示的所述电子表格文档的一单元格相关联的值的输入。
7.如权利要求1所述的方法,其特征在于,所述检索包括经由应用程序编程接口发现所述参数列表。
8.如权利要求1所述的方法,其特征在于,所述检索还包括经由一般与所述电子表格文档相邻显示的用户界面元素显示所述参数列表,所述电子表格文档与所述参数列表相关联。
9.如权利要求8所述的方法,其特征在于,所述用户界面元素是任务窗格。
10.如权利要求1所述的方法,其特征在于,所述检索包括经由用户界面组件请求所述参数列表。
11.如权利要求10所述的方法,其特征在于,所述请求包括经由所述用户界面组件的至少一个菜单命令请求对所述参数列表的显示。
12.如权利要求1所述的方法,其特征在于,所述检索包括将所述参数列表显示为参数名称和用户界面控件的列表,其中每个参数名称与至少一个用户界面控件相关联,所述用户界面控件用于接收编辑与由所述参数名称表示的所述电子表格文档的一单元格相关联的值的输入。
13.依照权利要求1所述的方法,还包括:
延缓所述模型的计算直至通过自动获取与所述模型相关联的当前信息或经由所述编辑从用户处接收当前信息中的至少一个步骤使得与所述模型相关联的所有信息都是最新的。
14.依照权利要求13所述的方法,其特征在于,所述延缓还包括延缓对所述完整电子表格文档的显示直至通过自动获取与所述模型相关联的当前信息或经由所述编辑从用户处接收当前信息中的至少一个步骤使得与所述模型相关联的所有信息都是最新的。
15.一种将表示模型的电子表格文档的至少一个单元格指定为参数以及发现和设置所述参数的系统,包括:
经由与电子表格文档创作软件相关联的用户界面组件,用于将由所述电子表格文档表示的多个单元格中的至少一个单元格指定为所述模型的参数的装置,以使得与该参数相关联的所述电子表格文档的一单元格为可编辑的;
用于检索与由所述电子表格文档表示的模型相关联的参数列表的装置;以及经由用户界面组件,用于编辑与由所述电子表格文档表示的模型相关联的参数列表的至少一个参数的装置。

说明书全文

指定、设置和发现电子表格文档的参数

发明领域

[0001] 本发明涉及指定、设置和发现诸如电子表格或工作手册等文档的参数。
[0002] 发明背景
[0003] 诸如微软的EXCEL软件等电子表格软件用于模拟纸张的电子表格,有时也称为工作表和工作手册,其中算术地操作数字的列,例如求和、相乘等,用于预算、计划、建模和其他人物。典型的电子表格软件用户界面在屏幕上作为行和列的矩阵出现,其交叉称为“单元格”。单元格可以用标签、数值或公式填充。标签是诸如“Rent(租借)”和“Gross Sales(总销售)”的描述性文本。值是实际的数值数据,并且公式指令电子表格基于值执行特定的计算。例如,公式SUM CELLS A5 TO A10会使电子表格软件对在第A列第5-10行发现的单元格求和。公式允许单元格的相互关系,并且它们易于创建。例如,可以仅指向单元格并点击,接着按下旨在影响单元格的任何算术操作的按键(+、-等)。例如,公式的创建可以是“该单元格的内容加上该单元格的内容除以左边下一单元格的内容”。
[0004] 当添加和改变数字后,公式通常自动地或在用户启动时(例如按下按键)重新计算数据。这可以在全部多个单元格创建重新计算“波纹”效应。由于任何单元格的内容可以用任何其他单元格来计算或者被复制到任何其他单元格,一列的总和可以被用作另一列中的明细项目。例如,费用项目列的总和可以被转到显示所有费用的汇总列。如果明细列中的单元格的内容改变,那么其列总和改变,它接着被复制到汇总列,汇总总和改变。
[0005] 作为用于行家、证券经纪人、经济学家等的强有的工具,这种波纹效应使得用户能创建计划或模型,插入关于模型的不同假设,即改变参数,并上在底部行看到效果。该“如果…将会怎么样”能力使得电子表格对预算、计划和其他基于公式的任务而言不可缺少。“如果…将会怎么样”能力使用户能改变诸如银行帐户随着时间的增长的数学模型的诸如利率的底层参数。“如果…将会怎么样”同样地使用户能改变诸如开始银行帐户余额的底层事实、诸如使用或不使用以复利计算利息的公式来计算利息的使得单元格相互关联的公式,甚至是单元格的名称以解决不同的数学情形。
[0006] 由此,当前,用户可以更改有关电子表格的单元格的任何信息,这样用户可以看到更改如何在整个模型中完成。然而,现实是一般,一旦建立了模型,就不打算改变模型的某些方面。例如,用户可以知道,在上述增长示例中,开始银行帐户余额是$2000,而且这个事实不会改变。相应地,会看出电子表格可以更改这种事实的能力是不必要的。类似地,其中具有标签的单元格,当可更改时,不会改变增长公式计算的结果,即某个列或值被是标记为“增长率”还是“利率”是与底层公式无关的。因此,看上去在当前的电子表格模型下很难区分旨在用作在不同假设下调整的参数的单元格和旨在用作不可更改的固定物或模型的给定部分的单元格。
[0007] 对于电子表格的创建者而言有争议往往是好的,因为创建者一般记得哪些相关参数是用于调整的。然而,一旦与其创建无关的第三方用户查看电子表格及其表示的模型,该第三方用户必定会经历查明哪些单元格旨在用作参数而哪些不是的艰难训练。这样的第三方用户可能不知道例如$2000的开始余额是模型的给定部分。此外,当数学模型变得比此处给出的增长示例不平凡时,即使是模型的创建者可能有难以记得文档的哪些部分是参数而哪些不是。
[0008] 相应地,当前,电子表格的用户不能明确地将电子表格的单元格指定为参数。出于类似的原因,用户不能发现电子表格哪些部分是参数。进一步地,出于类似的原因,用户同样不能更改或设置参数,即与模型中不是参数的部分区分。所述与电子表格文档的参数相关联的这些缺陷在本领域中仍未被解决。
[0009] 此外,历史上,电子表格具有独立的应用程序,其中用户与是具有执行安装在一本地计算机上的电子表格软件的处理器的该本地计算机位于同一地,诸如可能是上述情况中的任一种。
[0010] 然而,随着互联网的出现和发展,计算机用户习惯于几乎从任何位置方便地访问几乎任何类型的电子文档。具体地,万维网(“Web”)和Web浏览器应用程序的迅速扩大使得访问诸如文本和图形文档的许多种类的文档非常方便。通过Web浏览器应用程序,用户可以访问和查看许多类型的电子文档,而无需任何其他的软件,包括电子表格文档。
[0011] 由此,例如,用户可以在本地机器上创建电子表格,将该电子表格文档“发布”到服务器,从中任一授权的用户可以经由Web浏览器查看该电子表格文档。当在Web浏览器中呈现时,电子表格以实质上类似于由电子表格应用程序显示电子表格的方式来显示。然而,当前,类似于上述客户机应用程序的缺陷,当创建电子表格文档用于在Web浏览器上显示时,用户也不能指定任何单元格作为参数。出于类似的原因,用户不能发现哪些参数应用到电子表格并且不能设置或更改那些参数。
[0012] 相应地,当前,用户不可能定电子表格中的模式,并使得仅可编辑某些单元格。这些单元格实际上是可以改变的“函数”参数。电子表格模型表示一函数或多个函数。虽然当前有锁定电子表格并使得仅可编辑某些单元格的方式,但这是用户界面(UI)驱动的锁定,其中没有向电子表格明确地指定某些单元格作为参数的机制,或者使得该机制跟踪单元格移动和工作手册改变。由于没有指定单元格作为参数的方式,因此也没有调用电子表格,以查询电子表格的可用参数的方式。此外,在现有电子表格服务器产品的情况下,根本还不可能编辑单元格。此处所描述的电子表格功能的这些和其他问题还是本领域中未解决的问题。

发明内容

[0013] 考虑到上述情况,对于独立电子表格应用程序和/或基于Web的电子表格服务,本发明提供了为电子表格文档指定、发现和设置参数的能力。在各个非限制性实施例中,当创建电子表格文档时,本发明提供了指定某些单元格或某些范围的单元格作为电子表格的参数的能力。此外,无论是在独立电子表格应用程序中还是经由Web服务查看,本发明提供了通过用户界面或对象模型发现这些参数的能力。此外,也提供了一次一个或大批地设置或改变这些参数并驱动对计算模型的改变的能力。相应地,无论是在独立电子表格应用程序中还是经由Web服务查看,可以立刻计算和查看用户输入的参数的效果。本发明也支持延缓工作手册的重新计算直至获取了诸如参数的所有相关值。
[0014] 以下描述了本发明的其他特征。附图说明
[0015] 参考附图进一步描述了依照本发明的电子表格文档的参数的指定、发现和设置,其中:
[0016] 图1是示出其中可实现本发明的示例性非限制计算系统环境的框图
[0017] 图2是示出其中可实现本发明的示例性网络环境的框图;
[0018] 图3A和3B依照本发明的各实现一起例示了用于经由独立应用程序和Web呈现服务来创作和查看电子表格文档的示例性客户机和服务器体系结构;
[0019] 图4A、4B和4C依照本发明例示了指定、发现和设置工作手册参数的各个方面的示例性非限制屏幕截图;
[0020] 图5A、5B、5C、5D、5E、5F、5G、5H、5I、5J和5K依照本发明例示了从创作工作手册和指定参数到发现与文档相关联的参数列表,并经由允许编辑在该参数列表中描述的参数的Web来呈现工作手册的示例性非限制屏幕序列;
[0021] 图6依照本发明例示了示出用户如何可以指定、发现和编辑参数的示例性流程图;以及
[0022] 图7A、7B、8A、8B、9A、9B、10A、10B、11A、114A、12A和12B依照本发明例示了其中可以提供类似的界面代码以达到任何界面的类似或等同目的的示例性方式。
[0023] 示例性实施例的详细描述
[0024] 概述
[0025] 如上所述,无论是基于独立电子表格应用程序还是Web服务器电子表格服务,当前用户不可能锁定电子表格中的模型并使得仅可编辑表示参数的单元格。对于独立电子表格应用程序,虽然有锁定电子表格中的模型并使得仅可编辑某些单元格的方式,但是这种功能是UI驱动的,而与如此指定的参数无关。也没有调用电子表格,以查询其可用参数的方式。此外,在允许呈现电子表格文档的基于Web的电子表格服务器的情况下,目前根本不可能编辑单元格。相应地,本发明提供了在设计时将电子表格的某些单元格指定作为参数的能力,这样当经由独立应用程序或基于Web的电子表格服务查看文档时,客户机和服务器分别能够发现哪些单元格是参数并提供替换UI或对象模型(OM)、编辑特别指定为参数的那些单元格中的值。
[0026] 示例性联网和分布式环境
[0027] 现在参考附图描述本发明的各方面,其中相同的编号表示相同的元素。具体地,图1和相应讨论旨在提供对其中可实现本发明的各实施例的合适的计算环境的简要概括描述。虽然在服务器和个人计算机上的执行的程序模的一般环境中描述了本发明,但是本领域的技术人员会认识到本发明也可以结合其他类型的计算机系统和程序模块实现。
[0028] 一般而言,程序模块包括执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构和其他类型的结构。此外,本领域的技术人员会理解本发明可以使用其他计算机系统配置来实施,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、微型计算机、大型计算机等。本发明也可以在通过通信网络链接的远程处理设备执行任务的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
[0029] 现在参考图1,将描述在本发明的各实施例中使用的计算机2的说明性计算机体系结构。图1中所示的计算机体系结构示出了常规的台式或膝上型计算机,包括中央处理单元5(“CPU”)、系统存储器7(包括随机存取存储器9(“RAM”)和只读存储器(“ROM”)11)、以及将存储器耦合至CPU 5的系统总线12。包含诸如在启动时帮助在计算机内的各元件之间传送信息的基本例程的基本输入/输出系统储存在ROM 11中。计算机2还包括用于存储操作系统16、应用程序和其他程序模块的海量存储设备14,这将在下文中作更详细的描述。
[0030] 海量存储设备14通过连接到总线12的海量存储控制器(未示出)连接到CPU 5。海量存储设备14及其相关联的计算机可读介质为计算机2提供了非易失性存储。虽然此处所包含的计算机可读介质的描述是指诸如硬盘或CD-ROM驱动器的海量存储设备,但本领域的技术人员应该理解计算机可读介质可以是可由计算机2访问的任何可用介质。
[0031] 作为示例而非限定,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于RAM、ROM、EPROM、EEPROM、闪存或其它固态存储器技术、CD-ROM、数字多功能盘(“DVD”)或其它光盘存储,磁卡带、磁带、磁盘存储或其它磁性存储设备,或是可以用来储存所需信息并可由计算机2访问的任何其它介质。
[0032] 依照本发明的各实施例,计算机2可以使用通过诸如因特网的网络18到远程计算机的逻辑连接在网络化环境中操作。计算机2可以通过连接到总线12的网络接口单元20连接到网络18。应该理解网络接口单元20也可用于连接到其他类型的网络或远程计算机系统。计算机2也可以包括输入/输出控制器22,用于从多个其他设备接收和处理输入,包括键盘鼠标或电子指示笔(在图1中未示出)。类似地,输入/输出控制器22可以提供到显示器屏幕、打印机或其他类型的输出设备的输出。
[0033] 如上简述,多种程序模块和数据文件可以被存储在计算机2的海量存储设备14和RAM 9中,包括适用于控制联网的个人计算机的操作的操作系统16。海量存储设备14和RAM9也可以存储一个或多个程序模块。具体地,海量存储设备14和RAM 9可以存储Web浏览器应用程序10。如本领域技术人员已知的,Web浏览器应用程序10可用于请求、接收、呈现和提供与诸如使用HTML格式化的网页24的电子文档的交互。此外,Web浏览器应用程序
10可用于执行包含在网页24中的脚本,诸如使用来自SUN MICROSYSTEMS有限公司的JAVA SCRIPT语言表示的脚本。依照本发明的一个实施例,Web浏览器应用程序10包括来自微软公司的INTERNET EXPLORER Web浏览器应用程序。然而,应该理解也可以使用来自其他制造商的其他Web浏览器应用程序来体现本发明的各方面,诸如来自MOZILLA FOUNDATION的FIREFOX Web浏览器应用程序。
[0034] 如以下更详细描述的,网页24可以包括电子表格文档的可视表示。具体地,网络24包括当由Web浏览器应用程序10显示时提供电子表格的视觉显示的HTML和脚本。此外,包括在网页24中的脚本使计算机的用户能与Web浏览器应用程序10提供的显示交互并修改电子表格。从Web浏览器应用程序10提供的视觉显示,也可以允许用户请求在电子表格应用程序26中打开本机的电子表格文件。响应于该请求,会启动电子表格应用程序26并将由电子表格应用程序26载入对应于由网页24表示的电子表格的本机电子表格文件。
电子表格应用程序26可以包括来自微软公司的EXCEL电子表格应用程序或来自另一制造商的另一电子表格应用程序。现在将有关图2提供有关用于在Web浏览器应用程序10的环境中查看电子表格并与之交互的过程的其他细节。
[0035] 现在参考图2,将描述例示用于本发明的各实施例的操作环境的网络体系结构图。如图2中所示,计算机2被连接到网络18。同样也连接到网络18的是应用程序服务器30。
应用程序服务器30包括服务器计算机,所述服务器计算机可能包括以上参考图1描述的一些或所有常规计算组件。此外,应用程序服务器30可用于执行Web服务器应用程序,以便接收和响应于对存储在应用程序服务器30上或应用程序服务器30上可访问的文档的请求。此外,应用程序服务器30可用于接收和响应于对由Web应用程序34生成的页面的请求。应该理解,Web应用程序34可以包括可以在应用程序服务器30处执行的代码、用于与其他计算机通信的可执行代码以及可以包括本领域的技术人员已知的模板、图形、音频文件和其他内容。
[0036] 依照本发明的一个方面,Web应用程序34可用于向计算机2的用户提供与可经由网络18访问的电子表格或工作手册的交互的接口。具体地,Web应用程序34使用服务器应用程序编程接口(“API”)38。依照本发明的该实施例,服务器API 38可用于允许与电子表格计算服务器32的通信。电子表格计算服务器32可用于执行电子表格计算服务器程序40。电子表格计算服务器程序40包括用于检索和计算诸如存储在数据库42内的工作手册44的电子表格的可执行程序。应该理解,在此处所描述的本发明的实施例中,电子表格计算服务器程序40包括计算服务器(本文的其他地方简称为“CS”),诸如来自微软公司的EXCEL CALCULATION SERVER(EXCEL计算服务器)。然而,可以使用在服务器计算机上计算电子表格的其他程序。也应该理解,计算服务器32可以包括上述有关图1讨论的许多常规硬件软件组件
[0037] 如以下将更详细描述的,计算机2可以向应用程序服务器30发送一请求,以在Web浏览器应用程序10的环境中查看工作手册44。响应于这样的请求,Web应用程序34通过服务器API 38与计算服务器32通信。具体地,Web应用程序34向计算服务器32请求适当的工作手册44。如以下将更详细描述的,响应于这样的请求,计算服务器程序40检索工作手册44,并将工作手册44转换成电子表格文档格式,诸如基于XML的文档格式。如本领域的技术人员已知的,基于XML的格式包括用于表示电子表格的内容的标记语言模式。一旦电子表格计算服务器程序40将请求的工作手册44转换成电子表格文档格式,就将电子表格文档格式化的文件返回给Web应用程序34。
[0038] 一旦Web应用程序34从计算服务器32接收到工作手册44的电子表格文档格式化表示,那么应用程序服务器30就使用电子表格Web呈现器36来将经格式化的电子表格转换成可由Web浏览器应用程序10呈现的电子表格的表示。具体地,电子表格Web呈现器36将经格式化的文档转换成可由Web浏览器应用程序10呈现的包含HTML的文档,以便显示电子表格。此外,依照本发明的各实施例,电子表格Web呈现器36能够输出HTML,当该HTML由Web浏览器应用程序10呈现时,实质上类似于当用于查看相同的工作手册44时电子表格应用程序326的输出显现。一旦电子表格Web呈现器36完成了呈现文件,那么由应用程序服务器30将该文件返回给计算机2,其中它会由Web浏览器应用程序10呈现。
[0039] 如以下将更详细描述的,电子表格Web呈现器36也可将一个或多个脚本呈现到标记语言文件中,以便使计算机2的用户能在Web浏览器应用程序10的环境中与电子表格交互。为了提供该功能,电子表格Web呈现器36可用于将可由Web浏览器应用程序10执行的脚本代码呈现到返回的网页中。脚本可以提供例如使用户能查看电子表格的较大部分、修改包含在电子表格中的数据透视表、在电子表格应用程序26中载入电子表格的本机版本,以及执行其他功能的功能。
[0040] 为了在Web浏览器应用程序10的环境中提供与电子表格的交互,Web浏览器应用程序10接收用户输入。响应于某些类型的用户输入,可以执行脚本。当执行脚本时,可以将指示电子表格中所操作的元素的响应发送给应用程序服务器30,以便标识所进行交互的类型,并进一步向Web应用程序34标识应该在该适当的元素上执行的功能。响应于接收这种请求,Web应用程序向计算服务器32作出对更新的工作手册44的其他请求。响应于此,电子表格计算服务器程序40可以考虑用户动作重新计算工作手册44,并将更新后的工作手册的电子表格文档格式化表示提供给Web应用程序34。电子表格Web呈现器36接着可用于将更新后的工作手册呈现到可由Web浏览器应用程序10呈现的格式。Web应用程序34接着可用于将更新后的电子表格发送给计算机2,在那里它可由Web浏览器应用程序10呈现。该过程可以随着在Web浏览器应用程序10的环境中用户与电子表格的交互重复任何次数。当用户在Web浏览器应用程序10中完成对电子表格的编辑时,对电子表格作出的任何改变可以通过Web应用程序34、计算服务器32中的任何一个或多个来传播,并传播给存储在数据库42中的工作手册44。以下将提供有关这些各过程的其他细节,包括用于指定、发现和设置工作手册参数的示例性实现。
[0041] 电子表格文档参数的指定、发现和设置
[0042] 现在参考图3A和3B,将描述示出用于在Web浏览器应用程序环境中查看电子表格并与之交互的说明性例程300。应该理解,虽然此处所描述的本发明的实施例是在Web浏览器应用程序的环境中示出的,但是本发明可以用于支持标记语言文档的呈现的其他类型的应用程序中。例如,此处所描述的本发明的实施例可以在个人信息管理器应用程序、演示应用程序、绘图或计算机辅助设计应用程序、或数据应用程序中使用,以便允许呈现文档并与之交互,而无需专用的应用程序。
[0043] 当阅读此处所示的例程的讨论时,应该理解,本发明的各实施例的逻辑操作被实现为(1)计算机实现的动作或在计算系统上运行的程序模块的序列和/或(2)计算系统中的互连机器逻辑电路或电路模块。实现大致是基于实现本发明的计算系统的性能要求的选择。此外,图3和6所示并且组成此处所描述的本发明的各实施例的逻辑操作被不同地称为操作、结构化设备、动作或模块。本领域的技术人员会认识到,这些操作、结构化设备、动作或模块可以用软件、固件、专用数字逻辑及其任何组合来实现,而不背离所附权利要求所述的本发明的精神和范围。
[0044] 例程300在302处开始,其中客户机计算机2向应用程序服务器30发送对工作手册44的请求。该请求可以由计算机2响应于用户通过Web浏览器应用程序10请求在Web浏览器应用程序10中打开工作手册44以供查看和编辑来发送。应该理解,应用程序服务器30可以提供基于Web的界面30,以使用户能够查看可用的工作手册并选择工作手册之一来查看和编辑。
[0045] 例程300从操作302继续到操作304,其中应用程序服务器30向计算服务器32将发送对工作手册44的请求。具体地,Web应用程序34可以使用服务器API 38来与电子表格计算服务器程序40通信。通过该通信路径,可以作出对工作手册44的请求。
[0046] 例程300从操作304继续到操作306,其中电子表格计算服务器程序40从数据库42检索所请求的工作手册44。电子表格计算服务器程序40接着在操作308处计算工作手册44的内容。计算操作308可以包括类似于当重新计算工作手册44时由电子表格应用程序26所执行的那些计算。
[0047] 一旦计算服务器32计算了工作手册44,电子表格计算服务器程序40也可用于将经计算的工作手册转换成适当的格式,诸如基于XML的格式。基于XML或标记的格式包括用于描述电子表格的内容的标记语言模式。应该理解,依照本发明的各方面,仅将工作手册44的一部分转换成XML格式。这允许仅将电子表格的可显示部分返回给计算机2。通过由网络24提供的界面可以请求其他部分。或者,整个工作手册44可以被转换成XML格式,并被返回给应用程序服务器30。
[0048] 在操作312处,计算服务器32使用经XML格式化的工作手册来响应来自应用程序服务器30的请求。例程300接着继续到操作314,其中在应用程序服务器30上执行的电子表格Web呈现器34将经XML格式化的工作手册转换成可由Web浏览器应用程序10呈现和显示的格式。具体地,电子表格Web呈现器36将XML工作手册转换成包含HTML和脚本两者的网页24。Web浏览器10使用HTML来显示所请求的工作手册44的内容。Web浏览器应用程序10使用脚本使用户能在Web浏览器应用程序10的环境中与电子表格的所呈现版本交互。
[0049] 例程300从操作314继续到操作316,其中应用程序服务器响应来自计算机2的对工作手册44的原始请求。具体地,应用程序服务器30将网页24发送给计算机2,该网页包括在Web浏览器应用程序10的环境中查看工作手册44和与之交互所必需的HTML和脚本。
[0050] 一旦计算机2接收到网页24,那么Web浏览器应用程序10就可用于呈现网页24的内容。具体地,呈现HTML,以提供实质上类似于在使用电子表格应用程序26打开相同的工作手册44时电子表格应用程序26会提供的工作手册44的视图。此外,Web浏览器应用程序10可用于呈现脚本,使得计算机2的用户可以在Web浏览器应用程序10的环境中与电子表格交互。
[0051] 现在转到图3B,将描述示出允许用户在Web浏览器应用程序10环境中与所呈现的工作手册交互的本发明的各方面的说明性例程320。例程320在操作322处开始,其中呈现了网页24的内容,包括显示网页所需的HTML和使用户能与电子表格交互的脚本。例程320接着继续到操作324,其中Web浏览器应用程序10接收用于与所显示的电子表格交互的用户输入。例如,Web浏览器应用程序10可以从用户接收修改数据透视表的内容、请求显示工作手册中另一电子表格、将保存对电子表格的任何修改或执行其他功能的输入。应该理解,一个或多个脚本可以由Web浏览器应用程序10执行,以便接收输入并执行使交互被执行所必需的与应用程序服务器30的通信。
[0052] 一旦在操作324处从用户收到输入,那么在操作326处适当的脚本将标识用户采取的特定动作的数据发送给应用程序服务器30。在操作328处,应用程序服务器30确定用户所采用的特定动作。一旦标识了所请求的动作,应用程序服务器30将请求在特定工作手册上采取该特定动作的命令发送给计算服务器32。如上所述,应用程序服务器30通过服务器API 38与计算服务器32通信。
[0053] 响应于从应用程序服务器30接收对当前工作手册执行命令的请求,电子表格计算服务器程序40对工作手册44执行所请求的动作。例如,如果用户请求重新排列数据透视表内的元素,那么电子表格计算服务器40执行元素的实际重新排列。一旦执行了动作,电子表格计算服务器程序40在操作332处重新计算工作手册。重新计算所得的工作手册反映了用户通过Web浏览器应用程序10对当前打开的工作手册作出的改变。
[0054] 一旦重新计算了工作手册44,在334处,计算服务器32将重新计算所得的工作手册转换成XML格式。以上参考图3A描述了该过程。一旦将重新计算所得的工作手册转换成XML格式,就将重新计算所得的工作手册从计算服务器32发送到应用程序服务器30。在应用程序服务器30处,电子表格Web呈现器36将重新计算所得的电子表格的XML版本转换成可由Web浏览器应用程序10呈现的格式。重新计算所得的电子表格的可呈现版本接着被发送给Web浏览器应用程序10,在那里它可被呈现并显示给用户。以上参考图3A和操作312-318描述了该过程。以下将更详细地描述依照本发明用于指定、设置、编辑和发现工作手册参数的示例性非限制实现的细节。
[0055] 工作手册参数的指定、设置、编辑和发现
[0056] 如所述的,依照本发明,工作手册作者可以指定单元格和/或过滤器作为可编辑参数。例如呈现电子表格文档以用于经由Web浏览器显示的电子表格应用程序服务器等服务器接着可以通过用户界面(UI)和通过web服务应用程序编程接口(API)展示可编辑参数。在本发明的一方面,电子表格客户机可用于通过允许将单元格和过滤器指定为参数来创作工作手册参数的经历。
[0057] 如在背景中所提及的,当前的应用程序服务器不允许对单元格的值的内联编辑,然后有多种顾客场景,其中改变单元格的值的特定子集的能力是强大的。这包括例如简单的良好定义的计算模型(例如抵押计算器)和如果…将会怎么样分析(例如每年改变年收入的增长率)。希望改变值作为应用程序服务器Web呈现经历的一部分的最终用户以及用于发现、检索和设置/编辑特定参数值的Web服务API都可以使用这种特征。
[0058] 依照本发明的电子表格客户机应用程序向用户提供了指定哪些单元格是参数的方式。用户接着可以发现哪些单元格是参数并编辑相应的单元格。在本发明的一个实施例中,虽然仅服务器展示参数(其中客户机的参数指定功能成为将工作手册发布给服务器的一部分),但是本发明构想了替换实施例,其中电子表格客户机应用程序也展示参数,即允许发现、检索和设置参数。
[0059] 此处所描述的是允许工作手册作者指定特定的单元格作为电子表格客户机中的参数的技术。应用程序服务器又支持通过UI或OM改变这些单元格中的值。这种功能也可以由电子表格客户机支持。
[0060] 如本领域的技术人员可以理解的,有多种向用户展示参数的方式。例如,在一个示例性非限制实施例中,可使用仪表板。例如,使用各种数据呈现Web部分(例如来自SQL服务器报告服务的Office Web组件(OWC))来构建诸如商务智能(BI)仪表板等现今的仪表板,期望同步地过滤所有不同的数据视图。这可以通过将所有的Web部分链接到单个‘参数’值来完成。
[0061] 由此,依照本发明可以将电子表格工作手册包括在这些仪表板中,这样使得工作手册可以提炼出类似的页面级过滤器和参数,允许以下场景,其中的每一个场景是示例性的而非限制:(1)在电子表格客户机中向最终用户提供用于定义某些单元格作为参数的UI和OM,(2)将参数信息保存在电子表格文件中,这样使得应用程序服务器可以通过UI和web服务API来展示参数,(3)设计特征UI和入口点使得最终用户清楚特征是旨在供电子表格客户机/服务器场景使用的,以及(4)允许应用程序服务器场景,包括使用过滤器(或限制器(slicer))Web部分来构建BI仪表板,用于依照系统的各部分之间的适当通信来驱动工作手册参数通过。一方面,本发明由此提供了限制器控件,用于将值提供给参数。
[0062] 例如,假设公司收集数据并基于制造商、华尔街的分析师、经纪人和零售商的销售点数据来创建电子表格报告,并且经由Web将这些报告作为HTML文件分发。作为HTML文件,这些报告是完全静态的—无法过滤数据或探究报告中的数据以找出商业问题的答案。因此,公司为它们的客户生成多于1百万个这种报告,这样如果客户想要几乎任何可以想象得到的报告,那么它会是可用的。这种结果是在一致的基础上仅使用这样的公司生成的报告中3-5%,并且当需要这些公司未预期的微小修改时,分析师必须手动地创作和运行新的报告—这是昂贵而耗时的过程。
[0063] 有了本发明的应用程序服务器和电子表格Web部分,这种公司能够很大程度上降低为他们的客户生成的报告的数目,这会为公司省下费用并且使得客户能更容易地找到他们所寻求的信息。有了本发明,公司将能够创建将数据从正确的数据源拖动到服务器上的电子表格工作手册中的报告基本集,而不是创建客户可能想要的所有可以想象到的报告。这些报告会是基本报告,诸如“YTDSales(销售)”,用户可以容易地理解它们,而不是现今的多个报告(“YTD SalesNW(西北YTD销售)”、“SW(西南)”、“NE(东北)”、“SE(东南)”、“By Produc(按产品)”、“By Product NW(按产品西北)”、“By Product NE(按产品东北)”、“By Product SW(按产品西南)”、“By Product SE(按产品东南)”等)。有了简单的参数化,客户将能够定制这些报告并按照各种尺度来过滤,以看到他们最感兴趣的信息。此外,如果客户期望看到特定报告的更深入的内容或者特定产品线的“Top 10(前10)”,那么客户将能够在现有的报告中立即这样做,并且无需请求公司生成的新报告。
[0064] 对于本发明的另一示例性使用,John为其上级管理人员创建周销售报告。现今,John具有连接到外部数据的工作手册,每周他刷新数据,接着取得对他们工作的各个区域而过滤的工作手册中的几个快照。接着他将这些图象粘贴到电子邮件中,并将汇总邮件发送给管理人员。
[0065] 然而,在安装了本发明的电子表格软件后,John改写他的工作手册,以使得它比以往任何时候更易于阅读。他也具有一个单元格,指示他工作表的顶部的区域。在发布到电子表格服务器的动作期间,John将某些单元格设置成参数,并决定将区域单元格设置为工作手册参数。当工作手册载入到应用程序服务器中时,他的管理人员看到出现新的任务窗格,包含可修改区域字段。管理人员可以进入不同的区域、点击应用,并查看为他们所进入的区域所更新的数据和工作手册。
[0066] 作为另一示例,Samantha为她的组织中的高级VP构建仪表板,并且希望它显示关键绩效指标(KPI),数据的图表和工作表都是由单个、易于管理的过滤器控件构建的。Samantha使用若干个应用程序服务器、一些KPI和一过滤器(限制器)控件来设置页面。
Samantha接着检查过滤器控件并对其分配来驱动将项目名称的值过滤成页面上的各个部分中。这允许管理人员按照不同的项目来过滤并且相应地看到仪表板更新上的所有部分。
[0067] 在一个非限制实施例中,可以仅选择一个单元格的子集作为参数。以下更详细地描述如何选择它们、将何时存储可用参数的列表以及将其存储在何处和与参数特征相关的OM。
[0068] 在一个实施例中,在由发布文档用户确定的对话框中,用于指定工作手册参数的UI包括两个对话框:显示工作手册中现有的经定义参数的对话框以及具有可用名称参考列表以供选择参数的对话框(其中不是所有的单元格都被选为参数,虽然如上所述,无需一定要这样)。
[0069] 作为发布/管理服务器设置对话框的一部分部分启动该对话框,并且对话框可以是用任何合适的形式,诸如有标签的对话框、现有分类对话框(具有排序能力)等。
[0070] 当进入时,在当前工作手册中定义的当前参数被载入到列表中。如果在当前工作手册中没有定义任何参数,那么列表为空。在任一情况下,当第一次进入对话框时,在列表中没有选择任何参数。
[0071] 在一示例性、非限制实现中,参数列表包括以下各项之中的任何一个或多个:(A)名称:所采用的参数名称(默认地,该列表可以按照名称以升序(A-Z)排列),(B)值:返回串常量,名称所指示的当前值,或者错误代码,(C)注释:与名称相关的任何注释,以及(D)指示:参数所基于的名称当前所指示的是什么。
[0072] 在一个非限制性实施例中,参数列表如同标准列表控件一样运作。例如,可能通过单击参数(行中的任何地方)来选择列表中的一个或多个参数,类似于使用鼠标和键盘的正常列表控件行为,有多个选择可用。例如,可以选择参数(例如使用鼠标指针或箭头按键),除了已经选定的任何其他参数之外可以选择参数,除了已经选择的参数可以选择参数加上在该选择和上次选择之间的参数,且可以通过使用鼠标指针点击拖曳来选择参数。
[0073] 在另一非限制实施例中,“Add(添加)”按钮或功能检查以了解是否存在至少一个有效名称并且启动添加参数对话框,“Delete(删除)”按钮使用户能删除先前添加的一个或多个参数。类似地,当选中一个或多个参数时,按下“Delete”按钮会开始对这些参数的删除(从列表中以及当保存文件时)。在一个非限制性实施例中,当从添加参数对话框返回时,所检查的参数在依照它们出现在添加参数框对话中相同的顺序排列在列表的底部。
[0074] 在一个示例性非限制实施例中,用户可以通过使用向上和向下箭头按钮对参数排序,在另一非限制实施例中,如果可以作为对参数排序的手段来实现参数可以,那么可以通过拖放来对参数排序。
[0075] 就存储参数而言,可以使用用于存储指定参数并使其与工作手册相关联的任何常规已知的手段。对于一示例性非限制实现,工作手册参数可以被存储在诸如隐藏文档属性的文档属性和/或工作手册文件中。前者允许应用程序服务器容易地提取参数,并且允许快速检索以便设置具有限制器控件的仪表板和其他解决方案。当保存或发布文件时可以存储工作手册参数。
[0076] 在一个示例性非限制实施例中,为每个参数存储的信息与为每个用户输入的信息相同,虽然也可以存储其他信息,即可以依照本发明扩展参数存储格式。也可以为每个参数存储以下属性:所定义的名称、名称会在应用程序服务器UI或OM中出现的顺序。
[0077] 在各示例性非限制实施例中,工作手册级别的ServerParameters(服务器参数)的ServerParameters集合可以包括来自表I的以下各项,ServerParameter对象可以包括以下表格II中的各成员:
[0078]添加 方法 名称、次序 将参数添加到集合。如果所选的
名称不是有效的参数,添加将返
回出错。
项目 对象 iParameters 用户指定编号,它返回相应的参
数。
计数 属性 返回参数数目的只读属性。
删除 方法 名称 从集合删除参数。如果在集合中
没有该名称的参数就返回出错。
清除 方法 移除所有的参数。
次序
[0079] 表格I-ServerParameters的ServerParameters集合
[0080]名称 属性 参数的名称
次序 属性 参数的次序
删除 方法 从集合移除该参数
[0081] 表格II-ServerParameter对象成员
[0082] 经由应用程序服务器编辑单元格的内容
[0083] 该部分一般描述了用户经由应用程序服务器编辑单元格的内容的能力,或是通过SharePoint Portal Server(共享点户服务器)(SPS)过滤器或是通过应用程序服务器自己的工作手册参数任务窗格。然而,本领域的普通技术人员可以理解,可以依照本发明采用用于编辑单元格的内容的替换已知机制,以下实现细节仅是为了说明而呈现的。
[0084] 对于某些背景,SPS被用于由电子表格服务器执行的一些任务。如在此处的示例性实施例所描述的,应用程序服务器是将电子表格工作手册呈现为例如动态超文本标记语言(DHTML)的Web部分。计算服务器(CS)是计算引擎,并且一般包括电子表格服务器的后端组件。如此处所述,Web前端(WFE)包括电子表格服务器的前端组件,包括:应用程序服务器、应用程序编程接口(API)和代理。
[0085] 如在以上部分中所述,依照本发明的工作手册参数包括供工作手册作者在他们的工作手册中选择单元格子集并将它们标记为可由用户编辑的方式。这些单元格接着可以被保存在工作手册的文档属性中,并且可以通过应用程序服务器自身内的任务窗格或通过SPS过滤器向用户展示。该部分描述了用于这些解决方案的多种示例性非限制实现。
[0086] 图4A例示了依照本发明示出具有参数的应用程序服务器的示例性非限制UI的屏幕截图。有了本发明,用户能够使用应用程序服务器来设置参数,而无需组件下载。
[0087] 在这点上,本发明支持多种参数化场景,这样使得用户能够完成通用任务,而无需返回到电子表格客户机软件。例如,参数化会用于SPS限制器接口,如此处所述。在这方面,本发明允许用户在应用程序服务器之外获取参数以便驱动其他Web部分。
[0088] 对于依照本发明的应用程序服务器可以完成的一些示例性非限制场景,考虑构建具有可编辑单元格的工作手册的任务。例如,假设John为他上级管理人员创建周销售报告。现今,John有连接到外部数据的工作手册,每周他刷新数据,接着在对他们工作的各个区域而过滤的工作手册中取得几个快照。接着他将这些图象粘贴到电子邮件中,并将汇总邮件发送给管理人员。
[0089] 然而,在安装了适当的软件后,John跳到工作表数据引导(bandwagon)上并使用工作表数据重新制作其工作表,使得它比以往任何时候更易于阅读。他也具有一个指示在他工作手册的顶部区域的单元格。在发布到电子表格服务器期间,John认识到他可以经由本发明将某些单元格设置成参数,并决定将区域单元格设置为工作手册参数。当工作手册载入到应用程序服务器中时,John兴奋地看到出现包含可编辑区域字段的新的任务窗格。John输入‘South(南)’并点击‘Apply(应用)’,并观看应用程序服务器刷新,对南方地区更新了所有数据。现在,John再也不需要发出这些每周状况邮件。
[0090] 对于另一场景,本发明允许仪表板的构建。例如,Sam正在为他组织内的高级VP构建仪表板,并且想要它显示关键绩效指标(KPI),数据的图表和工作表都是由单个、易于管理的过滤器控件构建的。依照本发明,Sam使用若干个‘裸露的’应用程序服务器、一些KPI和一SPS限制器控件来设置页面。Sam接着检查限制器控件并对其分配以从页面上的各个部分获取过滤器值,并将它们的每个分配给一个“Report(报告)”控件。
[0091] 现在,当VP来到仪表板页面并从列表选择一报告时,所有的工作表、图表和KPI指示符被更新以反映该报告中的数据,因为Sam将所有工作表设置为基于所选报告来过滤。
[0092] 依照本发明的示例性非限制实现,工作表参数可以被保存为文档属性,而CS包括经由CS的私有API将改变应用到文档属性的能力。
[0093] 在一个实施例中,本发明提供了一界面,它经由转换器来给予对参数的访问,只要用户提交页面,即在限制器中为其设置值。
[0094] 在本发明的一个示例性非限制实现中,为了在本发明的SPS限制器和控件之间建立连接,用户进入页面的设计模式,其中应用程序服务器开启且开始将过滤器控件放入“Filter web part zone(过滤器web部分区)”。用户接着可以点击控件右上方的箭头,在该下拉菜单中,他们会选择Connection(连接),来自Connection的飞出菜单包括“Get Filter Values From(从..获取过滤器值)”选项,这再一次使得飞出到{SpreadsheetWebRenderer}。
[0095] 当用户选择应用程序服务器之后,他们被提示从应用程序服务器正在展示的未分配参数列表中选择,或者如果他们试图设置来自多值过滤器控件的连接,他们接收到消息告诉他们应用程序没有展示任何多值参数,他们将不能使用该过滤器控件设置到应用程序服务器的连接。假设他们试图设置来自单值控件的连接,那么用户接着会从列表中选择参数,接着就认为设置了控件。在一个非限制实施例中,如果参数被连接到过滤器控件,那么工作手册参数任务窗格是可见的,并且它在任务窗格中变成禁用的。
[0096] 在一个非限制实施例中,单个单元格参数从限制器接收单个值,这就是为什么对于每个参数,本发明将‘Supports Single Value(支持单值)’标志传递给限制器。这意味着限制器仅允许用户设置从单值过滤器元素到单个单元格参数的连接。
[0097] 在一个示例性非限制实施例中,值被作为名称值对发送给CS,这样就无需将所有的参数都发送给CS,它们的次序没有关系。在故障的情况下,可以依照本发明应用适当的出错处理。
[0098] 在本发明的示例性非限制实施例中,在旁边提供了Expand/Collapse Bar(展开折叠栏),例如在工作表参数任务窗格的左边或右边,但是(分别)在工作表的右边或左边,并允许用户隐藏或显示任务窗格。可以将工具置于展开/折叠栏和工作手册参数任务窗格两者之上。
[0099] 展开/折叠栏包括根据任务窗格是折叠的还是展开的图象,该图象在垂直和平方向中均居中。在示例性非限制实施例中,如下使用图象:
[0100] 当任务窗格可见时点击展开/折叠栏来隐藏它,并将展开/折叠栏移动到应用程序服务器的较远的右边缘(或者在从右向左(RTL)的模式中为左边缘),并且网格和工作表导航栏的宽度随着它增长。当任务窗格是隐藏时点击展开/折叠栏,将显示任务窗格并随之将展开/折叠栏移出来,并且收缩网格和工作表导航栏的宽度。
[0101] 用户也应该能够用tab键转到展开/折叠栏并使用ENTER(回车)键来对其操作。
[0102] 通过发回给CS来保存任务窗格的状态,折叠或展开。由此,如果用户折叠任务窗格,接着执行要求发回给CS的动作,那么当页面重新载入时,任务窗格应该保持折叠。
[0103] 在一个示例性非限制实施例中,工作手册参数任务窗格开始是可见的,并且位于除工具栏之外应用程序服务器中所有控件的右侧(在RTL模式中为左侧)(其中工具栏位于下方)。
[0104] 要显示的参数以及在相应的文本框里要显示什么由CS传递给应用程序服务器。在各个非限制实施例中,在工作手册参数任务窗格的主体中有指定范围的名称和其中用户可输入数据的文本框。
[0105] 为了说明起见,在图4B中示出了任务窗格的UI的示例性实现。当用户首次打开应用程序服务器时,如果有该工作手册的参数,且未经由Web部分属性禁用工作手册参数任务窗格,那么工作手册参数任务窗格开始是可见的。在一个实施例中,在工作手册参数任务窗格中使用与参数由CS传递给应用程序服务器的相同次序来显示参数。
[0106] 在其他实施例中,当用户在文本框的图标上方悬停时,将描述属性显示为工具提示TTIP,如图4C中所示。所使用的图标可以与电子表格中所使用的相同来向用户指示有用于该单元格的注释。由于描述属性是可任选的,因此如果没有提供描述值,那么就不显示该图标,并且不显示工具提示。当位于该图象上方时,鼠标光标可以任选地保持为指针。
[0107] 在本发明的一个实施例中,如果有比适合任务窗格更多的参数,那么就出现滚动条,用于正好覆盖包含参数及其值的任务窗格的部分。如果用户在阅读器页面中查看具有参数的工作手册,那么任务窗格将是可见的。用户可以使用展开/折叠栏来隐藏或显示该任务窗格。信息栏具有两个状态:一个当页面在设计模式中,另一个当页面在查看模式中。
[0108] 本发明可以支持的另一类型的参数是PivotTable Page Field(数据透视表页面字段),它可以接收多值。
[0109] 计算服务器的操作和与应用程序服务器的交互
[0110] 如上所述,依照本发明,电子表格服务器包括参数化工作表的能力。经由应用程序服务器调用应用包括请求参数列表并设置它们的值的能力。如上所述,应用程序服务器包括Web呈现器,用于经由Web呈现工作手册。在这点上,参数使工作手册作者能创建单个模板电子表格,它可以基于单个或多多个参数的值快速改变其内容的。
[0111] 例如,工作表作者设计抵押计算器并创建利率、本金和预付款参数。用户应用参数,单元格计算并返回适当的结果。参数也允许应用程序服务器参与商务智能(BI)仪表板的情况,其中单个web页面由均可基于限制器的值来同步调用的多个web部分组成。
[0112] BI仪表板是用于传递状态和驱动动作的工具,并且经常是呈现为报告、图表、度量和关键绩效指标的定量信息和呈现为仪表板作者对所提供的定量数据的注释的定性分析的混合。
[0113] 工作手册参数是与可以通过调用应用程序服务器发现并设置的工作手册相关联的变量。内部地,参数是被“标记”为参数的单个单元格指定的范围。
[0114] 仪表板的能力之一是它们可以基于参数的值来过滤或限制(使用限制器web部分)。对于在应用程序服务器中呈现的作为BI仪表板的部分的工作表,应用程序服务器应该“更新”以反映已经被分配给BI仪表板的参数。
[0115] 为了完成这个,依照本发明提供了供Web部分传递它们包含什么参数的机制和用于设置它们的值的机制。
[0116] 对于参与到该情形中的电子表格服务器,当用户改变参数时,例如在Sharepoint限制器部分中,在应用程序服务器中显示的电子表格工作手册反映了限制器的值。
[0117] 如此处所述,调用应用程序(应用程序服务器)可以向服务器要求与工作表相关联的参数列表。在示例性实施例中,即使设置参数值实际上等效于设置单元格的值,但是向用户提供出错消息,传递该参数操作失败而不是设置单元格值的失败。
[0118] 在本发明的另一方面,优化与设置参数有关的工作手册操作。例如,不管计算模式如何,延缓计算直至设置了所有的参数。此外,本发明确保当载入工作手册时,对参数的定义(例如指定范围)仍满足作为参数的要求。此外,调用应用程序(应用程序服务器)可以设置参数的值(单)。
[0119] 这些仪表板的消费者会导航到仪表板,并且能够改变参数web部分中的“project(项目)”参数。一旦项目参数被改变,那么就更新网页上的所有web部分(包括应用程序服务器的和报告服务器呈现的web部分),以便反映与仪表板消费者选择的项目相关联的数据。对于应用程序服务器,可以使用工作表数据公式,将参数的值用作到函数的输入。
[0120] 抵押计算机要求需要输入若干个参数以便确定每月付款。在这种环境下,有人创作工作手册并创建本金、利率、贷款周期和预付款的指定范围。用户接着敲击应用按键,计算工作手册向他们显示他们的每月付款。
[0121] 就检索参数消息而言,计算服务器(CS)提供了调用应用程序来检索参数信息的手段,参数信息包括以下各项中的任何一个和多个:参数名称、参数在工作手册中的次序(以便应用程序服务器将它们以所提供的顺序列出)、参数的当前值以及参数描述。
[0122] 参数的名称是它所占有的指定范围的名称。参数次序为显示目的定义了参数次序,并且可以用各种方式和格式来定义。CS可以将该信息返回给调用应用程序(应用程序服务器)。除了参数的当前值之外,每个参数具有可选描述,CS也可以将其传递给调用应用程序(应用程序服务器)。
[0123] CS提供了应用程序服务器为工作手册中的每个参数设置参数值的手段。在对CS的单个调用中,可以设置一个或多个参数值。如所述的,在本发明的一方面,可以延缓计算直至设置了作为发回部分的所有参数值。设置参数的值等效于经由SetCell()方式设置单元格中的值。
[0124] 任选地,CS不会隐式地或显式地基于参数的值改变服务器上的数字格式。
[0125] 关于当打开工作表时延缓计算和数据刷新,本发明的CS支持在计算工作表和刷新数据之前设置单元格值,而不管工作表的计算模式或数据刷新设置为何的能力。一旦设置了参数,工作表返回创作它的计算模式。
[0126] 在一个实施例中,当页面上有具有默认值的限制器时,应用程序服务器将参数作为所打开的工作手册的一部分传递。否则,应用程序服务器会不将参数值作为其打开工作手册的请求的部分传递。
[0127] 如果工作手册在手动计算模式中,这意味着工作手册可能会处于“dirty(脏)”计算模式中,从该状态中用户可以开始计算,以看到工作手册中由于改变参数值而得到的改变。
[0128] 不要求作为应用程序服务器进行的参数设置操作的结果而设置所有的工作手册参数。如果网页上的限制器部分映射到在工作手册中定义的参数的子集时,这会发生。在这种情况下,工作手册中的其他参数维持它们默认的单元格值。
[0129] 在本发明的示例性非限制实施例中,当CS载入工作手册时,CS检查在工作手册中定义的参数是否仍满足为成为参数所定义的标准。如果不满足该条件,那么CS返回出错。该检查覆盖工作手册中的所有参数,而不仅是应用程序服务器试图设置的参数。可以理解,为成为参数所定义的标准可以基于系统的期望特征而不同地设置,例如平衡系统对参数是什么的确定性以及设置参数中的用户灵活性。
[0130] 关于由CS的计算引擎设置和检索参数,参数的设置改变单元格中的值,并且基于工作手册所在的计算模式(手动、自动),工作手册或者计算或者不计算。
[0131] 示例性非限制屏幕截图序列
[0132] 图5A到5K例示了说明性(非限制)UI屏幕截图的示例性序列,结合有关基于被称为增长(例如银行帐户的利率)的变量预测销售的工作手册的web发布经历显示了本发明的能力。
[0133] 在图5A中,工作手册500包括单元格B3和B4,分别标注“2005”销售和提供2005销售的值$2000。单元格C3和C4是分别标注“2006”销售和基于名为“growth(增长)”N2的增长率预测值$2200的单元格,如表格F3中所示所述N2值为10%。单元格B3、C3、B4和C4共同被称为“Sales(销售)”,如N1所示。
[0134] 如上所述,一旦创建了工作手册500,那么经由对话框/菜单502a,图5B开始示出用户将工作手册发布给电子表格服务器的过程,从该服务器,更多经授权的用户可以经由诸如Web的网络、经由诸如浏览器的应用程序来查看该工作手册。如所示的,用户可以在502a处选择一选项,将工作手册500发布到Web服务器。
[0135] 一旦启动,流程移动到图5C,其中对话框/菜单502b示出用户可以选择发布工作手册的子集,即使得一旦发布了工作手册500,不能从Web访问诸如特定工作表的工作手册500的一部分。例如,从工作手册作者的观点而言,可能不期望共享位于工作表3中的专有公式,但同时工作表作者可能希望向用户展示来自工作表3的一个或多个参数。
[0136] 接着,如图5D中所示,在502c处,用户可以选择对话框菜单的参数选项卡,这会调出用于选择(指定)工作表500的单元格作为参数的UI。任选地,如在图5E中所示,在502d处,一开始按照如何定义参数,UI包括工作手册500所有可能的参数。然后,举例而言,如图5F中所示,且依照增长模型,用户在502e处选择了“growth(增长)”作为参数。虽然在该示例中增长是唯一的参数,但这只是为了理解起来简单。本领域的普通技术人员会理解,电子表格模型和公式以及相关联的假设可以变得极为复杂,并且因此可以包括几十个或者更多的参数。
[0137] 如图5G的502f所示,在502e处选择了增长作为参数之后,用户返回到主发布UI,其中显示增长被指定为参数。最后,如在图5H中所示,在502g处,用户通过使用相应的“Publish(发布)”UI元件将文档发布到电子表格服务器。在选择一选项以便经由Web显示工作表之后,经由客户机应用程序创建的工作手册500被显示为Web工作手册504,如图5I中所示。可以看到在工作手册504的右侧显示参数列表LP,它包括增长参数P和编辑框EB。如先前所述,在一个实施例中,可以延迟或延缓工作手册504的计算和显示直至输入并应用了编辑框EB的参数值。在图5I显示的非限制屏幕截图中,在创建工作手册509时描述的值是默认显示的。
[0138] 接着,在图5J中,用户在编辑框EB中输入新的值20%(代替当前在图5I的计算和显示中使用的10%)。最后,用户应用在编辑框EB中输入的新的值,如在图5K中显示的,计算服务器基于新的参数值20%重新计算模型,并且在执行了用于显示基于Web的文档的适当转换后显示工作手册506。可以看到在这种情况下,基于增长率从10%变成20%,所投射的2006的值从$2200变成$2400。由此可以看出将电子表格文档发布到服务器以及基于个人的需要向他们展示参数的优势。例如,抵押公式可能希望发布净值计算器,其中各个参数(住宅价值、证券价值、退休帐户等)都可以作为参数被输入,由此个别地为用户定制计算。同时,抵押公司可以从其用户处收集这些数据,并更好地为用户定制其总体服务。
[0139] 虽然此处在一些实施例中将参数的指定描述为包括在发布经历中,但是依照本发明独立客户机应用程序也可得益于参数的指定。相应地,不应该认为本发明被限制在将工作手册发布到Web的环境中,而是应该认为被定义在权利要求的范围内。
[0140] 图6示出了类似于先前序列的流程图,但是没有某些限制细节。例如,在600处,用户选择创作或编辑工作手册,在610处,用户调用用于指定工作手册的参数的用户界面组件,这会在步骤620处完成。任选地,可以将工作手册发布到电子表格文档Web服务器,以便经由Web呈现电子表格文档。以后,无论由客户机打开或经由Web呈现器查看包括指定参数的电子表格文档,在630处私有API用于从电子表格文档中发现和提取参数信息,包括参数化由电子表格文档表示的底层模型的参数列表。接着,在640处文档准备好显示,其中展示参数列表并呈现用户界面组件以便编辑参数列表中的参数。接着,任选地,在650处,工作手册本身可以经由基于定义工作手册的参数的初始值集的计算来显示,或者如上所述,可以延缓这种计算直至接收了与电子表格文档相关联的所有当前信息。在660处,用户可以编辑参数列表中的一个或多个参数,并请求将新的参数值应用到电子表格的模型上。相应地,在670处,计算引擎基于用户输入的新的参数值重新计算(或者如果延缓就是计算)电子表格文档。
[0141] 示例性接口实现
[0142] 对于在多个计算机之间的任何数据的交换,诸如依照本发明的技术和在两个计算机之间共享的参数数据,存在用于在每个计算机上处理各种操作的接口,依照相关的应用和所请求或提供的服务,所述接口可以用硬件和/或软件实现,并用于以某种方式接收、发送和处理数据。就可以提供以达到或实现用于依照本发明来压缩和接压缩标记数据的系统和方法的任何部分的一个或多个接口对象而言,本发明旨在包括所有这样的实施例,因此以下是当实现或执行本发明时可以提供或使用的各类型的接口的一般描述。
[0143] 编程接口(或简称为接口)可被视为用于允许一个或多个代码段与一个或多个其它代码段所提供的功能通信或对其访问的任何机制、过程、协议。或者,编程接口可被视为系统中能够通信上耦合至其它组件的一个或多个机制、方法、功能调用、模块等的一组件的一个或多个机制、方法、功能调用、模块、对象等。前述语句中的术语“代码段”旨在包括一条或多条指令或代码行,且包括例如代码模块、对象、子例程、函数等,而不考虑所应用的术语是什么或者代码段是否被单独编译、或者代码段是否作为源、中间或目标代码来提供、代码段是否在运行时系统或进程中利用、或者它们是否位于相同或不同的机器上或跨多台机器分布、或者代码段所表示的功能是否全部使用软件实现、全部使用硬件实现或使用硬件和软件的组合。
[0144] 概念上,编程接口一般可如图14A或图14B中所示地查看。图14A示出接口“接口1”为第一和第二代码段可经其通信的管道。图14B将接口示为包括接口对象I1和I2(它们可以是或可以不是第一和第二代码段的一部分),它们允许系统的第一和第二代码段经由介质M来通信。在图14B的视图中,可将接口对象I1和I2认为是同一系统的分开的接口,也可认为对象I1和I2加上介质M构成了接口。尽管图14A和14B示出双向流和位于流两侧的接口,但某些实现可使信息仅在一个方向上流动(或如下所述没有信息流),或仅在一侧有接口对象。作为示例,而非限制,诸如应用程序编程接口(API)、入口点、方法、函数、子例程、远程过程调用、以及组件对象模型(COM)接口等术语均被包含在编程接口的定义内。
[0145] 这一编程接口的各方面可包括第一代码段将信息发送给第二代码段的方法(其中,“信息”按其最广义来使用,包括数据、命令、请求等);第二代码段接收信息的方法;以及信息的结构、序列、句法、组织、模式、定时和内容。在这一点上,底层传输介质本身对接口的操作而言是无关紧要的,无论该介质是有线还是无线的,或者是其组合,只要信息按照接口所定义的方式传输。在某些情况中,信息可以不在常规意义上的一个或两个方向上传递,因为信息传送或者是经由另一介质(例如,信息被置于与代码段之间的信息流分开的缓冲区、文件等中)或不存在,如当一个代码段仅访问第二代码段所执行的功能时。例如取决于代码段是否是松耦合或紧耦合配置的系统中的一部分,任何或所有这些方面在给定情况中可能是重要的,因此该列表应被认为是说明性而非限定性的。
[0146] 编程接口的概念为本领域的技术人员所知,并可从本发明的前述详细描述中清楚。然而,存在实现编程接口的其它方式,且除非明确排除,否则这些也旨在包括在本说明书所附的权利要求书中。这些其它方式可能看似比图14A和14B的简单视图更高级或更复杂,但是它们仍执行完成相同的总体结果的类似功能。现在将简要描述编程接口的一些说明性替换实现。
[0147] A.分解(factoring)
[0148] 从一个代码段到另一个代码段的通信可通过将通信分成多个离散通信来间接完成。这在图15A和15B中示意性描述。如图所示,某些接口可按照可分功能集来描述。因此,图14A和14B的接口功能可被分解来实现相同的结果,就如在数学上可提供24或2乘2乘3乘2一样。从而,如图15A中所示,接口“接口1”提供的功能可被细分以将接口的通信转换成多个接口“接口1A”、“接口1B”、“接口1C”等,而同时仍实现相同的结果。如图
15B中所示,接口I1提供的功能可被细分成多个接口I1a、I1b、I1c等,同时仍实现相同的结果。类似地,从第一代码段接收信息的第二代码段的接口I2可被分解成多个接口I2a、I2b、I2c等。当分解时,随第一代码段所包括的接口的数目不必与随第二代码段所包括的接口的数目匹配。在图15A和15B中任一情况中,接口“接口1”和I1的功能本质分别与图
14A和14B的保持相同。接口的分解也可遵循结合、交换和其它的数学性质,使得分解难以识别。例如,操作的顺序可能是不重要的,因此接口实现的功能可在到达该接口之前由另一代码或接口良好实现,或由系统的单独组件执行。而且,程序设计领域的普通技术人员可以理解,存在进行实现相同的结果的不同功能调用的各种方式。
[0149] B.重定义
[0150] 在某些情况中,有可能忽略、添加或重定义编程接口的特定方面(例如,参数)而仍实现预期的结果。这在图16A和16B中示出。例如,假定图14A的接口“接口1”包括函数调用Square(input,precision,output),即包括三个参数input(输入)、precision(精度)和output(输出),并从第一代码段向第二代码段发出的一个调用。如果中间参数precision在给定情形中无关紧要,则如图16A中所示,它可无妨被忽略甚至使用meaningless(无意义)(在该情况中)的参数来替换。也可添加无关紧要的附加参数。在任一情况中,square(求平方)的功能可被实现,只要在第二代码段对input求平方之后返回output。precision对计算系统的某些下游或其它部分而言可能很好地作为有意义的参数;然而,一旦认识到precision对计算平方的狭窄用途而言不必要时,它可被替换或忽略。例如,可传递诸如生日等无意义的值来代替传递有效的precision值而不会对结果造成不利影响。类似地,如图16B中所示,接口I1被接口I1′替换,它被重定义来忽略参数或向接口添加参数。接口I2可类似地被重定义为接口I2′,它被重定义来忽略不必要的参数或可在别处处理的参数。此处的重点在于在某些情况中,编程接口可包括诸如参数等对某种用途而言不需要的各方面,因此它们可被忽略或重定义或在别处为其它用途而处理。
[0151] C.内联代码编写(inline coding)
[0152] 将两个单独代码模块的某些或全部功能合并使得其间的“接口”改变形式也是可行的。例如,图14A和14B的功能可分别被转换成图17A和17B的功能。在图17A中,图14A的之前的第一和第二代码段被合并成包含两者的模块。在这种情况中,代码段仍可彼此通信,但接口可适应更适于单个模块的形式。因此,例如正式的Call和Return语句可能不再必需,但根据接口“接口1”的类似处理或响应仍有效。类似地,如图17B中所示,来自图
14B的接口I2的一部分(或全部)可被内联地写入接口I1以形成接口I1″。如图所示,接口I2被划分成I2a和I2b,接口部分I2a与接口I1内联地编写代码来形成接口I1″。对一个具体的示例,考虑来自图14B的接口I1执行函数调用square(input,output),该函数调用由接口I2接收,在由第二代码段处理随input传递的值(对其求平方)之后,将求平方后的结果随output传回。在这样的情况中,第二代码段执行的处理(对input求平方)可由第一代码段在不调用接口的情况下执行。
[0153] D.脱离(divorce)
[0154] 从一个代码段到另一个代码段的通信可通过将通信分成多个离散通信来间接完成。这在图18A和18B中示意性地示出。如图18A中所示,提供一个或多个中间件(脱离接口,因为它们将功能和/或接口函数从原始接口脱离)来转换对第一接口“接口1”的通信以使其遵循不同的接口,在该情况中为接口“接口2A”、“接口2B”和“接口2C”。这可例如在存在被设计成与例如根据接口1协议的操作系统通信的应用程序库,而该操作系统然后被改为使用不同的接口,在该情况中为接口2A、接口2B和接口2C时进行。重点在于第二代码段使用的原始接口被改变了,使得它不再与第一代码段使用的接口兼容,因此使用中介来使新老接口兼容。类似地,如图18B中所示,随脱离接口DI1可引入第三代码段来接收来自接口I1的通信,并使用脱离接口DI2将接口功能发送给例如被重新设计成与DI2一起工作但提供相同的功能结果的接口I2a和I2b。类似地,DI1和DI2可一起工作将图14B的接口I1和I2的功能转换到新操作系统,而同时提供相同或类似的功能结果。
[0155] E.重写
[0156] 又一可能的变型是动态重写代码以使用别的但实现相同的总体结果的东西来替换接口功能。例如,可能存在其中将以中间语言(例如,MicrosoftIL、Java ByteCode等)呈现的代码段提供给执行环境(诸如由.Net框架提供的、Java运行时环境、或其它类似的运行时类型环境)中的运行时编译(Just-in-Time,JIT)编译器或解释器的系统。可编写JIT编译器以便于将来自第一代码段的通信动态转换到第二代码段,即使其遵循如由第二代码段(原始或不同的第二代码段)所需的不同接口。这在图19A和19B中示出。如图19A中可见,该方式类似于上述脱离情形。它例如可在已安装的应用程序库被设计成与根据接口1协议的操作系统通信,但该操作系统然后被改为使用不同的接口时进行。JIT编译器可被用来使来自已安装应用程序库的运行时通信遵循操作系统的新接口。如图19B中所示,动态重写接口的这种方式也可被应用于动态分解以及更改接口。
[0157] 还注意到,也可按照各种方式、串行和/或并行地或使用其它介入代码来组合上述经由替换实施例实现与接口相同或类似的结果的情形。因此,以上呈现的替换实施例不是互斥的,而是可被混合、匹配和组合来产生与图14A和14B中所呈现的一般情形相同或等效的情形。还注意到,与大多数编程构造一样,存在此处未描述的实现接口的相同或类似功能的其它类似方式,但它们仍由本发明的精神和范围表示,即,注意到它们至少部分是由作为接口的值的基础的接口所表示的功能及其允许的有利结果。
[0158] 有多种方式可以实现本发明,例如适当的API、工具箱、驱动程序代码、操作系统、控件、独立或可下载软件对象等,它允许应用程序和服务使用本发明的提供和启用工作手册参数的系统和方法。本发明期望从API(或其他软件对象)的观点以及从依照本发明接收下载程序的软件或硬件对象来构想本发明的使用。由此,此处所描述的本发明的各种实现可以具有完全使用硬件、部分使用硬件并部分使用软件以及使用软件的各方面。
[0159] 如上所述,虽然结合各种计算设备和网络体系结构描述了本发明的示例性实施例,但是底层概念可以应用到其中希望具有工作手册参数的任何计算设备或系统。例如,本发明的算法和硬件实现可以被应用到计算设备的操作系统,作为设备上单独对象、作为另一对象的部分、作为可重用控件、作为可从服务器下载的对象、作为设备或对象与网络之间的“中间人”、作为分布式对象、作为硬件、在存储器中、作为上述任一的组合等提供。虽然在此处选择示例性编程语言、名称和示例作为各种选择的代表,但是这些语言、名称和示例并不旨在限制。本领域的普通技术人员会理解有多种方式能提供完成本发明的各个实施例所完成的相同、相似或等效功能的对象代码和术语。
[0160] 如所述的,这里所描述的各种技术可以结合硬件、软件或及其适当的组合来实现。因此,本发明的方法和装置或某些方面或其部分可以采取体现为有形介质中的程序代码(即指令)形式,诸如软盘、CD-ROM、硬盘驱动器或任何其它的机器可读存储介质,其中当程序代码被载入并且被机器(诸如计算机)执行时,机器成为了实现本发明的装置。在可编程计算机上执行程序代码的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备和至少一个输出设备。例如通过使用数据处理API、可重用控件等实现或使用本发明的工作手册参数的一个或多个程序更优选地用高级过程或面向对象的编程语言实现以与计算机系统通信。然而,如果期望,程序可以以汇编或机器语言来实现。在任一情况下,语言可以是编译或解释语言并且与硬件实现相结合。
[0161] 本发明的方法和装置也可以经由在某些传输介质上发送的程序代码的形式体现的通信来实现,这些传输介质诸如在电线或电缆上,通过光纤或经由任何其它形式的传输,其中当接收到程序代码,将其载入到机器并由机器执行程序代码时,所述机器诸如EPROM、门阵列、可编程逻辑器件(PLD)、客户端计算机等等,机器便成为实现本发明的装置。当在通用处理器上实现时,程序代码与处理器相结合以提供用于调用本发明的功能的唯一装置。此外,结合本发明使用的任何存储技术总是是硬件和软件的组合。
[0162] 虽然结合各种附图的优选实施例描述了本发明,但是应该理解可以使用其它类似的实施例,或者可以对所描述的实施例作出修改和添加以执行本发明相同的功能而不背离本发明。例如,虽然本发明的示例性网络环境在诸如对等联网环境的联网环境中描述,但是本发明的技术人员会认识到本发明不限于此,如本应用中所描述的方法可以应用到任何计算设备或环境中,诸如游戏控制台、手持式计算机、便携式计算机等等,无论有线还是无线,并且可以应用到经由通信网络连接或通过网络交互的任何数量的这种计算设备。此外,应该强调的是构想了各种计算机平台,包括手持式设备操作系统和其他应用程序专用操作系统,尤其是当无线联网设备的数目不断增长时。
[0163] 虽然示例性实施例指的是将在特定编程语言构造环境中使用本发明,但是本发明并不限于此,而是可以用依照本发明提供和启用工作手册参数的任何语言来实现。更进一步,可以在多个处理芯片或设备中或之上实现本发明,并且可以跨多个设备类似地实现存储。因此,本发明不应被限于任何单一的实施例,而应该按照符合所附权利要求的广度和范围来构造。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈