在电子表格应用中对数学方程式进行参数化和处理的制作方法

文档序号:14958979发布日期:2018-07-18 00:08阅读:225来源:国知局

作为pct国际专利申请,本申请于2017年2月1日提交,并且要求享有于2016年12月30日提交的题为“parameterizingandworkingwithmathequationsinaspreadsheetapplication”的编号为15/395,667的美国专利申请的优先权,该申请要求享有于2016年2月1日提交的题为“parameterizingandworkingwithmathequationsinaspreadsheetapplication”的编号为62/289,771的美国临时专利申请的优先权。

本申请还涉及于2015年11月2日提交的题为“richdatatypes”的序列号为62/249,869的美国临时申请;于2016年6月30日提交的题为“richdatatypes”的序列号为62/357,284的美国临时申请;以及于2016年11月1日提交的题为“richdatatypes”的序列号为15/340,187的美国非临时申请;上述申请的公开内容以引用方式被全部并入本文。



背景技术:

电子表格应用促进数据录入,然而,也要求用户采用独特的电子表格函数表示法以便对该数据执行数学或逻辑运算。虽然电子表格应用是用于收集和组织数据的高度实用的工具,但是由于这样的应用不能充分对方程式进行求值以及与数据求值相关联的独特挑战,他们经常未被充分用作对这样的数据执行复杂甚至标准的数学运算的数学应用。具体而言,电子表格应用通常限于对可以计算为单个结果的数学方程式执行简单求值。电子表格应用通常不用来对复杂方程式进行求值、对电子表格数据执行复杂分析或识别数据之中的关系。此外,今天的电子表格应用不能接收和转化采用标准数学表示法的方程式,而是要求方程式以往往是复杂的电子表格表示法的形式输入。关于这些和其他总体考虑,已做出本公开内容的各方面。另外,虽然讨论了相对具体的问题,但应当理解的是,各方面不应当限于仅解决背景技术中标识的具体问题。



技术实现要素:

在第一方面中,本公开内容针对一种用于将存储在电子表格的单元格中的数学方程式的一个或多个变量与存储在电子表格的其他单元格中的数据相连接的计算机实现的方法,所述方法包括:接收数学方程式,其中,数学方程式包括变量;针对变量,接收对第二单元格的引用作为输入参数;以及利用存储在第二单元格中的数据替换变量。

在第二方面中,本公开内容针对一种系统,其包括:至少一个处理单元;以及存储计算机可执行指令的至少一个存储器,所述计算机可执行指令当由至少一个处理单元执行时使系统执行用于显示电子表格的单元格之中的依赖性的方法,所述方法包括:在电子表格的第一单元格处接收数学方程式,其中,数学方程式包括变量;针对变量,接收对第二单元格的引用作为输入参数,其中,第二单元格存储数据;以及显示从第一单元格到第二单元格的依赖性。

在第三方面中,本公开内容针对一种系统,其包括:至少一个处理单元;以及存储计算机可执行指令的至少一个存储器,所述计算机可执行指令当由所述至少一个处理单元执行时使系统执行用于将以数学表示法书写的方程式转化为电子表格表示法的方法,所述方法包括:在电子表格的单元格处接受方程式,所述方程式包括两个或更多个元素;识别方程式的每个元素;确定方程式的至少一个元素是否是以数学表示法书写的;基于确定方程式的至少一个元素是以数学表示法书写的,将至少一个元素中的每一者转化成电子表格表示法;以及利用所转化的电子表格表示法替换以数学表示法书写的至少一个元素中的每一者。

在第四方面中,本公开内容针对一种用于在电子表格应用的数学显示模式中接收方程式的计算机实现的方法,所述方法包括:在方程式用户界面处接收数学方程式;解析数学方程式;以及在电子表格的单元格中显示数学方程式。

提供本概括是为了以简要形式介绍对将在以下详细描述中进一步描述的构思的选择。本概括不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用来限制所要求保护的主题的范围。

附图说明

图1示出了根据示例性实施例的用于执行包括计算引擎和数学引擎的电子表格应用的系统。

图2示出了能够将方程式转换成各种格式的电子表格应用的示例性用户界面。

图3示出了能够将以电子表格表示法书写的方程式转换为数学表示法的示例性电子表格应用。

图4示出了能够将以混合电子表格和数学表示法书写的方程式转换为数学表示法的示例性电子表格应用。

图5示出了如由计算引擎执行的用于将以电子表格表示法书写的方程式转换为数学表示法的方法的流程图。

图6示出了如由数学引擎执行的用于将以电子表格表示法书写的方程式转换为数学表示法的方法的流程图。

图7示出了提供将数学方程式的变量与存储在电子表格中的数据相关联的能力的电子表格应用。

图8示出了能够将存储在一个或多个单元格中的数据指定为数学方程式的变量的输入的电子表格应用。

图9示出了包括图8中示出的示例性方程式的经替换的结果的方程式。

图10示出了用于用单元格替换方程式的变量的方法的流程图。

图11a示出了在电子表格的单元格中提供的数学方程式。

图11b示出了能够对图11a中示出的数学方程式进行求值的示例性电子表格应用。

图11c示出了对图11a和图11b中示出的方程式进行求值的结果。

图11d示出了用于求解数学方程式的方法。

图12a示出了所公开的电子表格应用的求值用户体验。

图12b示出了图12a中示出的求值用户界面的求值步骤。

图13a示出的是存储在电子表格中的方程式的单个变量的依赖性的示例性显示。

图13b示出了与图13a相关的依赖性的另一示例性显示。

图13c示出了其中依赖性在公式栏中被显示的示例。

图14a和图14b提供了存储在多个单元格中的多个变量之中的依赖关系的显示。

图14c示出了用于显示依赖性的方法1418。

图15示出了能够针对如何显示数据提供推荐的示例性电子表格应用。

图16a示出了用于录入方程式的示例性方程式用户界面。

图16b示出了存储图16a的方程式用户界面中提供的方程式的示例性电子表格。

图17是示出可以利用其实践本公开内容的方面的计算设备的示例性物理组件的框图。

图18a和图18b是可以利用其实践本公开内容的方面的移动计算设备的简化框图。

图19是其中可以实践本公开内容的方面的分布式计算系统的简化框图。

图20示出了用于执行本公开内容的一个或多个方面的平板计算设备。

具体实施方式

将参考附图详细描述各种实施例,其中,贯穿若干视图同样的附图标记表示同样的部分和组装件。对各种实施例的参考不限制附于此的权利要求的范围。另外,本说明书中阐述的任何示例并非旨在是限制性的,并且仅针对所附权利要求阐述许多可能的实施例中的一些实施例。

通常,本公开内容针对具有增强型数学求值和计算能力的电子表格应用。这些高级能力包括但不限于对简单和复杂的方程式二者进行求值、对表达式进行简化、对用于对表达式进行简化和求值的步骤进行展示。各方面还描述了可以容易地转换以墨水和打印方式呈现的方程式或值的电子表格应用。各方面还公开了可以在以标准数学表示法和电子表格表示法书写的方程式之间进行转换,并且还可以对包括电子表格表示法和数学表示法二者的混合方程式进行辨识和执行计算的电子表格应用。各方面还描述了可以将方程式中的变量与存储在其他单元格中的数据相关联从而允许从存储在电子表格应用的其他单元格中的数据驱动方程式的能力的电子表格应用。各方面还描述了可以示出在变量与电子表格内的其他变量或值相关时的变量的依赖性,从而使用户更容易理解并在视觉上看到复杂方程式可以如何由其他数据驱动的电子表格应用。各方面还描述了可以分析存储在电子表格中的数据并提供关于如何显示数据的推荐的智能电子表格应用。各方面还公开了可以提供其中可以快速且容易地将方程式输入到电子表格中并进行分析的显示模式的电子表格应用。这些和其他方面在本文中被进一步详细描述。

图1示出了根据示例性实施例的用于执行包括计算引擎103和数学引擎105的电子表格应用的系统100。

如图所示,系统100可以包括可以执行包括数学引擎103和计算引擎105的电子表格应用104的客户端版本的一个或多个客户端计算设备102(例如,客户端计算设备102a和102b)。在一些示例中,客户端电子表格应用104可以在客户端计算设备102上本地地执行。在其他示例中,客户端电子表格应用104(例如,瘦客户端计算设备102上的移动app)可以与在一个或多个服务器计算设备上执行的电子表格应用的对应服务器版本一起操作。在这样的实施例中,客户端计算设备102可以在网络(例如,网络106)上与电子表格应用的对应服务器版本进行通信。在其他方面中,不是执行电子表格应用的客户端版本,而是一个或多个客户端计算设备102可以例如经由网络(例如,网络106)上的浏览器远程访问在一个服务器计算设备或多个服务器计算设备上(例如,在诸如云计算环境之类的分布式计算环境中)实现的电子表格应用。

典型的电子表格应用使用计算引擎103来解析和分析存储在电子表格的每个单元格中的数据。如本文所指代的,数据包括但不限于:方程式、值、字符串文本、日期/时间、货币、布尔值等。计算引擎103识别存储在每个单元格中的数据的类型并且对数据执行简单的计算。计算引擎103还可以对以电子表格表示法书写的表达式(例如,包括单元格引用或具有诸如“sum”、“if”、“max”等电子表格运算符的表达式)进行求值。例如,计算引擎103可以用于通过确定与所引用的单元格相对应的值并对表达式进行求值,来对以电子表格表示法书写的表达式(例如,“=sum(a1,b1)”)进行求值。因此,计算引擎简化了以电子表格表示法书写的表达式,以便将这样的表达式计算为最终结果。因此,计算引擎不仅求解数学方程式(例如,求解方程式“=sum(2+3)”),而是还用于通过基于对电子表格表示法的理解来识别存储在各个单元格中的值,从而计算结果。

本公开内容的新颖方面提供了电子表格应用104,其除了计算引擎103之外还包括能够求解和简化复杂数学方程式的数学引擎105。具体而言,数学引擎105除了其他特征之外还可以辨识以数学表示法(例如,使用诸如“√”“÷”“∫”“+”之类的运算符的常规数学表示法)书写的方程式的字符,组合元素以生成数学表达式,简化表达式,以及理解并应用操作顺序来求解方程式,从而得到数据值或另一数学表达式。数学引擎可以作为电子表格应用104的一部分被提供,或者其可以作为电子表格应用104的支持组件被提供。数学引擎向电子表格应用104提供对复杂数学方程式进行求值的能力。在电子表格应用中使用数学引擎还允许用户将方程式快速导出到电子表格应用外部的其他数学应用以及从电子表格应用外部的其他数学应用快速导入方程式。因此,电子表格应用不仅可以用于简单的数据录入,还可以用作能够提供高级数学计算分析并与其他数学应用兼容的更强大的工具。进一步的实施例将输出方程式描述为字符串以及采用其他数学兼容的格式(例如,mathml)。

因此,本公开内容的方面针对结合数学引擎105使用计算引擎103来对存储在电子表格的每个单元格中的数据进行求值的电子表格应用104。电子表格的单元格可以包含:包括电子表格引用(例如,对另一单元格、文本、数据值的引用)的数据、包括数学引用的数据(例如,方程式)或者包括电子表格引用和数学引用二者的数据(例如,包括对另一单元格的引用的方程式)。因此,所公开的使用计算引擎103和数学引擎105的电子表格应用104能够对复杂的数学方程式进行求值,并且还能够对还使用电子表格引用的复杂数学方程式进行求值。因此,所公开的电子表格应用104能够存储数据并且对该数据执行复杂的计算,使用户能够更容易地理解数据、分析数据并且对存储在电子表格中的数据执行复杂的数学计算。

在一些实施例中,计算引擎103和数学引擎105被实现为相同的组件,而在其他实施例中他们被实现为分开的组件。在一些实施例中,计算引擎103先对方程式执行过程,而数学引擎105然后执行过程。替代地或另外地,数学引擎105先执行过程,并且计算引擎103然后执行过程。替代地或另外地,数学引擎103和计算引擎105同时执行过程。

在基本配置中,一个或多个客户端计算设备102是具有由一个或多个用户操作的输入元件和输出元件二者的个人或手持式计算机。例如,一个或多个客户端计算设备102可以包括以下各项中的一项或多项:移动电话;智能电话;平板计算机;平板手机;智能手表;可穿戴计算机;个人计算机;桌上型计算机;膝上型计算机;游戏设备/计算机(例如,);电视;等等。该列表仅是示例性的,并且不应当被认为是限制性的。可以使用用于执行客户端电子表格应用和/或远程访问电子表格应用的任何合适的客户端计算设备。

在一些方面中,网络106是诸如企业内联网和/或互联网之类的计算机网络。就此而言,网络106可以包括局域网(lan)、广域网(wan)、互联网、无线和有线传输介质。在进一步的方面中,如本文描述的服务器计算设备可以经由本地网络(例如,企业内联网)与系统的一些组件进行通信,而这样的服务器计算设备可以经由广域网(例如,互联网)与系统的其他组件进行通信。另外,本文描述的方面和功能可以在分布式系统(例如,云计算系统)上操作,其中,应用功能、存储器、数据存储和检索以及各种处理功能可以在分布式计算网络(例如,互联网或内联网)上彼此远程地操作。

电子表格应用可以在服务器计算设备(例如,服务器计算设备104a和104b)上实现。在基本配置中,服务器计算设备104可以包括用于执行计算机可读指令的至少一个处理单元和系统存储器。在一些方面中,服务器计算设备104可以包括分布式环境(例如,云计算环境)中的一个或多个服务器计算设备104。服务器计算设备104可以经由网络106提供去往和来自一个或多个客户端计算设备104和/或一个或多个其他服务器计算设备的与电子表格的单元格相关联的数据。

如应当领会的,关于图1描述的各种设备、组件等不旨在将系统和方法限于所描述的特定组件。因此,可以使用另外的拓扑配置来实践本文的方法和系统,并且/或者可以排除所描述的一些组件而不脱离本文公开的方法和系统。

构思1:将方程式转换为任何格式

图2示出了能够将方程式转换成各种格式的电子表格应用的示例性用户界面202。示例性用户界面202包括功能区用户界面204,所述功能区用户界面204包括一组工具栏,所述工具栏中的每一者实现特定功能,例如字体、对齐、样式、页面格式化、插入图表和表格、查看/编辑等。用户界面202还包括公式栏206,所述公式栏206是其中可输入方程式、文本或其他数据以录入到电子表格中的可编辑区域。用户界面202还包括单元格网格208,所述单元格网格208包括存储数据的多个个别单元格。

所公开的电子表格应用(例如,电子表格应用104)可以接收采用各种不同格式的方程式,并且能够将该格式转换成文本格式。例如,电子表格应用104可以接收采用电子墨水、照片或口头发声的形式的方程式或其他输入,并且能够将该输入转换成文本格式。在图2示出的示例中,数学公式210以电子墨水的形式被提供并被显示在公式栏206中。数学公式210可以由电子表格应用从启用墨水的设备(例如,移动电话、平板计算设备或启用墨水的膝上型计算机)接收。使用这样的设备,用户可以简单地通过手或使用触笔将数学方程式210直接写入到公式栏210、到单元格、到文本录入显示模式,或经由可以将用墨水书写的数学公式210转移到电子表格应用104的应用来写入。诸如数学引擎105之类的数学引擎能够使用例如墨水到文本转换技术来将接收到的用墨水书写的方程式转换为文本格式。电子表格应用能够使用例如光学字符识别(ocr)技术将作为图像接收的方程式转换为文本格式。电子表格应用能够使用例如自然语言理解技术将接收到的口头方程式转换成文本格式。因此,各方面提供了能够将接收到的方程式转换成文本格式的电子表格应用,从而为用户提供容易将复杂的方程式录入到电子表格中的能力。

构思2:在数学表示法和电子表格表示法之间转换

图3示出了能够将以电子表格表示法书写的方程式转换为数学表示法的示例性电子表格应用104。电子表格应用通常使用被称为电子表格表示法的独特表示法来表示数学方程式并引用单元格。电子表格表示法通常复杂,而且经常难以理解和学习,这是因为其不与通常理解的数学表示法那样相似,也不像通常理解的数学表示法那样排序。此外,电子表格表示法不使用符号运算符,例如整数符号、用于级数或求和的符号、平方根符号等。在示例中,电子表格表示法可以表示诸如作为“=sum(sqrt(88),52,7)”的对88的平方根、52和7求和之类的方程式。相比之下,数学表示法是用于使用用于连接方程式的元素的符号运算符来起草方程式的标准书写表示法。在类似的示例中,采用数学表示法的对88的平方根、52和7求和将被写为“√88+52+7”。

返回参考图3,示出的是具有在公式栏206中提供的方程式302的电子表格应用104。方程式302是以电子表格表示法书写的并且被表示为“=sum(sqrt(88),52,f3)”,其包括四个元素:88的平方根、数字52和对单元格f3的引用(其中,单元格f3存储了方程式“x3+15”)。此外,sum函数指示方程式302的每个元素被相加在一起。注意到,基于单元格引用304,方程式(或对应的结果)要被存储在单元格f5中。本公开内容的方面提供了电子表格应用104,其能够将以电子表格表示法书写的方程式302转换为以数学表示法书写的方程式302。因此,以数学表示法提供了存储在单元格f5308中的对应方程式306(即,“√88+52+(x3+15)”)。以数学表示法书写的方程式306与以电子表格表示法书写的方程式302相对应,并且因此也表示对三个元素的求和:88的平方根、数字52和单元格引用f3。虽然在该示例中,单元格引用f3被存储在该特定单元格中的数学方程式“x3+15”代替,但是在其他示例中,方程式306可以保留单元格引用f3。

在该示例中,电子表格应用104的计算引擎103解析以电子表格表示法书写的方程式302以识别被包含在其中的每个元素。计算引擎103还识别对那些元素执行的以电子表格表示法书写的任何逻辑运算。因此,在该示例中,计算引擎103将“sum”函数识别为三个元素的相加。计算引擎103还获得存储在单元格f3中的数据。基于对方程式302执行的解析和从单元格f3获得的数据,计算引擎103提供方程式302的详细结构(包括存储在单元格f3中的数据)给数学引擎105,所述数学引擎105以数学表示法构造方程式306。具体而言,数学引擎105获得关于方程式302的详细信息(例如,对方程式执行的逻辑运算符、从单元格引用获得的任何数据)并且以数学表示法构造等价的方程式306。因此,存储在单元格f5308中的所得的方程式306以包括单元格引用f3的替换自变量的等价数学表示法显示。

因此,本公开内容的方面提供了能够将初始以电子表格表示法书写的方程式转换并显示为数学表示法等价物的电子表格应用104。各方面还提供了能够用方程式自变量内的单元格引用替换其中存储的实际数据的电子表格应用。

应当理解的是,方程式302可以在公式栏206中提供或直接被提供到电子表格的单元格中。基于用户对录入键的操作或导致方程式最终录入到公式栏206或单元格中的类似操作,电子表格应用104可以自动提供以数学表示法书写的所得的方程式306。在其他实施例中,电子表格应用104可以显示为用户提供的以数学表示法显示方程式306的选项的提示。仍然,在其他实施例中,电子表格应用104可以显示询问用户是否想要电子表格应用104将方程式求值为最终结果或对该方程式302执行其他操作的提示,所述其他操作例如生成图表或图形。本文更详细地描述了这样的功能。

图4示出了能够将以混合电子表格和数学表示法书写的方程式转换为数学表示法的示例性电子表格应用104。学习电子表格表示法可能复杂且具有挑战性,特别是对于复杂的方程式。因此,本公开内容的新颖方面包括能够对以电子表格表示法、数学表示法或其组合书写的表达式进行求值的电子表格应用104。在一个示例中,电子表格应用104可以对具有以数学表示法书写的一个或多个部分和以电子表格表示法书写的一个或多个部分的方程式进行求值。例如,如图4示出的,在公式栏206中提供了被表示为“=sum(b2,c2,((x3+15)2÷4.2)”的方程式402。方程式402包括三个元素:单元格引用b2、单元格引用c2和自变量“(x3+15)2÷4.2”。单元格引用b2和c2以电子表格表示法书写,并且自变量“(x3+15)2÷4.2”以数学表示法书写。此外,单元格引用和自变量嵌套在“sum”电子表格表示法运算符之内。因此,方程式402以电子表格表示法和数学表示法二者书写。

在该示例中,电子表格应用104的计算引擎103解析以电子表格表示法和数学表示法二者书写的方程式402,以识别被包含在其中的每个元素。计算引擎103还识别对那些元素执行的以电子表格表示法书写的逻辑操作。因此,在该示例中,计算引擎103将“sum”函数识别为三个元素的相加。计算引擎103还获得存储在单元格b2和c2中的数据(即,分别为$4.2和$.08)。基于对方程式302执行的解析以及从单元格b2和c2获得的数据,计算引擎103将包括存储在单元格b2和c2中的数据的方程式402的详细结构提供给数学引擎105。作为响应,数学引擎105基于由计算引擎103提供给他的数据将方程式402转换成数学表示法,以及输出被存储在单元格d2406中的方程式404。基于其从计算引擎103接收到的信息,数学引擎105在每个识别的元素之间插入加法运算符,以输出以数学表示法书写的方程式404(即,“4.2+.08+((x3+15)2÷4.2)”)。虽然该示例示出了方程式的三个元素的相加,但是本公开内容的方面针对将其他运算符插入更复杂的方程式中。因此,所公开的电子表格应用104能够结合数学引擎105使用计算引擎103将以电子表格表示法书写的方程式转换为数学表示法。

在一些实施例中,数学引擎105可以简化单元格呈现中(例如,单元格d2406中)的方程式402。例如,数学引擎105可以将存储在单元格b2中的值“4.2”和存储在单元格c2中的值“0.08”相加,以得到在单元格d2406的单元格呈现中的值“5.0”。替代地或另外地,电子表格应用104可以在视觉上不同于其他未引用的单元格地显示引用的单元格(例如,单元格b2和c2),使得用户可以看到其中存储了值的单元格。例如,引用的单元格可以被高亮,或者单元格边框颜色可以不同,等等。

应当理解的是,方程式402可以在公式栏206中被提供,或者被直接提供到电子表格的单元格d2406中。基于用户对录入键的操作或导致方程式402最终录入到公式栏206或单元格中的类似操作,电子表格应用104可以在单元格d2406中自动提供经求值的最终结果404。而在其他实施例中,电子表格应用104可以显示为用户提供的在单元格d2406中显示最终结果404或者在单元格d2406中显示以数学表示法书写的方程式402而不对方程式402进行求值的选项的提示。在实施例中,如果用于显示最终结果404的选项被选择,则原始方程式仍然可以被保留和引用。例如,响应于悬停在显示最终结果404的单元格上,可以提供显示原始方程式的单独的用户界面。这样的用户界面还可以允许方程式是可选择的和可编辑的。而在其他实施例中,还可以提供其他用户界面。

虽然该示例示出了以数学表示法书写的参数嵌套在以电子表格表示法书写的函数内,但是这样的嵌套不是必需的。例如,诸如“=(sum(b2,c2))+32)”之类的方程式也可以由电子表格应用104求值。在这样的示例中,方程式的自变量以电子表格表示法和数学表示法二者书写,并且不是嵌套的。因此,本公开内容的方面提供了能够对具有混合电子表格表示法和数学表示法的方程式进行求值的电子表格应用104。

图5示出了用于如由计算引擎103执行的将由电子表格表示法书写的方程式转换为数学表示法的方法500的流程图。在操作502中,计算引擎103识别和解析方程式的元素。具体而言,计算引擎103识别方程式的每个元素并且确定哪个元素(如果有的话)是以电子表格表示法书写的。例如,计算引擎可以识别方程式“=product(a4,2)”中的每个个别元素。在这样的示例中,计算引擎103将识别出两个元素:单元格引用a4和值2。计算引擎103还将在操作502中识别“乘积”函数。

在操作504中,计算引擎103确定方程式是否包括数学表示法。基于在操作502中执行的分析,计算引擎可以确定方程式是以电子表格表示法、数学表示法还是电子表格表示法和数学表示法的组合书写的。如果基于在操作502中对方程式元素的分析,计算引擎103确定方程式仅以数学表示法书写(例如,在操作504处为否),则方法500结束。替代地,如果基于在操作502中对方程式元素的分析,计算引擎103确定方程式是以电子表格表示法或者电子表格表示法和数学表示法的组合书写的(例如,在操作504处为是),方法500前进到操作506。

在操作506中,计算引擎103执行对所识别的以电子表格表示法书写的一个或多个元素的转化。例如,计算引擎103可以转化以电子表格表示法书写的方程式“=product(a4,2)”的部分。具体而言,计算引擎103可以获得存储在单元格a4中的数据,其可以是例如数字或另一方程式。如果存储在单元格a4中的数据是数字,则计算引擎103获得该数字。替代地,如果存储在单元格a4中的数据是包括例如另一单元格引用(例如,“b4”或“sum(b4,5)”)的另一方程式,则计算引擎103进一步检索存储在该被引用的单元格中的数据。因此,计算引擎103迭代地检索数据直到所有这样的数据被检索。

在操作508中,计算引擎103将所转化的值和函数信息提供给数学引擎105。具体而言,计算引擎103向数学引擎105提供每个检索到的值,同时还提供那些检索到的值的操作信息的顺序以及对检索到的数据执行的函数操作。参考图6更详细地描述了由数学引擎105执行的转换。

图6示出了用于如由数学引擎105执行的将以电子表格表示法书写的方程式转换为数学表示法的方法600的流程图。在操作602中,数学引擎105从计算引擎103接收:要被转换/转化的方程式的元素、存储在由方程式引用的单元格中的数据以及一个或多个函数运算符。

在操作604中,数学引擎105利用数学表示法替换电子表格表示法。具体而言,通过替换如基于操作顺序由计算引擎103提供的值和由计算引擎103提供的一个或多个函数运算符,数学引擎105以数学表示法构造等价方程式。因此,所公开的电子表格应用能够将以电子表格表示法书写的方程式转换为以数学表示法书写的方程式。

构思3:将数学方程式的变量连接到存储在作为参数的其他单元格中的值

图7示出了提供将数学方程式的变量与存储在电子表格中的数据相关联的能力的电子表格应用。具体而言,用户可以针对数学方程式的每个变量选择一个或多个单元格作为参数。因此,数学方程式可以由存储在其他单元格中的数据驱动。本公开内容还针对提供允许用户针对方程式的变量将一个或多个单元格指定为参数的用户界面。例如,可以提供允许用户针对方程式的每个变量将一个或多个单元格指定为参数的用户界面。电子表格应用104可以在方程式本身中替换那些指定的值。

返回参考图7,方程式702在公式栏206中被表示为“(x/y)+(2*z)”。如单元格标识符704所指示的,该方程式702被存储在单元格f2中。在该示例中,变量“x”与存储在单元格d2中的数据(即,“$7.85”)相关联,并且变量“y”与存储在单元格b8中的数据(即,“$25.3”)相关联。在该示例中,单元格d2和b8被显示为具有虚线边框,以指示他们是被引用的单元格。在其他实施例中,可以使用其他指示符来示出特定单元格由选择的方程式引用。将变量与电子表格中的一个或多个单元格相关联可以例如通过选择公式栏中的特定变量以及选择与所选择的变量相关联的对应的一个或多个单元格或单元格范围来完成。在其他实施例中,可以呈现单独的用户界面,以允许用户选择一个或多个单元格用作特定变量的参数。返回参考图7,基于用户将变量关联到单元格,存储在单元格f2中的方程式702被呈现为包括每个变量的当前值的方程式。因此,在该示例中,存储在单元格f2中的方程式被表示为“(7.85/25.3)+(2*z)”。虽然该示例示出了单个单元格被用作每个变量的参数,但是应当理解的是,一个以上的单元格可以被用作输入参数。在这样的示例中,如果一个以上的单元格被用作变量的参数,则输出可以包括例如针对每个参数的方程式的呈现。因此应当理解的是,电子表格应用104可以基于用户对与那些变量相对应的一个或多个单元格的选择来返回表示变量的经替换的结果的方程式的一个或多个呈现。

此外,在一些实施例中,电子表格应用104可以自动地或者响应于用户输入而简化表达式。所以在图7中提供的示例中,电子表格应用104可以将方程式简化为“0.31+(2*z)”。在其他实施例中,数学引擎可以在替换方程式内的变量之前首先简化表达式,由此返回经简化的经替换的结果。例如,在用单元格值替换变量之前,可以首先将被表示为“(x2÷x)+2z”的方程式简化为表达式“x+2z”。电子表格应用104还可以显示每个简化步骤,并且其可以使用方程式的变量或使用经替换的变量来这样做。

图8和图9进一步示出了能够将存储在一个或多个单元格中的数据指定为数学方程式的变量的输入的表格应用。在一些示例中,存储在一个或多个单元格中的数据可以包括包含一个或多个另外的变量的又一方程式。因此,所公开的电子表格应用104提供利用存储在一个或多个其他单元格中的数据来驱动数学方程式的能力。图8示出了存储在单元格f2804中的第一方程式802和存储在单元格f3808中的第二方程式806。如图所示,第一方程式802包括变量“x”和“y”,而第二方程式806包括变量“a”和“b”。在该示例中,存储在单元格f3808中的第二方程式806可以被指定为第一方程式802的变量“x”的输入。如本文描述的,用户可以通过选择方程式中的变量以及选择与所选择的变量相关联的对应的一个或多个单元格或单元格的范围来将单元格指定为变量的输入。在其他实施例中,可以向用户呈现单独的用户界面以选择与特定变量相关联的一个或多个单元格。

图9示出了包括在图8中示出的示例性方程式的经替换的结果的方程式。具体而言,图9示出新的方程式902,其包括替换图8的第一方程式802的变量“x”的第二方程式806。因此,方程式902由存储在单元格f3810中的数据驱动。在一些实施例中,存储在被指定为变量的输入的单元格中的数据本身可以包括对另一单元格的引用,并且该单元格可以包含对另一单元格的引用。因此,所公开的电子表格应用104迭代地获得存储在每个被引用的单元格中的数据,以便获得最终的经替换的结果。具体而言,计算引擎103执行迭代过程以获得存储在每个被引用的单元格中的数据,以便获得完整的经替换的结果。在一个示例中,可以将单元格a1指定为示例性方程式“x+2z”的变量“x”的输入。单元格a1可以包含方程式“b4+3y”,并且单元格b4可以包含值7。在这样的示例中,计算引擎103可以首先获得单元格a1的值(例如,“b4+3y”),并用其替换变量“x”以获得“b4+3y+2z”的第一经替换的方程式。接着,计算引擎103可以获得单元格b4的值(例如,“7”),并用其替换单元格引用b4以获得最终的经替换的方程式“7+3y+2z”。

在实施例中,如果存储在单元格中的被指定为变量的输入的数据被编辑,则方程式也将相应地更新。在实施例中,该更新将自动发生,并且在其他实施例中,该更新将响应于用于更新方程式的用户选择而发生。

应当进一步理解的是,电子表格应用104的数学引擎可以在利用另一方程式替换方程式的一个或多个变量之前首先简化表达式,从而返回经简化的经替换的结果。电子表格应用104还可以显示每个简化步骤。因此,本公开内容的方面提供了电子表格应用,其可以从存储在其他单元格中的数据驱动数学,不管该数据是一个或多个数字还是包含一个或多个变量的方程式。

图10示出了用于用单元格替换方程式的变量的方法1040的流程图。在一些实施例中,该方法1040由计算引擎103执行。方法1040从开始操作处开始,然后前进到操作1042,其中,电子表格应用接收单元格或单元格的一部分作为变量的输入参数。具体而言,用户将一个或多个单元格或单元格的部分(例如,方程式或方程式的一部分的变量)指定为变量的输入参数。在示例性实施例中,用户可以选择方程式中的变量,以及选择对应的单元格、单元格的一部分、多个单元格或单元格的范围以与所选择的变量相关联。在其他实施例中,可以向用户呈现单独的用户界面,以选择与特定变量相关联的单元格或单元格范围。在示例中,用户可以将单元格a1并因此将被包括在其中的对应数据指定为方程式“x+2z”的变量“x”的输入。

在操作1044中,计算引擎用在操作1042中识别的输入参数替换方程式的所指定的变量。继续以上描述的示例,计算引擎103可以获得存储在单元格a1中的数据,并用其替换方程式“x+2z”的变量“x”。在该示例中,单元格a1包含方程式“b1+2y”。因此,计算引擎用“b1+2y”替换方程式“x+2z”的变量“x”。因此,计算引擎生成经替换的方程式:“b1+2y+2z”。

在操作046中,计算引擎对在执行替换操作1044中生成的经替换的方程式进行求值,以及确定该方程式是否包括对另一单元格的引用。如果经替换的引用不包括对另一单元格的引用,则方法1040结束。然而,如果计算引擎103确定经替换的方程式包括单元格引用,则方法1040前进到操作1044。因此,继续以上示例,计算引擎103确定经替换的方程式包括单元格引用b1,以及因此返回到执行替换操作1044,以获得存储在单元格b1中的数据,并用其替换经替换的方程式“b1+2y+2z”的单元格引用“b1”。该迭代过程继续,直到每个单元格引用被获得和替换并且最终的经替换的方程式被生成为止。

构思4:求值

进一步的方面提供了具有对方程式进行求值和简化的能力的电子表格应用104。具体而言,数学引擎105可以识别方程式何时可以被简化,简化方程式,提供用于显示经简化的方程式的选项,或者提供用于显示逐步分析以获得该经简化的方程式的选项。进一步的方面提供了对简化的对应的详细的解释。本公开内容的方面还提供了可以接收方程式作为输入并输出经简化的结果的新电子表格函数。

相应地,数学引擎105还可以识别方程式何时可以被求值为最终结果,对方程式进行求值,提供用于显示结果的选项,或者提供用于显示逐步分析以获得该结果的选项。进一步的方面提供了对求值的对应的详细的解释。在一些实施例中,数学引擎105可以对方程式进行简化和求值两种操作。

现在参考图11a,示出的是在单元格f51104中提供的数学方程式1102。数学引擎105可以对具有变量的方程式和没有变量的方程式进行求值。对于不具有变量的方程式,数学引擎105可以将方程式求值为最终结果。对于具有变量的方程式,数学引擎105可以接收数值、数值的数组或者一个或多个方程式作为每个变量的参数。此外,那些输入中的一者或多者可以被存储在单元格中,而其他输入可能不被存储在单元格中。替代地或另外地,电子表格应用104可以接收对一个或多个单元格的选择作为每个变量的参数。在这样的示例中,所选择的一个或多个单元格可以包括数值、值的数组、另一方程式或者对另一单元格的引用。对于包括数值或值的数组的选择的单元格,求解方程式可以涉及计算引擎103获得存储在所选择的一个或多个单元格中的数据并将信息传递给数学引擎105。数学引擎105可以用所接收的数值或值的数组替换变量,求解方程式,以及将解输出到单元格或诸如浮动对象之类的另一显示。在一些实施例中,所得的值可以被显示为图形。对于单个数值,数学引擎105将输出单个结果,而对于值的数组,数学引擎105可以输出与数组的大小相等的值的数组。对于包括方程式的选择的单元格,求解原始方程式可以涉及数学引擎105利用存储在所选择的单元格中的方程式替换原始方程式中的变量。如果该方程式包括对另一单元格的引用,则计算引擎103可以获得存储在被引用的单元格中的数据,并将该信息传递给数学引擎105。如果该方程式具有一个或多个另外的变量,则电子表格应用104可以接收对一个或多个单元格的选择作为每个变量的参数,如本文描述的。因此,所公开的电子表格应用104可以组合使用计算引擎103和数学引擎105来对方程式进行求值和简化。

返回参考图11a,示出了以电子表格表示法(即,使用电子表格特定的术语的表示法)书写的方程式1102,然而应当理解的是,方程式1102可以以数学表示法(即,使用数学表达式的表示法)提供。在该示例中,方程式102包括两个变量:“t”和“h”。电子表格1106还包括存储在多个单元格(例如,单元格c5-c9)中的值的列表1108。用户可以从值的列表1108中指定一个或多个值作为方程式1102的一个或多个变量的参数。例如,用户可以从值的列表1108中指定“高度(h)”下的一个或多个值作为与方程式1102中的“h”变量相对应。这样将值指定为变量的输入参数可以通过允许用户选择一个或多个单元格或者单元格的范围作为方程式的变量的输入参数的用户体验来执行。另外地或替代地,方程式中的值和变量可以被标记化并且因此被电子表格应用理解为是特定类型的数据。在一些实施例中,对一个或多个值的标记化可以涉及将富数据类型应用于该值。通常,是富数据类型的值被定义为具有上下文且与其他数据类型的建立的关系的数据类型。因此,富数据类型是具有相关联上下文的值,其可以是单位(例如,英寸、英里、米、千克、秒、焦耳,赫兹、华氏度等)或关于数据类型的其他信息(例如,城市、股票、ncaa橄榄球队、汽车、餐馆、学校等)。富数据类型是在序列号为62/249,869的美国临时专利和序列号为62/357,284的美国临时专利中进一步描述的值的类型,上述专利的公开内容以引用方式被全部并入本文。因此,是富数据类型的值向电子表格应用提供上下文和关于那些值的关系的理解,使得电子表格应用可以使用这样的值来提供智能建议。例如,单元格c5-c9中录入的数据值1108可以被标记化为类型“距离”,而其他数据(未示出)可以被标记化为类型“时间”。此外,方程式1102中的值“h”和“t”也可以分别是“距离”和“时间”类型的。对值的这样的标记化使得电子表格应用104能够辨识存储在电子表格1106中的值的类型,以便向用户提供建议。具体而言,通过理解值1108是“距离”类型的,在示例中,电子表格应用104可以建议这样的值以与方程式1102中的变量“h”相关联,所述变量“h”也是相同类型的。因此,通过标记化值和变量,电子表格应用104可以理解存储在电子表格中的数据的类型以提供智能建议。更进一步地,通过理解方程式中的值和变量的类型,电子表格应用104可以在将变量与具有不兼容类型的数据相关联时识别错误。

现在参考图11b,示出了能够对数学方程式进行简化和求值的示例性电子表格应用104。在该特定示例中,电子表格应用104提供了示例性求值用户体验1110。求值用户体验1110向用户提供用于对方程式1102进行求值的选项。在该示例中,求值用户体验1110包括允许用户选择要求解的特定变量(例如,“t”)的第一下拉菜单1112。因为方程式包括第二变量(即,“h”),所以为了将方程式1102求值为最终结果,必须指定与该变量相关联的一个或多个参数。在示例中,如果参数没有被指定,则电子表格应用104可以求解方程式使得解包括该变量。在该示例中,求值用户体验1110包括允许用户选择方程式的变量的第二下拉菜单1114、以及允许用户为在第二下拉菜单1114中识别的变量(例如,“h”)指定一个或多个参数的第三下拉菜单1116。应当理解的是,如果方程式包含另外的变量,则用于指定参数的另外的下拉菜单也将是可用的。替代地,如果方程式仅包括要求解的一个变量,则求值用户体验1110将包括较少的下拉菜单。该示例中的求值用户体验1110还包括允许用户选择将求值结果输出到其中一个或多个单元格的第四下拉菜单1118。求值用户体验1110还包括选择框120,其如果被选择,则提供用于显示每个求值步骤的选项。最后,对求值用户体验1110的该示例性说明包括求解按钮1122,当其被选择时,基于用户选择的标准来对方程式进行求值。虽然求值用户体验1110描述了对一个或多个下拉菜单和选择框的使用,但是应当理解的是,对下拉菜单和选择框的这样的使用并不旨在是限制性的,然而仅仅是示例性的,并且其他用户体验也可以被实现。

在该示例中,用户选择“t”作为要求解的变量,如在第一下拉菜单1112中指示的。用户进一步指定求值标准。在该特定示例中,用户指定变量“h”与存储在单元格c5-c9中的值相对应,如分别由第二下拉菜单1114和第三下拉菜单1116指示的。用户还将单元格d5-d9指定为用于输出结果的对应的单元格,如由第四下拉菜单1120指示的。因此,基于对求解按钮1122的选择,结果1124被显示在图11c的单元格d5-d9中。因此,由于用户指定了五个值作为方程式1102的单个未知变量“h”的参数,所以由电子表格应用104输出的结果1124也包括五个值。因此,本公开内容的各方面还包括提供值的范围作为方程式的参数的能力,这产生多个值。例如,可以将多个单元格、数据表格和数组传递给数学方程式以进行求值,并且该数学方程式可以输出多个值、表格、数组或图形作为结果。

在替代实施例中,求值结果可以不被输出到一个或多个单元格中,而是替代地可以被输出为不绑定到单元格的对象。例如,对象可以是被显示在电子表格单元格上方的浮动对象。在这样的示例中,浮动对象虽然不绑定到特定的单元格引用,但可以被用于进一步的计算或引用,从而保持计算的完整性。在其他实施例中,对象可以在单独的电子表格中被提供或者被导出到另一应用。

图11d示出了用于求解数学方程式的方法1126。

方法1126在开始操作处开始并且前进到操作1128。在操作1128处,电子表格应用在单元格中接收方程式。如本文描述的,方程式可以包括一个变量。在一些实施例中,接收到的方程式包括一个以上的变量。在这样的实施例中,在操作1128中,数学引擎105接收要求解的变量。在一些实施例中,方程式不包括变量,在该情况下,数学引擎105可以求解方程式。

在操作1130中,针对在操作1128中接收的方程式的每个变量,数学引擎105接收一个或多个参数。在示例中,所接收的方程式可以包括两个变量:变量x和变量y,其中,变量y被选择为要求解的变量。因此,在操作1130中,数学引擎105可以接收变量x的一个或多个输入参数。在其他实施例中,方程式仅包括单个变量。如本文描述的,可以使用允许用户选择一个或多个单元格或者单元格的范围作为接收到的方程式的一个或多个变量的输入参数的用户体验来选择一个或多个参数。图11b中示出了这样的示例性用户体验。在其他实施例中,输入参数可以被标记化并且被电子表格应用理解为是方程式的一个或多个变量的输入参数。

在操作1132中,计算引擎103确定接收到的参数之一是否包括单元格引用。具体而言,如果输入参数包括对另一单元格的引用,则计算引擎103可以获得存储在被引用的单元格中的数据以便求解方程式。因此,如果一个或多个接收到的参数包括对单元格的引用(例如,在操作1132处为“是”),则方法流向操作1134,其中,计算引擎103获得存储在每个被引用的单元格中的数据。具体而言,计算引擎103可以获得存储在每个被引用的单元格中的数据,所述数据可以是例如数字或另一方程式。如果存储在被引用的单元格中的数据是数字,则计算引擎103获得该数字。替代地,如果存储在被引用的单元格中的数据是包括例如另一单元格引用(例如,“b4”或“sum(b4,5)”)的另一方程式,则计算引擎103进一步检索存储在该被引用的单元格中的数据。因此,计算引擎103迭代地检索数据直到所有这样的数据被检索为止。

一旦所有数据被检索(例如,在操作1132处为“否”),方法1126就流向操作1136,其中,数学引擎105使用由计算引擎103获得的值来求解方程式。在一些实施例中,取决于针对每个变量接收的输入参数的数量,方程式的输出是单个值或多个值。

本公开内容的方面进一步公开了对求值过程中的每个步骤的显示。现在参考图12a,示出了具有数学求值功能的示例性电子表格应用104。具体而言,图12a示出了所公开的电子表格应用的求值用户体验。类似于图11a-11c中示出的示例,示例性求值用户体验1210允许用户针对特定变量(例如,“h”)进行求解并且允许用户提供方程式1202的其他变量(例如,“t”)的参数。示例性求值用户体验1210还提供了用于显示求值过程中的每个步骤的选项。如图所示,当变量“t”等于“17”时(如分别由第二下拉菜单1214和第三下拉菜单1216指示的),用户已选择针对“h”进行求解(如由第一下拉菜单1212指示的)。此外,如选择框1220指示的,用户已选择显示每个求值步骤。

图12b示出了图12a中示出的求值用户界面的求值步骤。基于用户对图12a的求解按钮1222的选择,求值步骤被显示在求值用户界面1224中。如图所示,求值用户界面1224显示与对方程式1202进行求值相关联的每个步骤。在该示例中,用户试图对变量“h”进行求值,同时提供17作为变量“t”的参数。因此,显示在求值用户界面1224中的是用于将方程式1202求值为最终答案的五个步骤1212中的每一者。还显示在求值用户界面1224中的是与每个求值步骤相关联的解释1214。应当理解的是,虽然示例性方面示出了特定求值用户界面1224,但是本公开内容不限于特定用户界面,并且任何这样的用户界面可以被实现。

虽然这些示例示出了对方程式的简单求值,但各方面还公开了可能依赖于存储在电子表格中的其他方程式或值的对方程式的求值。例如,一些构思进一步公开了对包括一个或多个嵌套方程式的方程式的求值和对应的逐步显示,所述一个或多个嵌套方程式中的每一者可以依赖于存储在电子表格中的其他方程式或动态数据。因此,对这样的方程式的求值可能包括对其他方程式的求值以对指定的方程式进行求值。进一步的方面包括迭代地将方程式求解为最小或最大值。

构思5:显示依赖性

本公开内容的进一步的新颖方面提供了显示存储在电子表格中的数据之中的依赖性的电子表格应用104。电子表格应用104可以将数千个值和方程式存储在单个电子表格中,使得用户难以理解数据是如何依赖于或影响存储于其中的其他数据的。因此,本公开内容的方面还提供了用于显示存储在电子表格中的数据之中的依赖性的直观显示。

现在参考图13a,示出了存储在电子表格中的方程式的单个变量的依赖性的示例性显示。具体而言,方程式“x+y”1302在公式栏1304中被提供并被存储在电子表格1308的单元格f11306中。在该示例中,变量“x”和“y”中的每一者可以依赖于存储在一个或多个其他单元格中的数据。例如,可以选择存储在单元格f31310中的方程式作为变量“x”的参数,并且可以选择存储在单元格f41312中的方程式作为变量“y”的参数。电子表格应用104可以基于对用于显示这样的关系的选项的选择来显示这样的依赖性。更具体而言,在该示例中,用户已选择用于显示变量“x”的一个或多个依赖关系的选项。因此,如图13a示出的,电子表格应用104使用箭头1314来显示变量“x”对单元格f31310的依赖性。虽然示出了箭头1314,但是应当理解的是,可以使用其他类型的指示符,例如线条、颜色、字体大小、字体类型等。此外,在该实施例中,变量“x”被加粗,并且单元格f31310也被用虚线边框强调以进一步指示“x”依赖于存储在单元格f31310中的值。在其他实施例中,变量可能仅与存储在单元格中的部分数据相关。例如,变量可能与存储在另一单元格中的方程式的单个变量相关。因此,各方面公开了显示变量对存储在单元格中的数据的相关部分而不是整个单元格的依赖关系,这在本文中被进一步描述和示出。

图13b示出了依赖性的另一示例性显示,如与图13a相关的。如该示例中描述的,变量“x”依赖于存储在单元格f31310中的数据,并且变量“y”依赖于存储在单元格f41312中的数据。类似于图13a中示出的示例,电子表格应用还可使用箭头1316来显示变量“y”对存储在单元格f41312中的数据的依赖性。如进一步示出的,变量“y”被加粗,并且单元格f41312被用虚线边框强调以进一步指示“y”依赖于存储在单元格f41312中的值。虽然图13a和图13b个别地示出了依赖性的显示,但是本公开内容的方面还针对同时显示多个依赖性。如此,变量“x”与存储在单元格f31310中的数据的依赖关系可以与变量“y”与存储在单元格f41312中的数据的依赖关系同时显示。

进一步的方面提供了公式栏中的依赖性的显示。具体而言,公式栏中的公式可以参考单元格引用以指示每个变量所依赖于的一个或多个单元格,或者其本身可以提供实际值,包括其中的任何单元格引用。现在参考图13c,示出了其中依赖性被显示在公式栏中的示例。如图所示,方程式“x+y”被存储在电子表格1308的单元格f11306中。如本文描述的,变量“x”依赖于存储在单元格f31310中的数据(例如,方程式“(2*a)+6b)”),并且变量“y”依赖于存储在单元格f41312中的数据(例如,方程式“((15/2)+7z)”)。在该示例中,通过显示对应的值,在公式栏中针对变量“x”和“y”二者显示了相关性。具体而言,在公式栏1304中提供的示例性公式1302被写为“=x{(2*a)+6b}+y{(15/2)+7z)}}”。因此,与变量“x”相关联的值和与变量“y”相关联的值被提供在与每个对应变量相邻的括号中。然而,在其他实施例中,可以仅提供单元格引用本身。而在其他实施例中,可以提供箭头,类似于图13a和图13b中示出的示例。

图14a和图14b提供了多个变量之中的依赖关系的显示。在图14a中示出的是在公式栏1404中提供的并存储在单元格f11406中的公式1402。公式包括两个变量:x和y。在该示例中,每个变量都与存储在贯穿电子表格的多个单元格或单元格的部分中的数据相关联。具体而言,变量“x”与存储在单元格f31408中的变量“a”相关联。此外,变量“a”与单元格d41410相关联。单元格d41410包括方程式“u3*12.2”,其中,变量“u”与单元格a41412相关联。此外,变量“y”与存储在单元格f31408中的变量“b”相关联。变量“b”与单元格d51414相关联。单元格d51414包括方程式“5p+52”,其中,变量“p”与单元格a71416相关联。如可以容易理解的,依赖性可能变得相当复杂并且贯穿电子表格散布。

图14b示出了存储在多个单元格中的多个变量之中的依赖关系的示例性显示,如参考图14a所描述的。如该示例示出的,多个箭头被用来显示贯穿电子表格的多个依赖性。具体而言,箭头被用来显示对变量和个别单元格的依赖性。虽然示出了箭头,但是可以实现任何这样的显示依赖性的方式。依赖关系的这样的显示允许用户容易领会方程式中涉及的变量和单元格而无需手动追踪关联,所述手动追踪关联可能是麻烦且复杂的。在其他示例中,可以提供示出每个变量的值和依赖性的任务窗格。在其他实施例中,可以响应于对变量的选择或悬停在特定变量上来显示用户界面。

另外,单元格可以存储复合对象。复合对象在单个单元格中存储多个值,其中,那些多个值根据定义的结构进行组织。在序列号为62/249,884的美国临时专利和序列号为62/357,292的美国临时专利中进一步描述了复合对象,上述专利的公开内容以引用方式被全部并入本文,其公开内容已以引用方式被并入本文。在示例中,复合对象存储以下各项中的至少一项:数学方程式和一个或多个值。在示例性实施例中,存储在复合对象中的数学方程式具有依赖于存储在复合对象中的一个或多个值的一个或多个变量。在另一示例性实施例中,存储在复合对象中的数学方程式具有依赖于存储在复合对象之外(例如,在其他单元格或电子表格中或者在其他复合对象内)的值的一个或多个变量。在又一示例性实施例中,存储在复合对象中的数学方程式具有依赖于存储在复合对象之内和之外二者的值的一个或多个变量。更进一步地,存储在单元格中的数学方程式可以具有依赖于存储在一个或多个复合对象之内的值的一个或多个变量。因此,所公开的电子表格应用还显示存储在电子表格中的任何位置(包括复合对象中)的变量的依赖性。在一些实施例中,这些依赖性与本文描述的示例类似地被显示,在其他实施例中,在假定复合对象存储多个值并且那些值中的每一者可能未被完全显示在单元格视图中的情况下,依赖性可以不同地被显示。

图14c示出了用于显示依赖性的方法1418。

具体而言,方法1418在开始操作处开始并且前进到操作1420,其中,电子表格应用接收用于显示一个或多个依赖性的选项。如本文描述的,可以在电子表格中提供方程式,其中,方程式的一个或多个变量与也存储在电子表格中的一个或多个单元格或单元格的部分相关。因此,本公开内容的方面提供了显示那些依赖性的能力。所以,在操作1420中,电子表格应用可以接收用于显示方程式的单个变量或方程式的多个变量的依赖性的选项。

在操作1422中,对于针对其要示出依赖性的每个变量,电子表格应用识别一个或多个依赖关系。如本文描述的,变量可以与还存储在电子表格中的一个或多个单元格或单元格的部分相关。此外,依赖的单元格或单元格的部分还可以包括还与存储在电子表格中的一个或多个单元格或单元格的部分相关的一个或多个变量。因此,在操作1422中,电子表格应用识别这样的依赖性。

在操作1424中,电子表格应用显示那些依赖性。在一些实施例中,使用变量及其依赖之间的箭头或其他指示符(例如,线条、颜色、字体大小、字体类型等)来显示依赖性。

构思6:提供针对如何显示和分析数据的推荐。

图15示出了能够提供针对如何显示数据的推荐的示例性电子表格应用104。如本文描述的,所公开的电子表格应用104能够使用计算引擎和数学引擎来分析方程式并且甚至输出该方程式的结果。具体而言,可以选择一个或多个单元格或单元格的范围作为方程式中变量的输入参数。在一些实施例中,所选择的一个或多个单元格或单元格的范围甚至可以包括一个或多个变量或单元格引用。因此,电子表格应用104可以迭代地识别每个依赖性并且填充方程式的变量,使得其可以被求解或简化。如所描述的,电子表格应用还可以接收一个以上的值作为变量的输入参数,从而提供一个以上的结果。

本公开内容的方面还提供了还可以提供用于显示数学方程式的结果的推荐的电子表格应用104。在图15示出的示例中,电子表格应用104显示推荐的图表用户界面1502,其存储可以用于表示存储在电子表格中的数据的一个或多个图表。在该示例中,推荐的图表用户界面1502包括抛物线1504、条形图1506和线条图1508。电子表格应用104还可以推荐用于表示结果的其他方式,例如将结果绘制在笛卡尔坐标系中。因此,虽然图15的示例示出了具体的推荐的图表1502,但电子表格应用104还可以推荐用于表示数据110的其他方法,例如但不限于流程图、表格、图等。在一些实施例中,电子表格应用104可以推荐用于绘制数据和方程式的不同方式,包括2d和3d绘图。

在一些实施例中,数学引擎105可以生成存储在电子表格中的辨识的方程式的绘图。可以提供允许用户指定方程式在图表上被绘制的方式的图表选项以及关于图表的大小、外观和样式的选项。所以,本公开内容的方面还提供了提供绘制功能的电子表格应用。

构思7:数学显示模式

本公开内容的进一步的方面还提供协助用户录入方程式、求解方程式以及显示求解步骤而不需要任何电子表格应用经验的方程式显示模式。在示例中,方程式显示模式可以是使简单的方程式用户界面被显示的显示模式。在一些实施例中,方程式用户界面可以是空白用户界面,其允许用户输入与传统电子表格用户体验分离但与之绑定的一个或多个方程式。在一些实施例中,方程式用户界面可以是空白的用户界面,其中,用户可以用墨水输入或键入方程式。替代地或另外地,用户可以通过捕获方程式的图片来输入方程式,所述方程式随后可以从方程式用户界面显示。替代地或另外地,以专用工具书写的方程式可以经由共享或开放标记语言来导入。在一些实施例中,这样的方程式显示模式可以是诸如移动电话或平板计算设备之类的移动设备上的可用的特征。此外,方程式用户界面可以与电子表格的一个或多个单元格相关联,并且因此,一旦方程式被提供,电子表格应用就可以将该方程式录入到电子表格的特定单元格或单元格的范围中。

图16a示出了用于从移动计算设备1604录入方程式的示例性方程式用户界面1602。在该示例中,移动计算设备1604可以是例如具有存储于其上的所公开的电子表格应用的移动电话或平板计算设备。替代地或另外地,移动计算设备1604能够执行电子表格应用的托管的或在线的版本。如本文描述的,用户可以在移动计算设备1604上执行电子表格应用,以及进入方程式显示模式以便显示方程式用户界面1602。示例性方程式用户界面1602包括方程式输入区域1606和方程式输入选项1608。在该示例中,方程式输入选项1608提供用于录入方程式的三个选项:文本选项1610、墨水选项1612和照片选项1614。在其他实施例中,可以提供其他方程式输入选项。文本选项1610允许用户键入方程式。在一些实施例中,可以提供数字键盘,其可以用于录入方程式。例如,墨水选项1612允许用户使用用户的手指或使用触笔在方程式输入区域1606中录入方程式。照片选项1614允许用户捕捉方程式的照片。在示例中,对照片选项1614的选择可以启用移动计算设备1604的相机。在一个实施例中,基于对照片选项1614的选择,方程式用户界面1602可以充当相机显示器,从而允许用户捕获可能在工作簿、书本或纸上键入的或书写的方程式的照片。在另一实施例中,用户可能已经捕获了保存在移动计算设备1604上或可由移动计算设备1604访问的、方程式的照片。在这样的实施例中,照片选项1614可以使得移动设备1604访问这样的照片。在任一实施例中,方程式的照片可以由电子表格应用读取并且被转化为方程式。用户还可以具有用于更正所转化的方程式中的任何错误的选项。发送到电子表格的选项1616如果被选择可以使电子表格应用将该方程式录入到电子表格的单元格中。在实施例中,用户可以选择一个或多个单元格,并且在其他实施例中,电子表格应用可以自动选择存储方程式的一个或多个单元格。此外,方程式选项1618可以显示允许用户录入每个变量的参数或从电子表格中选择参数的单独的用户界面。另外地或替代地,方程式选项1618可以向用户提供用于对方程式进行简化或求值的选项。此外,每个提供的参数也可以被存储在电子表格的一个或多个单元格中。如果对方程式的简化或求值被选择,则用户还可以选择查看简化或求值的每个个别步骤。另外地或替代地,方程式选项1618可以向用户提供用于基于所提供的参数来画出或绘制方程式的选项。

在该示例中,方程式“x2+y2=c”是使用墨水选项1612在方程式用户界面1602中提供的。基于对发送到电子表格的选项1616的选择,方程式“x2+y2=c”被存储在电子表格的单元格a11620中,如图16b示出的。因此,图16b示出了存储图16a的方程式用户界面中提供的方程式的示例性电子表格。在示例中,电子表格应用可以设置其中存储在方程式显示模式的方程式用户界面1602中接收的方程式的默认单元格。在其他实施例中,用户可以选择其中存储所提供的方程式的单元格。如本文描述的,在一些实施例中,方程式还可以被简化或求值为结果。在方程式被简化或求值为结果的实施例中,电子表格应用可以示出每个求值步骤。如果参数被提供,则那些参数也可以被存储在电子表格中。另外地或替代地,电子表格应用104还可以提供用于画出或绘制方程式的结果的选项,如本文描述的。因此,方程式显示模式提供了用户可以将方程式录入到电子表格中的简单且容易的方式。方程式显示模式还提供了对方程式进行简化和求值同时还理解简化或求值过程的每个步骤的简单方法。方程式显示模式还提供了画出或绘制数据的简单且容易的方式。

图17-20和相关联描述提供了对可以在其中实践本公开内容的方面的各种操作环境的讨论。然而,关于图17-20示出和讨论的设备和系统是出于示例和说明的目的的,并且不对可用于实践本公开内容的方面的大量计算设备配置进行限制,如本文描述的。

图17是示出可以利用其实践本公开内容的方面的计算设备1700的物理组件(例如,硬件)的框图。以下描述的计算设备组件可以具有用于在计算设备(例如,服务器计算设备108)上实现电子表格应用程序104的计算机可执行指令,包括用于电子表格应用程序104的可以被执行以采用本文公开的方法的计算机可执行指令。在基本配置中,计算设备1700可以包括至少一个处理单元1702和系统存储器1704。取决于计算设备的配置和类型,系统存储器1704可以包括但不限于易失性存储装置(例如,随机存取存储器)、非易失性存储装置(例如,只读存储器)、闪速存储器、或这些存储器的任意组合。系统存储器1704可以包括适于运行电子表格应用程序104的操作系统1705或关于图1的一个或多个组件。例如,操作系统1705可以是适于控制计算设备1700的操作的。此外,本公开内容的实施例可以结合图形库、其他操作系统或任何其他应用程序来实践,并且不限于任何特定应用或系统。该基本配置在图17中由虚线1708内的那些组件示出。计算设备1700可以具有另外的特征或功能。例如,计算设备1700还可以包括另外的数据存储设备(可移除和/或不可移除的),例如磁盘、光盘或磁带。这样的另外的存储装置在图17中由可移除存储设备1709和不可移除存储设备1710示出。

如上所述,多个程序模块和数据文件可以被存储在系统存储器1704中。当在处理单元1702上执行时,程序模块1706(例如,电子表格应用程序104)可以执行包括但不限于这些方面的过程,如本文描述的。

此外,本公开内容的实施例可以在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、使用微处理器的电路中或者包含电子元件或微处理器的单个芯片上实践。例如,本公开内容的实施例可以经由片上系统(soc)来实践,其中,图17中示出的每个或许多组件可以被集成到单个集成电路上。这样的soc设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用功能,所有这些单元和功能都被集成(或“烧录”)到芯片衬底上作为单个集成电路。当经由soc进行操作时,本文描述的关于客户端切换协议的能力的功能可以经由与计算设备1700中的在单个集成电路(芯片)上的其他组件集成的专用逻辑单元来操作。本公开内容的实施例还可以使用能够执行逻辑运算(例如,与(and)、或(or)和非(not))的其他技术来实践,所述技术包括但不限于机械技术、光学技术、流体技术和量子技术。另外,本公开内容的实施例可以在通用计算机内或在任何其他电路或系统内实践。

计算设备1700还可以具有一个或多个输入设备1712,例如键盘、鼠标、笔、声音或语音输入设备、触摸或滑动输入设备等。诸如显示器、扬声器、打印机等的输出设备1714也可以被包括。上述设备是示例,并且其他设备可以被使用。计算设备1700可以包括允许与其他计算设备1750通信的一个或多个通信连接1716。合适的通信连接1716的示例包括但不限于射频(rf)发射机、接收机和/或收发机电路;通用串行总线(usb)、并行和/或串行端口。

如本文使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可以包括以用于存储信息的任何方法或技术(例如,计算机可读指令、数据结构或程序模块)实现的易失性和非易失性、可移除和不可移除的介质。系统存储器1704、可移除存储设备1709和不可移除存储设备1710全都是计算机存储介质示例(例如,存储器存储装置)。计算机存储介质可以包括ram、rom、电可擦除只读存储器(eeprom)、闪速存储器或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光存储装置、盒式磁带、磁带、磁盘存储装置或其他磁性存储设备或可以用于存储信息并且可由计算设备1700访问的任何其他制品。任何这样的计算机存储介质可以是计算设备1700的一部分。计算机存储介质不包括载波或其他被传播或经调制的数据信号。

通信介质可以通过计算机可读指令、数据结构、程序模块或经调制的数据信号(例如,载波或其他传输机制)中的其他数据来体现,并且包括任何信息传递介质。术语“经调制的数据信号”可以描述具有以这样的方式被设置或改变使得在信号中编码信息的一个或多个特性的信号。通过示例而非限制的方式,通信介质可以包括有线介质(例如,有线网络或直接连线的连接)和无线介质(例如,声学、射频(rf)、红外线和其他无线介质)。

图18a和图18b示出了移动计算设备800,例如可以利用其实践本公开内容的实施例的移动电话、智能电话、可穿戴计算机(例如,智能手表)、平板计算机、膝上型计算机等。在一些方面中,客户端可以是移动计算设备。参考图18a,示出了用于实现各方面的移动计算设备1800的一个方面。在基本配置中,移动计算设备1800是具有输入元件和输出元件二者的手持式计算机。移动计算设备1800通常包括显示器1805和允许用户将信息录入到移动计算设备1800中的一个或多个输入按钮1810。移动计算设备1800的显示器1805还可以充当输入设备(例如,触摸屏显示器)。如果被包括,则可选的侧输入元件1815允许进一步的用户输入。侧输入元件1815可以是旋转开关、按钮或任何其他类型的手动输入元件。在替代方面中,移动计算设备1800可以并入更多或更少的输入元件。例如,在一些实施例中,显示器1805可以不是触摸屏。在又一替代实施例中,移动计算设备1800是便携式电话系统,例如蜂窝电话。移动计算设备1800还可以包括可选按键板1835。可选按键板1835可以是物理按键板或在触摸屏显示器上生成的“软”按键板。在各种实施例中,输出元件包括用于示出图形用户界面(gui)、视觉指示器1820(例如,发光二极管)和/或音频换能器1825(例如,扬声器)的显示器1805。在一些方面中,移动计算设备1800并入了用于向用户提供触觉反馈的振动换能器。在又一方面中,移动计算设备1800并入了输入和/或输出端口,例如用于向外部设备发送信号或从外部设备接收信号的音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,hdmi端口)。

图18b是示出移动计算装置的一个方面的架构的框图。换言之,移动计算设备1800可以并入用于实现一些方面的系统(例如,架构)1802。在一个实施例中,系统1802被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息传送客户端、游戏和媒体客户端/播放器)的“智能电话”。在一些方面中,系统1802被集成为计算设备,例如集成个人数字助理(pda)和无线电话。

一个或多个应用程序1866可以被加载到存储器1862中并且在操作系统1864上或者与操作系统1864相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(pim)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息传送程序等等。系统1802还包括存储器1862内的非易失性存储区域1868。非易失性存储区域1868可以被用来存储持久信息,其在系统1802断电的情况下不应当被丢失。应用程序1866可以使用非易失性存储区域1868中的信息并将信息存储在非易失性存储区域1868中,所述信息例如电子邮件或由电子邮件应用使用的其他消息等。同步应用(未示出)也驻留在系统1802上并被编程为与驻留在主机上的对应同步应用进行交互,以保持被存储在非易失性存储区域1868中的信息与被存储在主机上的对应信息同步。如应当领会的,其他应用可以被加载到存储器1862中并且在移动计算设备1800上运行,所述其他应用包括用于提供电子表格应用程序的指令。

系统1802具有电源1870,所述电源1870可以被实现为一个或多个电池。电源1870还可以包括外部电源,例如对电池进行补充或再充电的ac适配器或电动对接支架。

系统1802还可以包括执行发送和接收射频通信的功能的无线接口层1872。无线接口层1872经由通信载波或服务提供商促进系统1802与“外部世界”之间的无线连接。去往和来自无线接口层1872的传输在操作系统1864的控制下进行。换言之,由无线接口层1872接收的通信可以经由操作系统1864散布到应用程序1866,反之亦然。

视觉指示器1820可以用来提供视觉通知,并且/或者音频接口1874可以用于经由音频换能器1825产生可听通知。在示出的实施例中,视觉指示器1820是发光二极管(led),并且音频换能器1825是扬声器。这些设备可以直接耦合到电源1870,使得当被激活时,即使处理器1860和其他组件可能为节省电池电力而关闭,他们仍然在由通知机制规定的持续时间内保持开启。led可以被编程为无限期地保持开启,直到用户采取措施指示设备的开机状态为止。音频接口1874被用来向用户提供可听信号并从用户接收可听信号。例如,除了被耦合到音频换能器1825之外,音频接口1874还可以耦合到用于接收可听输入的麦克风,例如以促进电话对话。根据本公开内容的实施例,麦克风还可以充当音频传感器以促进对通知的控制,如将在以下描述的。系统1802还可以包括视频接口1876,其实现机载相机1830的记录静止图像、视频流等的操作。

实现系统1802的移动计算设备1800可具有另外的特征或功能。例如,移动计算设备1800还可以包括另外的数据存储设备(可移除的和/或不可移除的),例如磁盘、光盘或磁带。图18b中通过非易失性存储区域1868示出了这样的另外的存储装置。

由移动计算设备1800生成或捕获并经由系统1802存储的数据/信息可以本地地存储在移动计算设备1800上,如以上描述的,或者数据可以被存储在可以由设备经由无线接口层1872或经由移动计算设备1800和与移动计算设备1800相关联的单独计算设备之间的有线连接访问的任意数量的存储介质上,例如分布式计算网络(例如,互联网)中的服务器计算机。如应当领会的,这样的数据/信息可以经由移动计算设备1800通过无线接口层1872或通过分布式计算网络来访问。类似地,根据众所周知的数据/信息传输和存储单元(包括电子邮件和协作数据/信息共享系统),这样数据/信息可以容易地在计算设备之间传输以用于存储和使用。

图19示出了用于处理在计算系统处从远程源(例如,个人计算机1904、平板计算设备1906或移动计算设备1908)接收的数据的系统的架构的一个方面,如以上描述的。在服务器设备1902处显示的内容可以被存储在不同的通信信道或其他存储类型中。例如,可以使用目录服务1922、网络门户1924、邮箱服务1926、即时消息存储装置1928或社交网站1930来存储各种文档。与服务器设备1902通信的客户端可以采用电子表格应用104,并且/或者服务器设备1902可以采用电子表格应用104。服务器设备1902可以通过网络1915提供去往和来自客户端计算设备的数据,所述客户端计算设备例如个人计算机1904、平板计算设备1906和/或移动计算设备1908(例如,智能电话)。例如,以上描述的计算机系统可以体现在个人计算机1904、平板计算设备1906和/或移动计算设备1908(例如,智能电话)中。除了接收可用于或者在图形起源系统处预处理或在接收计算系统处后处理的图形数据之外,计算设备的这些实施例中的任一者都可从存储装置1916中获得内容。

图20示出了可以执行本文公开的一个或多个方面的示例性平板计算设备2000。另外,本文描述的方面和功能可以在分布式系统(例如,基于云的计算系统)上操作,其中,应用功能、存储器、数据存储和检索以及各种处理功能可以在分布式计算网络(例如,互联网或内联网)上彼此远程进行操作。用户界面和各种类型的信息可以经由机载计算设备显示器或经由与一个或多个计算设备相关联的远程显示单元来显示。例如,用户界面和各种类型的信息可以在用户界面和各种类型的信息被投影到其上的墙面上显示并且可以与所述墙面交互。与可以利用其实践本发明的实施例的多种计算系统的交互包括击键录入、触摸屏录入、语音或其他音频录入、姿势录入,其中,相关联的计算设备配备有用于捕获和解释用于控制计算设备的功能的用户姿势的检测(例如,相机)功能等。

例如,以上参考根据本公开内容的方面的方法、系统和计算机程序产品的框图和/或操作说明来描述本公开内容的方面。框中记录的功能/动作可以不按照如在任何流程图中示出的顺序发生。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可以基本上同时被执行,或者框有时可以以相反的顺序执行。

本申请中提供的对一个或多个方面的描述和说明并非旨在以任何方式限制或约束本公开内容的如所要求保护的范围。本申请中提供的方面、示例和细节被认为足以传达所有物并使其他人能够制作和使用所要求保护的公开内容的最佳模式。所要求保护的公开内容不应当被解释为限于本申请中提供的任何方面、示例或细节。无论是以组合方式还是单独地被示出和描述,各种特征(结构的和方法的二者)旨在被有选择地包括或省略以产生具有特定特征集的实施例。在已经被提供了本公开内容的描述和说明的情况下,本领域技术人员可以设想不脱离所要求保护的公开内容的更宽范围的、落入本申请中体现的总体发明构思的更宽泛方面的精神内的变型、修改和替代方面。

以上描述的各种实施例仅通过说明的方式被提供,并且不应当被解释为限制附于此的权利要求。本领域技术人员将容易认识到可以在不遵循本文示出和描述的示例性实施例和应用并且不脱离所附权利要求的真实精神和范围的情况下进行各种修改和改变。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1