CN115668204A - 与用电子表格编程语言合成程序相关的(多个)用户界面 - Google Patents
与用电子表格编程语言合成程序相关的(多个)用户界面 Download PDFInfo
- Publication number
- CN115668204A CN115668204A CN202180039225.6A CN202180039225A CN115668204A CN 115668204 A CN115668204 A CN 115668204A CN 202180039225 A CN202180039225 A CN 202180039225A CN 115668204 A CN115668204 A CN 115668204A
- Authority
- CN
- China
- Prior art keywords
- program
- cell
- spreadsheet
- user input
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- User Interface Of Digital Computer (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
在本文中描述了用于自动合成包括电子表格编程语言中的一个或多个函数的程序的技术。一种方法包括:接收电子表格中的第一单元格中的第一用户输入;使用所述第一单元格中的所述第一用户输入作为第一示例来自动合成程序,其中,所述程序包括电子表格编程语言中的至少一个函数,并且当所述程序被执行时,所述程序生成与所述第一示例匹配的输出;确定所述电子表格中与所述第一单元格相关的至少一个附加单元格;确定显示触发条件得到满足;以及响应于确定所述显示触发条件得到满足,在所述至少一个附加单元格中的每个单元格中显示与所述附加单元格对应的所述程序的输出。
Description
背景技术
电子表格应用可以实施包括各种函数的电子表格编程语言,这些函数对电子表格中的单元格或一系列单元格中的数据和/或其他输入进行操作以产生各种输出。电子表格编程语言中的函数的非限制性示例包括求和函数、计数函数、平均函数、长度函数、连接函数、最大函数、最小函数和查找函数。
用户可以在电子表格中手动输入可能通过编程方式获得的数据。例如,用户可以在第一表格中的列中手动输入姓氏,而不是可能通过使用电子表格编程语言中的函数从存储全名的第二表格中的列中提取姓氏来获得。然而,这种手动方法可能是对用户时间和计算机存储资源的低效使用,因为它可能导致过多的数据输入、客户端设备使用以及相同数据在电子表格中的多个位置的复制。附加地,当底层数据在一个位置发生变化(例如,用户的姓氏发生变化)时,必须将这种变化手动传播到电子表格中使用该数据的所有位置。
不是程序员或有经验的电子表格应用用户的用户可能不知道或不习惯使用电子表格编程语言中的函数,这些函数能够用于以编程的方式获得数据以填充电子表格中的某些单元格。附加地,用户可能不理解如何将电子表格编程语言中的多个函数组合在一起形成程序以获得数据来填充电子表格中的某些单元格。其他用户可能能够编写使用电子表格编程语言中的多个函数来获得数据的自己的程序,但是与获得相同数据的更有效的解决方案相比,他们编写的程序可能是需要过多处理和存储器资源的低效的解决方案。此外,手动编写程序经常会花费大量的时间(例如,识别(多个)适当的函数、试错等),因此,可能会导致用于手动编写程序的客户端设备的电力资源和/或(多个)其他计算资源的过度使用。当客户端设备具有相对较小的显示器和/或软件键盘时,这可能会加剧,这两种情况都能够延长编写程序所需的时间。
发明内容
本文公开的实施方式涉及自动合成程序,该程序包括电子表格编程语言中的至少一个函数,并且在被执行时生成与一个或多个用户提供的输出示例匹配的输出。例如,电子表格中的第一单元格中的第一用户输入能够用作第一示例,并且程序能够自动合成,使得程序在被执行时生成与第一示例匹配的输出。然后,能够识别电子表格中与第一单元格相关的至少一个附加单元格,并且能够确定显示触发条件得到满足。响应于确定显示触发条件得到满足,然后能够在附加单元格中显示与附加单元格对应的程序的输出。
在一些实施方式中,确定显示触发条件得到满足能够包括确定自动合成的程序的复杂性级别满足复杂性阈值。在示例中,复杂性阈值能够是最大复杂性阈值,并且不超过最大复杂性阈值的程序,例如,基于多个函数或多个嵌套函数级别,能够被确定为满足复杂性阈值。因此,通过避免使用过于复杂的程序能够节约系统资源。
在一些实施方式中,能够确定与自动合成的程序相关联的置信度分数。确定显示触发条件得到满足能够包括确定与自动合成的程序相关联的置信度分数超过预定置信度阈值。在示例中,置信度分数能够是指示自动合成的程序将生成正确输出的置信度级别的分数。在另一个示例中,置信度分数能够是基于程序对编码规则或编码标准(例如,与最佳实践相关的规则)的遵从性。
在一些实施方式中,响应于与自动合成的程序相关联的置信度分数超过最小置信度阈值,但不超过预定置信度阈值,能够在与电子表格相关联的用户界面中显示对自动合成的程序的可用性的指示。
在一些实施方式中,能够确定合成触发条件得到满足。自动合成程序能够是响应于确定合成触发条件得到满足而执行的。在一些实施方式中,确定合成触发条件得到满足能够是基于接收第一单元格中的第一用户输入。
在一些实施方式中,能够接收电子表格中的第二单元格中的第二用户输入。确定合成触发条件得到满足能够进一步基于接收第二单元格中的第二用户输入。自动合成程序能够进一步包括使用第二单元格中的第二用户输入作为第二示例,并且程序在被执行时能够进一步生成与第二示例匹配的输出。
在一些实施方式中,程序能够显示在与电子表格相关联的用户界面中的公式栏中。在一些实施方式中,对显示在公式栏中的程序的编辑能够是从用户接收到的,并且对程序的编辑能够与第一单元格关联存储。
在一些实施方式中,程序的输出能够使用与用于显示第一单元格中的第一用户输入的字体、样式或颜色不同的字体、样式或颜色而被显示在附加单元格中。
在一些实施方式中,能够在与电子表格相关联的用户界面中显示请求用户接受或拒绝程序的提示,并且响应于显示提示,能够从用户接收程序的接受。响应于从用户接收到程序的接受,第一用户输入能够通过将程序与第一单元格关联存储来替换,并且程序能够与附加单元格关联存储。在一些实施方式中,程序的接受能够响应于选择提示中包括的用户界面元件或响应于键盘快捷键的输入而被接收。
在一些实施方式中,包括字体、样式和颜色的第一字体外观能够用于显示第一单元格中的用户输入。在从用户接收程序的接受之前,能够使用与第一字体外观不同的第二字体外观在至少一个附加单元格中显示程序的输出,并且在从用户接收到程序的接受之后,能够用第一字体外观显示程序的输出。
在一些实施方式中,能够在与电子表格相关联的用户界面中显示请求用户接受或拒绝程序的提示,并且响应于显示提示,能够从用户接收程序的拒绝。响应于从用户接收到程序的拒绝,能够维持第一单元格中的第一用户输入,并且能够停止在附加单元格中显示程序的输出。在一些实施方式中,能够响应于从用户接收到程序的拒绝而修改显示触发条件。
在一些附加或替代的实施方式中,能够接收电子表格中的第一单元格中的第一用户输入,该第一用户输入包括电子表格编程语言中的至少一个函数。能够基于接收到第一单元格中的第一用户输入而确定显示触发条件得到满足,并且响应于确定显示触发条件得到满足,能够在与电子表格相关联的用户界面中显示提供选项以基于示例用电子表格编程语言自动合成程序的提示,其中,程序在被执行时生成与示例匹配的输出。
在一些实施方式中,显示触发条件能够是提供第一用户输入花费的阈值时间量。在一些实施方式中,显示触发条件能够是超过程序的复杂性级别的第一用户输入的复杂性级别。因此,通过用可能更有效的程序替换用户生成的程序(例如,通过使用更少的处理资源或存储器资源),能够节约系统资源。
在一些实施方式中,响应于显示提示,能够接收自动合成程序的选项的接受。能够使用电子表格中的第一单元格中基于第一用户输入而生成的结果值作为示例来自动合成电子表格编程语言中的程序,并且响应于接收到所述接受,第一用户输入能够通过将程序与第一单元格关联存储来替换。
在一些实施方式中,自动合成程序的选项的接受能够响应于选择提示中包括的用户界面元件或响应于键盘快捷键的输入而被接收。
在一些附加或替代的实施方式中,能够接收电子表格中的第一单元格中的第一用户输入,并且响应于接收到第一单元格中的第一用户输入,能够确定显示触发条件没有得到满足。能够接收电子表格中的第二单元格中的第二用户输入,并且响应于接收到第二单元格中的第二用户输入,能够确定显示触发条件得到满足。能够使用第一单元格中的第一用户输入作为第一示例和使用第二单元格中的第二用户输入作为第二示例来自动合成程序,其中,程序包括电子表格编程语言中的至少一个函数,并且当程序被执行时,程序生成与第一示例匹配的第一输出和与第二示例匹配的第二输出。能够确定与第一单元格和第二单元格相关的至少一个附加单元格,并且响应于确定显示触发条件得到满足,能够在附加单元格中显示程序的输出。
在一些实施方式中,使用与用于显示第一单元格中的第一用户输入和第二单元格中的第二用户输入的字体、样式或颜色不同的字体、样式或颜色在至少一个附加单元格中显示程序的输出。在一些实施方式中,显示触发条件是基于用户反馈和以前与电子表格的用户交互。
应当了解,前述概念和在本文中更详细地描述的附加概念的所有组合都被视为本文公开的主题的部分。例如,在本公开的末尾出现的所要求保护的主题的所有组合均被视为本文公开的主题的部分。
附图说明
图1示意性地描绘了根据各种实施方式的可以实施本公开的所选方面的示例环境。
图2描绘了图示了实践本公开的所选方面的示例方法的流程图。
图3描绘了图示了实践本公开的所选方面的示例方法的另一个流程图。
图4描绘了图示了实践本公开的所选方面的示例方法的另一个流程图。
图5描绘了图示了实践本公开的所选方面的示例方法的另一个流程图。
图6描绘了根据各种实施方式的本文中所描述的技术的示例应用。
图7图示了计算设备的示例架构。
具体实施方式
图1示意性地描绘了根据各种实施方式的可以实施本公开的所选方面的示例环境100。图1或图中的其他地方描绘的任何计算设备都可以包括逻辑(诸如,执行存储器中存储的计算机可读指令的一个或多个微处理器(例如,中央处理单元或“CPU”、图形处理单元或“GPU”))或其他类型的逻辑,诸如专用集成电路(“ASIC”)、现场可编程门阵列(“FPGA”)等。图1中描绘的一些系统,诸如电子表格系统110,可以使用一个或多个服务器计算设备来实施,这些服务器计算设备形成有时被称为“云基础设施”的结构,尽管这不是必需的。
在实施方式中,环境100可以包括实施电子表格应用的电子表格系统110,该电子表格应用能够通过瘦客户端接口(诸如,web浏览器(例如,基于web的电子表格应用))或程序接口从各种客户端访问,包括可以包括在环境100中的客户端130-1、......、130-n。在实施方式中,由电子表格系统110实施的电子表格应用可以是作为服务(SaaS)电子表格应用的软件。电子表格系统110和客户端130-1、......、130-n可以经由计算机网络160进行通信,该计算机网络160可以是任何合适的网络,其包括局域网(LAN)、广域网(WAN)或互联网的任何组合。除了其他之外,电子表格系统110可以包括程序合成器120,该程序合成器120被配置成执行本公开的所选方面以便自动合成程序,这些程序包括电子表格编程语言中的一个或多个函数,用于使用客户端130-1、......、130-n中的一个或多个客户端创建、修改和/或查看的电子表格。
例如,客户端130-1、......、130-n中的每个客户端都可以是用户计算设备,该用户计算设设备被用户用来经由电子表格应用用户界面访问电子表格应用,诸如SaaS电子表格应用,该应用由电子表格系统110提供,例如通过web浏览器。在示例中,客户端130-1、......、130-n可以是与个人或实体或组织(诸如,企业(例如,金融机构、银行等)、非营利组织、俱乐部、大学、政府机关或使用电子表格应用的任何其他组织)相关联的用户计算设备。例如,企业可以操作电子表格应用来创建、修改和/或查看一个或多个电子表格以管理财务记录、业务记录、客户名单等。
在各种实施方式中,环境100可以包括客户端130-1、......、130-n能够经由计算机网络160或另一个网络访问的电子表格语料库140-1、......、140-n。电子表格语料库140-1、......、140-n中的每个电子表格语料库都可以包括由客户端130-1、......、130-n中的一个或多个客户端,例如,使用电子表格系统110创建的多个电子表格。在示例中,电子表格语料库140-1、......、140-n可以包括由客户端130-1、......、130-n中与特定实体或组织相关联的一个或多个客户端创建、编辑或查看的一组电子表格。
程序合成器120可以被配置成利用输入到电子表格中的一个或多个单元格的数据作为示例,以便帮助客户端130-1、......、130-n自动合成程序,这些程序包括电子表格编程语言中的一个或多个函数以用于电子表格。例如,程序合成器120可以被配置成使包括电子表格编程语言中的一个或多个函数的程序能够自动合成,而不需要任何人为干预,并且可选地经由电子表格应用用户界面将自动合成的程序的输出呈现给客户端130-1、......、130-n的用户,以及可选地将自动合成的程序本身呈现给客户端130-1、......、130-n的用户,以便经由电子表格应用用户界面进行检查和/或编辑。
在各种实施方式中,环境100可以包括存储能够由客户端130-1、......、130-n和/或电子表格系统110的程序合成器120经由计算机网络160或另一个网络访问的数据的外部数据源150-1、......、150-m。在实施方式中,外部数据源150-1、......、150-m中的数据可以用作由程序合成器120自动合成的程序的输入。
图2是图示了根据本文公开的实施方式的自动合成包括电子表格编程语言中的一个或多个函数的程序的示例方法200的流程图。为了方便起见,流程图的操作是参照执行操作的系统来描述的。这种系统可以包括各种计算机系统的各种组件,诸如电子表格系统110的一个或多个组件。此外,虽然方法200的操作是按特定顺序示出的,但是这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在框205处,系统可以接收电子表格中的第一单元格中的第一用户输入。在实施方式中,在框205处,电子表格系统110的程序合成器120可以接收电子表格中的第一单元格中的第一用户输入。在示例中,响应于用户经由在客户端130-1、......、130-n中的一个客户端上显示的电子表格应用用户界面提供姓氏作为电子表格中的第一单元格(例如,B2)中的输入,电子表格系统110的程序合成器120可以接收姓氏(例如,“LastNameOne”)作为第一用户输入。
仍然参照图2,在框210处,系统可以使用第一单元格中的第一用户输入作为第一示例来自动合成程序。在实施方式中,在框210处,电子表格系统110的程序合成器120可以使用在框205处接收到的第一单元格中的第一用户输入作为第一示例来自动合成程序。在实施方式中,程序合成器120可以使用基于动态编程的搜索算法来自动合成程序。在实施方式中,由程序合成器120自动合成的程序包括电子表格编程语言中的一个或多个函数,并且当程序被执行时,该程序生成与第一示例匹配的输出。
仍然参照框210,在实施方式中,自动合成的程序在执行时可以使用电子表格中的一个或多个数据源单元格中存储的数据和/或来自外部数据源150-1、......、150-m中的一个或多个外部数据源的数据作为程序输入数据。例如,当自动合成程序时,程序合成器120可以从外部数据源150-1、......、150-m中的一个或多个外部数据源获得程序输入数据,然后将程序输入数据用作程序的输入(例如,作为程序中使用的电子表格编程语言中的一个或多个函数的输入)。在实施方式中,外部数据源150-1、......、150-m可以包括企业知识库、数据库、其他电子表格和/或任何其他数据源。在实施方式中,外部数据源150-1、......、150-m可以包括在外部数据源映射中,该外部数据源映射与电子表格相关联并且包括对外部数据源150-1、......、150-m的引用(例如,路径、统一资源定位符、链接等)。在实施方式中,程序合成器120可以使用基于采样的搜索技术来处理非常大的表和知识库。
继续前面的示例,在框210处,电子表格系统110的程序合成器120可以自动合成程序,该程序生成与在框205处作为第一用户输入(“LastNameOne”)接收到的姓氏匹配的输出。程序可以在与对应于第一用户输入的第一单元格相同的行中使用电子表格中的另一个单元格中存储的数据,例如,列(例如,列A)中存储全名的单元格(例如,单元格A2)中存储的数据,作为程序输入数据。在示例中,程序输入数据“FirstNameOne LastNameOne”可以存储在单元格A2中。
在示例中,在框210处由程序合成器120合成的程序可以是这样一种程序,该程序使用电子表格编程语言中的返回字符串的长度的“LEN”函数、电子表格编程语言中的返回在文本中第一次找到字符串的位置的“FIND”函数以及电子表格编程语言中的从指定字符串的结尾返回子字符串的“RIGHT”函数。例如,在框210处自动合成的程序可以是RIGHT(A2,LEN(A2)-FIND("",A2)),其可以被泛化为RIGHT(A[当前行],LEN(A[当前行])-FIND("",[当前行]))。当程序被执行时,使用“FirstNameOne LastNameOne”作为程序输入数据,返回“LastNameOne”作为输出,因此,程序生成与第一示例匹配的输出。
仍然参照框210,在其他实施方式中,电子表格系统110的程序合成器120可以根据以下描述的图3的方法300自动合成程序。
仍然参照图2,在框215处,系统可以确定电子表格中与第一单元格相关的(多个)附加单元格。在实施方式中,在框220处,电子表格系统110的程序合成器120可以确定电子表格中与第一单元格相关的一个或多个附加单元格,在框205处,第一用户输入是从该第一单元格接收的。
仍然参照框215,在实施方式中,程序合成器120可以基于作为第一单元格被包括在电子表格中的特定表的相同列中的单元格来确定一个或多个附加单元格。在其他实施方式中,程序合成器120可以基于作为第一单元格被包括在电子表格中的特定表的相同行中的单元格来确定一个或多个附加单元格。在其他实施方式中,程序合成器120可以使用任何其他准则(例如,电子表格中的列或行的标题或标签、现有数据等)来确定与第一单元格相关的一个或多个附加单元格。
仍然参照图2,在框220处,系统可以确定显示触发条件是否得到满足。在实施方式中,在框220处,电子表格系统110的程序合成器120可以确定显示触发条件是否得到满足。
仍然参照框220,在实施方式中,程序合成器120能够基于确定在框210处自动合成的程序的复杂性级别满足复杂性阈值来确定显示触发条件得到满足。在其他实施方式中,程序合成器120可以确定与在框210处自动合成的程序相关联的置信度分数,并且程序合成器120能够基于确定与在框210处自动合成的程序相关联的置信度分数超过预定置信度分数来确定显示触发条件得到满足。在其他实施方式中,显示触发条件可以是基于输入字符串(例如,程序输入数据)的复杂性级别和/或输出的复杂性级别(例如,如果输入字符串和/或输出过于复杂,则显示触发条件可能没有得到满足)。
仍然参照框220,如果电子表格系统110的程序合成器120确定显示触发条件得到满足,则流程进行到框240。另一方面,如果电子表格系统110的程序合成器120确定显示触发条件没有得到满足,则流程进行到框225。
仍然参照图2,在框225处,系统可以确定可用性警报触发条件是否得到满足。在实施方式中,在框225处,电子表格系统110的程序合成器120可以确定可用性警报触发条件是否得到满足。
仍然参照框225,在实施方式中,电子表格系统110的程序合成器120能够基于上面关于框220的描述确定的置信度分数来确定可用性警报触发条件是否得到满足。在实施方式中,如果程序合成器120在框220处确定置信度分数不超过预定置信度阈值,但是在框225处确定置信度分数超过低于预定置信度阈值的最小置信度阈值,则程序合成器120能够确定可用性警报触发条件得到满足。
仍然参照框225,如果电子表格系统110的程序合成器120确定可用性警报触发条件得到满足,则流程进行到框230。另一方面,如果电子表格系统110的程序合成器120确定可用性警报触发条件没有得到满足,则流程结束。
仍然参照图2,在框230处,系统可以在与电子表格相关联的用户界面中显示自动合成的程序的可用性的指示。在实施方式中,在框230处,电子表格系统110的程序合成器120可以在客户端130-1、......、130-n中与电子表格相关联的一个客户端上显示的电子表格应用用户界面中显示在框210处自动合成的程序的可用性的指示。在实施方式中,自动合成的程序的可用性的指示可以是图标、图形、动画、提示、对话框、工具提示、按钮或能够在客户端130-1、......、130-n中的一个客户端上的电子表格应用用户界面中显示的任何其他可视指示符。
仍然参照图2,在框235处,系统可以确定是否接收到显示自动合成的程序的请求。在实施方式中,在框235处,电子表格系统110的程序合成器120可以确定是否接收到显示自动合成的程序的请求。
仍然参照框235,在实施方式中,如果用户响应于在框230处显示程序的可用性的指示而选择按钮或输入键盘快捷键,则程序合成器120可以确定在框235处接收到显示自动合成的程序的请求,然后流程进行到框240。另一方面,如果用户没有响应于在框230处显示程序的可用性的指示而选择按钮或输入键盘快捷键,则程序合成器120可以确定在框235处没有接收到显示自动合成的程序的请求,然后流程结束。
仍然参照图2,在框240处,系统可以在(多个)附加单元格中显示与(多个)附加单元格对应的程序的输出。在实施方式中,在框240处,电子表格系统110的程序合成器120可以使客户端130-1、......、130-n中的一个客户端上的电子表格应用用户界面在框215处确定的一个或多个附加单元格中的每一个单元格中,显示与附加单元格对应的在框210处自动合成的程序的输出。
继续先前的示例,程序合成器120可以在框215处确定单元格B4和B5是附加单元格。单元格A4可以存储程序输入数据“F3 L3”,并且单元格A5可以存储程序输入数据“FourFFourL”。在示例中,在框240处,电子表格系统110的程序合成器120可以执行在框210处自动合成的程序RIGHT(A[当前行],LEN(A[当前行])-FIND("",[当前行])),以获得与附加单元格B4对应的输出“L3”(使用单元格A4作为程序输入数据)和与附加单元格B5对应的输出“FourL”(使用单元格A5作为程序输入数据)。
仍然参照框240,在实施方式中,程序合成器120可以使用与用于显示第一单元格中的第一用户输入的字体、样式或颜色不同的字体、样式或颜色使程序的输出被显示在一个或多个附加单元格中。在其他实施方式中,程序合成器120可以使包括字体、样式和颜色的第一字体外观用于显示第一单元格中的用户输入(例如,在客户端130-1、......、130-n中的一个客户端上的电子表格应用用户界面中),并且程序合成器120可以使用与第一字体外观不同的第二字体外观使程序的输出被显示在一个或多个附加单元格中(例如,在客户端130-1、......、130-n中的一个客户端上的电子表格应用用户界面中)。
仍然参照图2,在框245处,系统可以在与电子表格相关联的用户界面中显示请求用户接受或拒绝程序的提示。在实施方式中,在框245处,电子表格系统110的程序合成器120可以使客户端130-1、......、130-n中的一个客户端上的电子表格应用用户界面显示请求用户接受或拒绝在框210处自动合成的程序的提示。
仍然参照框245,在实施方式中,提示可以是请求用户接受或拒绝在框210处自动合成的程序的任何可视指示符。提示可以包括以下一项或多项:图标、图形、动画、工具提示、按钮或能够在客户端130-1、......、130-n中的一个客户端上的电子表格应用用户界面中显示的任何其他可视指示符。提示可以可选地显示自动合成的程序(例如,RIGHT(A[当前行],LEN(A[当前行])-FIND("",[当前行])))。
仍然参照图2,在框250处,系统可以确定是否从用户接收到程序的接受。在实施方式中,在框250处,电子表格系统110的程序合成器120可以响应于选择在框245处显示的提示中包括的用户界面元件(例如,经由客户端130-1、......、130-n中的一个客户端上的电子表格应用用户界面)或响应于键盘快捷键的输入(例如,经由客户端130-1、......、130-n中的一个客户端)来确定是否从用户接收到在框210处自动合成的程序的接受。
仍然参照框250,在实施方式中,如果用户响应于在框245处显示提示而选择特定按钮(例如,提示中包括的“好的”或“接受”按钮)或输入第一键盘快捷键,则程序合成器120可以在框250处确定从用户接收到程序的接受,然后,流程进行到框265。另一方面,如果用户响应于在框245处显示提示而选择另一个按钮(例如,提示中包括的“取消”或“拒绝”按钮)或输入第二键盘快捷键,则程序合成器120可以在框250处确定没有从用户接收到程序的接受(即,程序合成器120可以在框250处确定从用户接收到程序的拒绝),然后,流程进行到框255。
仍然参照图2,在框255处,系统可以维持第一单元格中的第一用户输入,并且停止在(多个)附加单元格中显示与(多个)附加单元格对应的程序的输出。在实施方式中,在框255处,响应于在框250处从用户接收到自动合成的程序的拒绝,电子表格系统110的程序合成器120可以维持在第一单元格中的第一用户输入(在框205处接收的),并且停止在一个或多个附加单元格(在框215处确定的)中显示(在框240处发起的)与附加单元格对应的程序的输出。
仍然参照图2,在框260处,系统可以响应于从用户接收到程序的拒绝而修改显示触发条件。在实施方式中,在框260处,电子表格系统110的程序合成器120可以响应于在框250处从用户接收到自动合成的程序的拒绝而修改显示触发条件(例如,使用机器学习技术)。
仍然参照图2,在框265处,系统可以通过将程序与第一单元格关联存储来替换第一用户输入,并且将程序与(多个)附加单元格关联存储。在实施方式中,在框265处,响应于在框250处从用户接收到自动合成的程序的接受,电子表格系统110的程序合成器120可以通过将在框210处自动合成的程序与第一单元格关联存储来替换第一用户输入(在框205处接收的),并且将自动合成的程序与一个或多个附加单元格(在框215处确定的)关联存储。附加地,在实施方式中,在框265处,程序合成器120可以可选地响应于从用户接收到程序的接受而修改框220处使用的显示触发条件(例如,使用机器学习技术)。
仍然参照框265,在实施方式中,当程序合成器120可以用自动合成的程序替换第一单元格中的第一用户输入时,在第一单元格中(例如,在客户端130-1、......、130-n上显示的用户界面上)显示的值可以保持不变,因为自动合成的程序的输出与先前在第一单元格中提供(例如,由用户)的第一用户输入匹配。继续先前的示例,程序合成器120可以用自动合成的程序RIGHT(A[当前行],LEN(A[当前行])-FIND("",A[当前行]))来替换第一单元格(例如,B2,其是与在框205处接收到的第一用户输入相关联的单元格)中的第一用户输入(“LastNameOne”)。当用自动合成的程序RIGHT(A[当前行],LEN(A[当前行])-FIND("",A[当前行]))替换第一单元格(即,B2)中提供的输入“LastNameOne”时,在示例中,这个程序可以输出“LastNameOne”,因此,在第一单元格中显示的值可以保持不变。
仍然参照框265,在实施方式中,在框250处从用户接收到程序的接受之后,程序合成器120可以使用第一字体外观(即,用于显示第一单元格中的用户输入的相同字体、样式和颜色(例如,在客户端130-1、......、130-n中的一个客户端上的电子表格应用用户界面中))使程序的输出被显示在一个或多个附加单元格中。
仍然参照图2,在框270处,系统可以接收对电子表格中的单元格的选择。在实施方式中,在框270处,电子表格系统110的程序合成器120可以接收对电子表格中的一个单元格(例如,第一单元格)的选择(例如,用户经由客户端130-1、......、130-n中的一个客户端上的电子表格应用用户界面做出的选择),在框265处,将自动合成的程序与该单元格关联存储。
仍然参照图2,在框275处,系统可以在与电子表格相关联的用户界面中的公式栏中显示程序。在实施方式中,在框275处,电子表格系统110的程序合成器120可以在客户端130-1、......、130-n中的一个客户端上的电子表格应用用户界面中的公式栏中显示与在框270处选择的单元格关联存储的自动合成的程序。
仍然参照图2,在框280处,系统可以从用户接收对在公式栏中显示的程序的编辑。在实施方式中,在框280处,电子表格系统110的程序合成器120可以从用户(例如,经由客户端130-1、......、130-n中的一个客户端上的电子表格应用用户界面)接收对在框275处在公式栏中显示的自动合成的程序的编辑。
仍然参照图2,在框285处,系统可以将对程序的编辑与所选单元格关联存储。在实施方式中,在框285处,电子表格系统110的程序合成器120可以将对在框280处接收到的自动合成的程序的编辑与在框270处所选的单元格(例如,第一单元格)关联存储。
图3是图示了根据本文公开的实施方式的自动合成包括电子表格编程语言中的一个或多个函数的程序的示例方法300的流程图。为了方便起见,流程图的操作是参照执行操作的系统来描述的。这种系统可以包括各种计算机系统的各种组件,诸如电子表格系统110的一个或多个组件。此外,虽然方法300的操作是按特定顺序示出的,但是这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在框310处,系统可以基于接收到第一单元格中的第一用户输入来确定合成触发条件是否得到满足。在实施方式中,在框310处,电子表格系统110的程序合成器120可以基于接收到第一单元格中的第一用户输入来确定合成触发条件是否得到满足(例如,如上面相对于图2的框205描述的)。如果电子表格系统110的程序合成器120基于接收到第一单元格中的第一用户输入而确定合成触发条件得到满足,则流程进行到框320。另一方面,如果电子表格系统110的程序合成器120基于接收到第一单元格中的第一用户输入而确定合成触发条件没有得到满足,则流程进行到框330。
仍然参照图3,在框320处,系统可以使用第一单元格中的第一用户输入作为第一示例来自动合成程序。在实施方式中,在框320处,电子表格系统110的程序合成器120可以使用在框205处接收到的第一单元格中的第一用户输入作为第一示例来自动合成程序。在实施方式中,程序合成器120可以使用基于动态编程的搜索算法来自动合成程序。在实施方式中,由程序合成器120自动合成的程序包括电子表格编程语言中的一个或多个函数,并且当程序被执行时,该程序生成与第一示例匹配的输出。
仍然参照图3,在框330处,系统可以接收电子表格中的第二单元格中的第二用户输入。在实施方式中,在框330处,电子表格系统110的程序合成器120可以接收电子表格中的第二单元格中的第二用户输入。在示例中,响应于用户经由在客户端130-1、......、130-n中的一个客户端上显示的电子表格应用用户界面提供姓氏作为电子表格中的第二单元格(例如,B3)中的输入,电子表格系统110的程序合成器120可以接收姓氏(例如,“LNTwo”)作为第二用户输入。
仍然参照图3,在框340处,系统可以进一步基于接收到第二单元格中的第二用户输入来确定合成触发条件是否得到满足。在实施方式中,在框340处,电子表格系统110的程序合成器120可以进一步基于在框330处接收到第二单元格中的第二用户输入来确定合成触发条件是否得到满足。如果电子表格系统110的程序合成器120进一步基于接收到第二单元格中的第二用户输入来确定合成触发条件得到满足,则流程进行到框350。另一方面,如果电子表格系统110的程序合成器120进一步基于接收到第二单元格中的第二用户输入来确定合成触发条件没有得到满足,则流程进行到框360。
仍然参照图3,在框350处,系统可以使用第一单元格中的第一用户输入作为第一示例和使用第二单元格中的第二用户输入作为第二示例来自动合成程序。在实施方式中,在框350处,电子表格系统110的程序合成器120可以使用在框205处接收到的第一单元格中的第一用户输入作为第一示例和使用在框330处接收到的第二单元格中的第二用户输入作为第二示例来自动合成程序。在实施方式中,程序合成器120可以使用基于动态编程的搜索算法来自动合成程序。在实施方式中,由程序合成器120自动合成的程序包括电子表格编程语言中的一个或多个函数,并且当程序被执行时,该程序生成与第一示例匹配的输出和与第二示例匹配的输出。
仍然参照图3,在框360处,系统可以接收电子表格中的附加单元格中的附加用户输入。在实施方式中,在框360处,电子表格系统110的程序合成器120可以接收电子表格中的附加单元格中的附加用户输入,例如,经由在客户端130-1、......、130-n中的一个客户端上显示的电子表格应用用户界面。
仍然参照图3,在框370处,系统可以进一步基于接收到附加单元格中的附加用户输入来确定合成触发条件是否得到满足。在实施方式中,在框370处,电子表格系统110的程序合成器120可以进一步基于在框360处接收到附加单元格中的附加用户输入来确定合成触发条件是否得到满足。如果电子表格系统110的程序合成器120进一步基于接收到附加单元格中的附加用户输入来确定合成触发条件得到满足,则流程进行到框380。另一方面,如果电子表格系统110的程序合成器120进一步基于接收到附加单元格中的附加用户输入来确定合成触发条件没有得到满足,则流程进行到框360。
仍然参照图3,在框380处,系统可以使用第一单元格中的第一用户输入作为第一示例、使用第二单元格中的第二用户输入作为第二示例和使用(多个)附加单元格中的(多个)附加用户输入作为(多个)附加示例来自动合成程序。在实施方式中,在框380处,电子表格系统110的程序合成器120可以使用在框205处接收到的第一单元格中的第一用户输入作为第一示例、使用在框330处接收到的第二单元格中的第二用户输入作为第二示例和使用在框360处接收到的(多个)附加单元格中的(多个)附加用户输入作为(多个)附加示例来自动合成程序。在实施方式中,程序合成器120可以使用基于动态编程的搜索算法来自动合成程序。在实施方式中,由程序合成器120自动合成的程序包括电子表格编程语言中的一个或多个函数,并且当程序被执行时,该程序生成与第一示例匹配的输出、与第二示例匹配的输出和与(多个)附加示例匹配的(多个)输出。
图4是图示了根据本文公开的实施方式的自动合成包括电子表格编程语言中的一个或多个函数的程序的示例方法400的流程图。为了方便起见,流程图的操作是参照执行操作的系统描述的。这种系统可以包括各种计算机系统的各种组件,诸如电子表格系统110的一个或多个组件。此外,虽然方法400的操作是按特定顺序示出的,但是这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在框410处,系统可以接收电子表格中的第一单元格中的第一用户输入。在实施方式中,在框410处,电子表格系统110的程序合成器120可以接收电子表格中的第一单元格中的第一用户输入。在实施方式中,第一用户输入可以包括电子表格编程语言中的至少一个函数。在示例中,响应于用户经由客户端130-1、......、130-n中的一个客户端上显示的电子表格应用用户界面提供公式或程序作为电子表格中的第一单元格(例如,B2)中的输入,电子表格系统110的程序合成器120可以接收包括电子表格编程语言中的一个或多个函数的公式或程序,例如RIGHT(A2,LEN(A2)-FIND("",A2)),作为第一用户输入。
仍然参照图4,在框420处,系统可以基于接收到第一单元格中的第一用户输入来确定显示触发条件是否得到满足。在实施方式中,在框420处,电子表格系统110的程序合成器120可以基于在框410处接收到第一单元格中的第一用户输入来确定显示触发条件是否得到满足。在实施方式中,如果电子表格系统110的程序合成器120基于接收到第一单元格中的第一用户输入来确定显示触发条件得到满足,则流程进行到框430。另一方面,如果电子表格系统110的程序合成器120基于接收到第一单元格中的第一用户输入来确定显示触发条件没有得到满足,则流程结束。
仍然参照框420,在实施方式中,显示触发条件可以是提供第一用户输入花费的阈值时间量(例如,由用户)。在其他实施方式中,显示触发条件可以是超过自动合成的程序的复杂性级别的第一用户输入的复杂性级别。
仍然参照图4,在框430处,系统可以在与电子表格相关联的用户界面中显示提示,该提示提供选项以基于示例用电子表格编程语言自动合成程序。在实施方式中,在框430处,响应于在框420处确定显示触发条件得到满足,电子表格系统110的程序合成器120可以在与电子表格相关联的用户界面中显示提示,该提示提供选项以基于示例用电子表格编程语言自动合成程序,其中,程序在被执行时生成与示例匹配的输出。
仍然参照框430,在实施方式中,提示可以是任何可视指示符,该指示符请求用户接受或拒绝基于示例用电子表格编程语言自动合成程序的选项。提示可以包括以下一项或多项:图标、图形、动画、工具提示、按钮或能够在客户端130-1、......、130-n中的一个客户端上的电子表格应用用户界面中显示的任何其他可视指示符。
仍然参照图4,在框440处,系统可以确定是否从用户接收到自动合成程序的选项的接受。在实施方式中,在框440处,电子表格系统110的程序合成器120可以响应于选择提示中包括的用户界面元件(例如,经由客户端130-1、......、130-n中的一个客户端上的电子表格应用用户界面)或响应于键盘快捷键的输入(例如,经由客户端130-1、......、130-n中的一个客户端)来确定是否从用户接收到自动合成程序的选项的接受。
仍然参照框440,在实施方式中,如果用户响应于在框430处显示提示而选择特定按钮(例如,提示中包括的“好的”或“接受”按钮)或输入第一键盘快捷键,则程序合成器120可以在框440处确定从用户接收到自动合成程序的选项的接受,然后,流程进行到框450。另一方面,如果用户响应于在框430处显示提示而选择另一个按钮(例如,提示中包括的“取消”或“拒绝”按钮)或输入第二键盘快捷键,则程序合成器120可以在框440处确定没有从用户接收到自动合成程序的选项的接受(即,程序合成器120可以在框440处确定从用户接收到自动合成程序的选项的拒绝),然后,流程结束。
仍然参照图4,在框450处,系统可以用电子表格编程语言自动合成程序。在实施方式中,在框450处,电子表格系统110的程序合成器120可以使用基于在框410处接收到的第一用户输入而生成的电子表格中的第一单元格的结果值(例如,通过评估公式或执行程序)作为示例,用电子表格编程语言自动合成程序,例如,如相对于图2的框210所描述的。在实施方式中,由程序合成器120自动合成的程序包括电子表格编程语言中的一个或多个函数,并且当程序被执行时,该程序生成与示例匹配的输出。
仍然参照框450,在示例中,如果在框410处接收到程序RIGHT(A2,LEN(A2)-FIND("",A2))作为第一用户输入,则当程序被执行时,使用“FirstNameOne LastNameOne”作为程序输入数据,返回“LastNameOne”作为输出。电子表格系统110的程序合成器120可以使用结果值“LastNameOne”作为示例,用电子表格编程语言自动合成程序。在示例中,由程序合成器120自动合成的程序在被执行时生成与“LastNameOne”匹配的输出。
仍然参照图4,在框460处,系统可以通过将程序与第一单元格关联存储来替换第一用户输入。在实施方式中,在框460处,响应于在框440处接收到自动合成程序的选项的接受,以及可选地,进一步响应于接收到在框450处自动合成的程序的接受,电子表格系统110的程序合成器120可以通过将在框450处自动合成的程序与第一单元格关联存储来替换第一用户输入。
图5是图示了根据本文公开的实施方式的自动合成包括电子表格编程语言中的一个或多个函数的程序的示例方法500的流程图。为了方便起见,流程图的操作是参照执行操作的系统来描述的。这种系统可以包括各种计算机系统的各种组件,诸如电子表格系统110的一个或多个组件。此外,虽然方法500的操作是按特定顺序示出的,但是这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在框505处,系统可以接收电子表格中的第一单元格中的第一用户输入。在实施方式中,在框505处,电子表格系统110的程序合成器120可以接收电子表格中的第一单元格中的第一用户输入。
仍然参照图5,在框510处,系统可以确定显示触发条件是否得到满足。在实施方式中,在框510处,响应于在框505处接收到第一单元格中的第一用户输入,电子表格系统110的程序合成器120可以确定显示触发条件是否得到满足。在实施方式中,显示触发条件可以是基于用户反馈和先前与电子表格的用户交互。如果电子表格系统110的程序合成器120确定显示触发条件得到满足,则流程进行到框535。另一方面,如果电子表格系统110的程序合成器120确定显示触发条件没有得到满足,则流程进行到框515。
仍然参照图5,在框515处,系统可以接收电子表格中的第二单元格中的第二用户输入。在实施方式中,在框515处,电子表格系统110的程序合成器120可以接收电子表格中的第二单元格中的第二用户输入。
仍然参照图5,在框520处,系统可以确定显示触发条件是否得到满足。在实施方式中,在框520处,响应于在框515处接收到第二单元格中的第二用户输入,电子表格系统110的程序合成器120可以确定显示触发条件是否得到满足。如果电子表格系统110的程序合成器120确定显示触发条件得到满足,则流程进行到框535。另一方面,如果电子表格系统110的程序合成器120确定显示触发条件没有得到满足,则流程进行到框525。
仍然参照图5,在框525处,系统可以接收电子表格中的附加单元格中的附加用户输入。在实施方式中,在框525处,电子表格系统110的程序合成器120可以接收电子表格中的附加单元格中的附加用户输入。
仍然参照图5,在框530处,系统可以确定显示触发条件是否得到满足。在实施方式中,在框530处,响应于在框525处接收到附加单元格中的附加用户输入,电子表格系统110的程序合成器120可以确定显示触发条件是否得到满足。如果电子表格系统110的程序合成器120确定显示触发条件得到满足,则流程进行到框535。另一方面,如果电子表格系统110的程序合成器120确定显示触发条件没有得到满足,则流程返回框525。
仍然参照图5,在框535处,系统可以自动合成程序。在实施方式中,在框535处,电子表格系统110的程序合成器120可以使用在框505处接收到的第一单元格中的第一用户输入作为第一示例,以及可选地使用第二单元格中的第二用户输入作为第二示例(即,如果在框515处接收到第二用户输入)和使用附加用户输入作为附加示例(即,如果在框525处接收到附加用户输入)来自动合成程序。在实施方式中,由程序合成器120自动合成的程序包括电子表格编程语言中的一个或多个函数,并且当程序被执行时,该程序生成与第一示例匹配的第一输出,以及可选地生成与第二示例匹配的第二输出(即,如果在框515处接收到第二用户输入)以及与附加示例匹配的附加输出(即,如果在框525中接收到附加用户输入)。
仍然参照图5,在框540处,系统可以确定与第一单元格和第二单元格相关的(多个)附加单元格。在实施方式中,在框540处,电子表格系统110的程序合成器120可以确定与第一单元格和第二单元格相关的一个或多个附加单元格(如果在框515处接收到第二用户输入)。
仍然参照图5,在框545处,系统可以在(多个)附加单元格中显示与(多个)附加单元格对应的程序的输出。在实施方式中,在框545处,响应于在框520处确定显示触发条件得到满足,电子表格系统110的程序合成器120可以在一个或多个附加单元格中显示与一个或多个附加单元格对应的程序的输出。
仍然参照图5,在框550处,系统可以接收对电子表格中的单元格的选择。在实施方式中,在框550处,电子表格系统110的程序合成器120可以接收对电子表格中的单元格(例如,第一单元格)的选择。
仍然参照图5,在框555处,系统可以在与电子表格相关联的用户界面中的公式栏中显示程序。在实施方式中,在框555处,电子表格系统110的程序合成器120可以在客户端130-1、......、130-n中的一个客户端上的电子表格应用用户界面中的公式栏中显示与在框550处选择的单元格(例如,第一单元格)关联存储的自动合成的程序。
仍然参照图5,在框560处,系统可以从用户接收对在公式栏中显示的程序的编辑。在实施方式中,在框560处,电子表格系统110的程序合成器120可以从用户接收对在公式栏中显示的程序的编辑。
仍然参照图5,在框565处,系统可以将对程序的编辑与所选单元格关联存储。在实施方式中,在框565处,电子表格系统110的程序合成器120可以将对程序的编辑与所选单元格(例如,第一单元格)关联存储。
图6描绘了如何可以自动合成包括电子表格编程语言中的一个或多个函数的程序的示例。在底部,描绘了图形用户界面(“GUI”)600,它可以被电子表格应用用户用于查看、创建或编辑电子表格(例如,“电子表格1”)。在该示例中,电子表格1包括全名列(A)和姓氏列(B)。全名列可以包括各种全名。
在一些实施方式中,响应于用户将数据(例如,诸如“LastNameOne”的姓氏)输入到第二行620中的姓氏列(B)中,电子表格系统110的程序合成器120可以接收电子表格中的第一单元格(B2)中的第一用户输入(例如,如相对于图2的框205描述的)。附加地,在一些实施方式中,响应于用户将数据(例如,诸如“LNTwo”的姓氏)输入到第三行630中的姓氏列(B)中,电子表格系统110的程序合成器120可以接收电子表格中的第二单元格(B3)中的第二用户输入(例如,如相对于图3的框330描述的)。
仍然参照图6,在一些实施方式中,电子表格系统110的程序合成器120可以自动合成程序(例如,如相对于图2的框210描述的),并且确定电子表格中的第三行640中的附加单元格B4和电子表格中的第四行650中的附加单元格B5与第一单元格相关(例如,如相对于图2的框215描述的)。在一些实施方式中,响应于确定显示触发条件得到满足(例如,如相对于图2的框220描述的),电子表格系统110的程序合成器120可以在电子表格中的第三行640中的附加单元格B4中和在电子表格中的第四行650中的附加单元格B5中显示自动合成的程序的输出。在实施方式中,电子表格系统110的程序合成器120使自动合成的程序的输出“L3”在电子表格的第三行640中的单元格B4中显示,并且使输出“FourL”在电子表格的第四行650中的单元格B5中显示,这些输出均以与用于在单元格B2中显示第一用户输入(“LastNameOne”)和在单元格B3中显示第二用户输入(“LNTwo”)的字体样式(例如,规则的)不同的字体样式(例如,斜体)显示。
仍然参照图6,在一些实施方式中,电子表格系统110的程序合成器120可以在GUI600中显示请求用户接受或拒绝自动合成的程序的提示660。响应于从用户接收到程序的接受,例如,通过用户选择GUI 600中显示的提示660中的“是”按钮,电子表格系统110的程序合成器120可以将自动合成的程序与电子表格中的单元格B2、B3、B4和B5关联存储(例如,如相对于图2的框265描述的)。在实施方式中,响应于接收到对单元格(诸如,电子表格的第二行630中的单元格B3)的选择,可以在GUI 600中的公式栏610中显示与单元格关联存储的自动合成的程序(例如,=Right(A3,LEN(A3)–FIND(““,A3)))。
图6的场景仅仅是为了说明的目的。对于任意数量的应用,可以使用本文描述的技术自动合成程序。
图7是可以可选地用于执行本文描述的技术的一个或多个方面的示例计算设备710的框图。计算设备710通常包括经由总线子系统712与多个外围设备进行通信的至少一个处理器714。这些外围设备可以包括存储子系统724(例如,包括存储器子系统725和文件存储子系统726)、用户界面输出设备720、用户界面输入设备722和网络接口子系统716。输入设备和输出设备允许与计算设备710的用户交互。网络接口子系统716将接口提供给外部网络并且耦合到其他计算设备中的相应接口设备。
用户界面输入设备722可以包括键盘、定点设备(诸如鼠标、轨迹球、触摸板或图形输入板)、扫描仪、并入显示器中的触摸屏、音频输入设备(诸如话音识别系统、麦克风和/或其他类型的输入设备)。一般而言,术语“输入设备”的使用旨在包括将信息输入到计算设备710中或输入通信网络上的所有可能类型的设备和方式。
用户界面输出设备720可以包括显示子系统、打印机、传真机或非视觉显示器,诸如音频输出设备。显示子系统可以包括阴极射线管(CRT)、平板设备(诸如液晶显示器(LCD))、投影设备或用于创建可视图像的一些其他机制。显示子系统还可以提供非视觉显示器,诸如经由音频输出设备。一般而言,术语“输出设备”的使用旨在包括将来自计算设备710的信息输出给用户或另一个机器或计算设备的所有可能类型的设备和方式。
存储子系统724存储提供本文描述的一些或全部模块的功能的编程和数据结构。例如,存储子系统724可以包括逻辑以执行图2、图3、图4和图5的方法的所选方面,以及实施图1中所描绘的各个组件。
这些软件模块通常由处理器714单独或与其他处理器结合执行。存储子系统724中包括的存储器子系统725能够包括多个存储器,其包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)730以及存储有固定指令的只读存储器(ROM)732。文件存储子系统726能够针对程序和数据文件提供永久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、CD-ROM驱动器、光盘驱动器或可移动介质墨盒。实施某些实施方式的功能性的模块可以由文件存储子系统726存储在存储子系统724中或在可由(多个)处理器714访问的其他机器中。
总线子系统712提供用于使计算设备710的各个组件和子系统都按照预期彼此通信的机制。虽然总线子系统712被示意性地示出为单条总线,但是总线子系统的替代实施方式可以使用多条总线。
计算设备710可以有各种类型,其包括工作站、服务器、计算集群、刀片式服务器、服务器群或任何其他数据处理系统或计算设备。由于计算机和网络的性质多变,所以为了说明一些实施方式的目的,图7所示的计算设备710的描述仅作为具体示例。计算设备710的许多其他配置可能具有比图7所示的计算设备更多或更少的组件。
通过提供自动合成程序的方法和系统,实施方式可以解决由于过多的数据输入、客户端设备使用以及相同数据在电子表格中多个位置的复制而产生的问题。具体地,一些实施方式可以通过提供自动合成程序的方法和系统来改进计算机的功能,该程序包括电子表格编程语言中的至少一个函数,并且在被执行时生成与一个或多个用户提供的输出示例匹配的输出。因此,通过使用改进与计算机相关的技术的规则,实施方式允许计算机执行先前不能由计算机执行的功能性。附加地,实施方式使用根据定义植根于计算机技术的技术(例如,电子表格编程语言、电子表格用户界面、机器学习技术等)。
虽然若干实施方式在本文中进行了描述和说明,但是用于执行功能和/或获得本文描述的一个或多个优点的各种其他装置和/或结构都可以被利用,并且每种这样的变化和/或修改都被认为是在本文描述的实施方式的范围内。更一般而言,本文描述的所有参数、大小、材料和配置都意味着是示例性的,并且实际参数、大小、材料和/或配置会取决于使用了一个/多个教导的一个或多个具体应用。本领域的技术人员将认识到或能够确定仅仅使用了常规实验、本文描述的具体实施方式的许多等同物。因此,要理解,前述实施方式仅以举例的方式呈现,并且在所附权利要求书以及其等同物的范围内,可以实践除具体描述和要求保护的实施方式之外的实施方式。本公开的实施方式涉及本文描述的各种单独特征、系统、物品、材料、套件和/或方法。另外,如果这些特征、系统、物品、材料、套件和/或方法并非相互矛盾,则两个或两个以上这样的特征、系统、物品、材料、套件和/或方法的任何组合都包括在本公开的范围内。
Claims (23)
1.一种由一个或多个处理器实现的方法,所述方法包括:
接收电子表格中的第一单元格中的第一用户输入;
使用所述第一单元格中的所述第一用户输入作为第一示例来自动合成程序,其中,所述程序包括电子表格编程语言中的至少一个函数,并且当所述程序被执行时,所述程序生成与所述第一示例匹配的输出;
确定所述电子表格中与所述第一单元格相关的至少一个附加单元格;
确定显示触发条件得到满足;以及
响应于确定所述显示触发条件得到满足,在所述至少一个附加单元格中的每个单元格中显示与所述附加单元格对应的所述程序的输出。
2.根据权利要求1所述的方法,其中,确定所述显示触发条件得到满足包括确定自动合成的所述程序的复杂性级别满足复杂性阈值。
3.根据权利要求1或权利要求2所述的方法,进一步包括确定与自动合成的所述程序相关联的置信度分数,
其中,确定所述显示触发条件得到满足包括确定与自动合成的所述程序相关联的所述置信度分数超过预定置信度阈值。
4.根据权利要求3所述的方法,进一步包括:响应于与自动合成的所述程序相关联的所述置信度分数超过最小置信度阈值,但是不超过所述预定置信度阈值,在与所述电子表格相关联的用户界面中显示自动合成的所述程序的可用性的指示。
5.根据前述权利要求中的任一项所述的方法,进一步包括确定合成触发条件得到满足,
其中,自动合成所述程序是响应于确定所述合成触发条件得到满足而执行的。
6.根据权利要求5所述的方法,其中,确定所述合成触发条件得到满足是基于接收所述第一单元格中的所述第一用户输入。
7.根据权利要求6所述的方法,进一步包括接收所述电子表格中的第二单元格中的第二用户输入,
其中:
确定所述合成触发条件得到满足进一步基于接收所述第二单元格中的所述第二用户输入;
自动合成所述程序进一步包括使用所述第二单元格中的所述第二用户输入作为第二示例;以及
所述程序在被执行时进一步生成与所述第二示例匹配的输出。
8.根据前述权利要求中的任一项所述的方法,进一步包括在与所述电子表格相关联的用户界面中的公式栏中显示所述程序。
9.根据权利要求8所述的方法,进一步包括:
从用户接收对所述公式栏中显示的所述程序的编辑;以及
将对所述程序的所述编辑与所述第一单元格关联存储。
10.根据前述权利要求中的任一项所述的方法,其中,所述程序的所述输出是使用与用于显示所述第一单元格中的所述第一用户输入的字体、样式或颜色不同的字体、样式或颜色在所述至少一个附加单元格中显示的。
11.根据前述权利要求中的任一项所述的方法,进一步包括:
在与所述电子表格相关联的用户界面中显示提示,所述提示请求用户接受或拒绝所述程序;
响应于显示所述提示,从所述用户接收所述程序的接受;以及
响应于从所述用户接收所述程序的所述接受,通过将所述程序与所述第一单元格关联存储来替换所述第一用户输入,并且将所述程序与所述至少一个附加单元格中的每个单元格关联存储。
12.根据权利要求11所述的方法,其中,所述程序的所述接受是响应于选择所述提示中包括的用户界面元件或响应于键盘快捷键的输入而被接收的。
13.根据权利要求11所述的方法,其中:
包括字体、样式和颜色的第一字体外观用于显示所述第一单元格中的所述用户输入;
在从所述用户接收所述程序的所述接受之前,使用与所述第一字体外观不同的第二字体外观在所述至少一个附加单元格中显示所述程序的所述输出;以及
在从所述用户接收所述程序的所述接受之后,用所述第一字体外观显示所述程序的所述输出。
14.根据权利要求1至10中的任一项所述的方法,进一步包括:
在与所述电子表格相关联的用户界面中显示提示,所述提示请求用户接受或拒绝所述程序;
响应于显示所述提示,从所述用户接收所述程序的拒绝;以及
响应于从所述用户接收所述程序的所述拒绝,维持所述第一单元格中的所述第一用户输入,并且停止在所述至少一个附加单元格中的每个单元格中显示与所述附加单元格对应的所述程序的所述输出。
15.根据权利要求14所述的方法,进一步包括响应于从所述用户接收所述程序的所述拒绝而修改所述显示触发条件。
16.一种由一个或多个处理器实现的方法,所述方法包括:
接收电子表格中的第一单元格中的第一用户输入,所述第一用户输入包括电子表格编程语言中的至少一个函数;
基于接收所述第一单元格中的所述第一用户输入来确定显示触发条件得到满足;以及
响应于确定所述显示触发条件得到满足,在与所述电子表格相关联的用户界面中显示提示,所述提示提供选项以基于示例用所述电子表格编程语言自动合成程序,其中,所述程序在被执行时生成与所述示例匹配的输出。
17.根据权利要求16所述的方法,其中,所述显示触发条件是提供所述第一用户输入花费的阈值时间量。
18.根据权利要求16或权利要求17所述的方法,其中,所述显示触发条件是超过所述程序的复杂性级别的所述第一用户输入的复杂性级别。
19.根据权利要求16至18中的任一项所述的方法,进一步包括:
响应于显示所述提示,接收自动合成所述程序的所述选项的接受;
使用基于所述第一用户输入生成的所述电子表格中的所述第一单元格中的结果值作为所述示例,用所述电子表格编程语言自动合成所述程序;以及
响应于接收所述接受,通过将所述程序与所述第一单元格关联存储来替换所述第一用户输入,
其中,自动合成所述程序的所述选项的所述接受是响应于选择所述提示中包括的用户界面元件或响应于键盘快捷键的输入而被接收的。
20.一种由一个或多个处理器实现的方法,所述方法包括:
接收电子表格中的第一单元格中的第一用户输入;
响应于接收所述第一单元格中的所述第一用户输入,确定显示触发条件没有得到满足;
接收所述电子表格中的第二单元格中的第二用户输入;
响应于接收所述第二单元格中的所述第二用户输入,确定所述显示触发条件得到满足;
使用所述第一单元格中的所述第一用户输入作为第一示例和使用所述第二单元格中的所述第二用户输入作为第二示例来自动合成程序,其中,所述程序包括电子表格编程语言中的至少一个函数,并且当执行所述程序时,所述程序生成与所述第一示例匹配的第一输出和与所述第二示例匹配的第二输出;
确定与所述第一单元格和所述第二单元格相关的至少一个附加单元格;以及
响应于确定所述显示触发条件得到满足,在所述至少一个附加单元格中的每个单元格中显示与所述附加单元格对应的所述程序的输出。
21.一种包括指令的计算机程序产品,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行根据权利要求1至20中的任一项所述的方法。
22.一种包括指令的计算机可读存储介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行根据权利要求1至20中的任一项所述的方法。
23.一种系统,包括处理器、计算机可读存储器、一个或多个计算机可读存储介质和集中存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令能够执行以执行根据权利要求1至20中的任一项所述的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063036895P | 2020-06-09 | 2020-06-09 | |
US63/036,895 | 2020-06-09 | ||
US17/122,313 | 2020-12-15 | ||
US17/122,313 US20210383060A1 (en) | 2020-06-09 | 2020-12-15 | User interface(s) related to synthesizing programs in a spreadsheet programming language |
PCT/US2021/036585 WO2021252610A1 (en) | 2020-06-09 | 2021-06-09 | User interface(s) related to synthesizing programs in a spreadsheet programming language |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115668204A true CN115668204A (zh) | 2023-01-31 |
Family
ID=78817534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180039225.6A Pending CN115668204A (zh) | 2020-06-09 | 2021-06-09 | 与用电子表格编程语言合成程序相关的(多个)用户界面 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210383060A1 (zh) |
EP (1) | EP4162383A1 (zh) |
CN (1) | CN115668204A (zh) |
WO (1) | WO2021252610A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9563866B2 (en) * | 2009-04-06 | 2017-02-07 | Accenture Global Services Limited | Estimating a computing job complexity |
US10713428B2 (en) * | 2015-11-02 | 2020-07-14 | Microsoft Technology Licensing, Llc | Images associated with cells in spreadsheets |
US10565222B2 (en) * | 2016-09-15 | 2020-02-18 | Oracle International Corporation | Techniques for facilitating the joining of datasets |
US10546055B2 (en) * | 2016-10-20 | 2020-01-28 | Microsoft Technology Licensing, Llc | Join with format modification by example |
US10394815B2 (en) * | 2016-10-20 | 2019-08-27 | Microsoft Technology Licensing, Llc | Join with predictive granularity modification by example |
US10782939B2 (en) * | 2017-08-07 | 2020-09-22 | Microsoft Technology Licensing, Llc | Program predictor |
-
2020
- 2020-12-15 US US17/122,313 patent/US20210383060A1/en active Pending
-
2021
- 2021-06-09 WO PCT/US2021/036585 patent/WO2021252610A1/en unknown
- 2021-06-09 CN CN202180039225.6A patent/CN115668204A/zh active Pending
- 2021-06-09 EP EP21737521.1A patent/EP4162383A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210383060A1 (en) | 2021-12-09 |
EP4162383A1 (en) | 2023-04-12 |
WO2021252610A1 (en) | 2021-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7272818B2 (en) | Creation of an object within an object hierarchy structure | |
US11238242B2 (en) | Generating output for presentation in response to user interface input, where the input and/or the output include chatspeak | |
US8468496B2 (en) | Flexible attribute management in workflow processing systems | |
KR101773574B1 (ko) | 데이터 테이블의 차트 시각화 방법 | |
US20140331179A1 (en) | Automated Presentation of Visualized Data | |
US20240111497A1 (en) | Augmentation of Code Completion and Code Synthesis with Semantic Checking | |
US20240126982A1 (en) | People suggestion in collaborative online text editors | |
US7774755B2 (en) | Quick-creating objects in an application | |
JP2024020411A (ja) | スプレッドシートプログラミング言語においてプログラムを合成すること | |
CN115668204A (zh) | 与用电子表格编程语言合成程序相关的(多个)用户界面 | |
US20240119224A1 (en) | Table cell splitting in an online document editor | |
CN113722577A (zh) | 反馈信息的处理方法、装置、设备以及存储介质 | |
WO2024119432A1 (en) | Inline structured query language queries in a spreadsheet | |
CN106569785B (zh) | 一种作业表单生成方法及设备 | |
US20240338232A1 (en) | Artificial intelligence system user interfaces | |
US11941355B2 (en) | Using operational transforms to perform operations on parallel copies of a document model | |
CN118642627A (zh) | 用于信息展示的方法、装置、设备和存储介质 | |
CN116956858A (zh) | 提示信息确定方法、装置、电子设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |