表单形式的表的自动生成和聚合
背景
电子表格应用程序是用于提供方便、简单和直观的方式以录入、组织、管理、查看、存储、以及搜索数据的常用程序。电子表格应用程序通常用行和列将数据组织成表。每个列通常表示特定的数据属性。例如,包括与慈善捐赠相对应的数据的“捐赠”表可以具有诸如姓名(例如,捐赠者姓名)、地址、城市、州、邮编、电子邮件、以及认捐额等各个列。这些列中的一列可以是被用来对表的行进行排序的关键列。例如,捐赠表的关键列可以是姓名列。该表的每行通常包括与特定的关键列条目相对应的数据。例如,如果捐赠表的姓名列中的第一条目是“John Doe”,则该捐赠表的第一行可以包括John Doe的地址、城市、州、邮编、电子邮件、以及认捐额。
常规电子表格的一个缺点是这些表不是总是用以录入或查看数据的最方便的结构。例如,当用户录入或查看特定数据表行的数据时,用户会希望只查看该行的数据。但表格式通常迫使用户查看该表的多个行而不是一次只显示单个行。当其他多个行也被显示时,集中和关注于单个行对于用户来说常常是困难的和困惑的。另外,因为表的单元格不是总是紧邻对应的列标题或关键列条目,所以确定特定单元格所对应的特定列标题或关键列条目对于用户而言常常是困难的,这会导致数据被输入到错误的列。
表单是用于录入和查看数据的替换结构。表单可以包括多个数据录入字段,每个数据录入字段对应于特定的数据属性。例如,包括与慈善捐赠相对应的数据的“捐赠”表单可以具有诸如姓名(例如,捐赠者姓名)、地址、城市、州、邮编、电子邮件、以及认捐额等各个数据录入字段。表单的每个“条目”通常包括该表单中所包括的各数据录入字段中的每个数据录入字段的对应数据值。与显示多个行的表不同,表单通常一次只显示单个表单条目(也被称作记录)。另外,与在表中不同,表单中的每个数据录入字段通常与用于命名或标识该对应数据录入字段的标签相邻地进行显示。表单(特别是其中用户无需真正打开电子电格表来在该电子表格表中添加或编辑数据的聚合表单)的另一优点是,它为各用户提供了如下机制:将数据录入到电子表格表中而无需允许各用户查看该电子表格表中的整个数据集。此“私有的”数据录入在被录入的数据在本质上是个人的或私有的时候(例如,在搜集人们关于某论题的评论和/或观点的时候)是特别有益的。因此,虽然表提供了若干优点,但存在其中与表相组合来使用表单会有益的一些情景。
概述
本文中公开了用于自动生成与电子表格表相关联的表单的技术。一种示例性技术包括生成表示电子表格表的表单,其中所生成的表单具有与该电子表格表上所列出的数据属性相对应的数据录入字段。可以通过用户界面(如,图标或其它面向对象的用户界面)将表单与电子表格表相关联。以此方式,可以通过定点设备的一个点击来提供用以显示表单的命令。表单一般可以与电子表格表中的每个条目相关联,以使得来自所选择的条目的数据得以显示。如果所选择的条目不包含任何数据,则表单将会是空白的,以使得可以经由该表单将新数据录入到电子表格表中。除了录入新数据或修订已有数据外,还可以通过表单上所包含的导航机制进行对电子表格表中已有数据的浏览。
本文中还公开了用于将与电子表格表或工作簿相关联的表单聚合到网页中的技术。通过将针对该表单的代码嵌入到网页中,可以采用与之相连的电子表格服务来更新该电子表格表中的信息。
提供此概述以便以简化的形式介绍将在下面详细描述进一步描述的一些概念。此概述并非意在标识所要求保护的主题的关键特征或必要特征,也并非意在用来帮助确定所要求保护的主题的范围。
附图简述
在参照附图阅读了以下的详细描述之后,将会更好地理解各说明性实施例,附图中:
图1是示例性计算设备的框图;
图2表示描绘了示例性电子表格表的屏幕显示,其中与该电子表格表中的每个条目相关联的表单在覆盖在该电子表格表上的分开窗口中示出;
图3是描绘了用于经由与电子表格表的每个条目相关联的表单将数据录入到该电子表格表中的方法的步骤的流程图;
图4是描绘了用于将表单聚合到网页中以使得将录入到表单中的数据自动提供给与之相关联的电子表格表的系统的框图;以及,
图5是描绘了用于经由网页中所聚合的表单自动将数据录入和更新到电子表格表中的方法的步骤的流程图。
详细描述
使用具体细节来描述发明主题以满足法定要求。然而,描述本身并非意在限制本专利的范围。相反,可以预想到,结合当前的或未来的其它技术,还能以其它方式来实现所要求保护的主题,以包括不同步骤或与本文中所描述的那些相类似的步骤的组合。
图1示出了可以实现上述主题的合适的计算系统环境100的示例。计算系统环境100只是合适的计算环境的一个示例,并且并非意在对上述主题的使用范围或功能提出任何限制。计算环境100也不应被解释成对与示例性操作环境100中所示的组件中的任何一个组件或组件组合有任何依赖性或要求。
参照图1,计算系统环境100包括计算机110形式的通用计算设备。计算机110的组件可以包括但不限于:处理单元120、系统存储器130、以及用于将包括系统存储器在内的各种系统组件耦合到处理单元120的系统总线121。系统总线121可以是包括如下几种总线结构中的任何一种:存储器总线或存储器控制器、外围总线、以及使用各种总线体系结构中的任何一种的局部总线。作为示例而非限制,这些体系结构包括:工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线、以及外围部件互连(PCI)总线(也称为夹层总线)。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是可以被计算机110访问的任何可用介质,并且包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于:RAM、ROM、EEPROM、闪存或其它存储器技术、CDROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以被用来存储所需信息并且可以被计算机110访问的任何其他介质。通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并包括任何信息传递介质。术语“已调制数据信号”是指其一个或更多个特性以在信号中编码信息的方式被设置或更改的信号。作为示例而非限制,通信介质包括有线介质(如,有线网络或直接有线连接)、以及无线介质(如,声学、RF、红外线和其它无线介质)。以上的任何组合也应当包括在计算机可读介质的范围内。
系统存储器130包括易失性和/或非易失性介质(如,只读存储器(ROM)131和随机存取存储器(RAM)132)形式的计算机存储介质。基本输入/输出系统133(BIOS)包含如在启动过程中帮助在计算机110内的元件之间传送信息的基本例程,的它通常被存储于ROM 131中。RAM 132通常包含处理单元120可立即访问和/或当前正在操作的数据和/或程序模块。作为示例而非限制,图1示出了操作系统134、应用程序135、其它程序模块136、以及程序数据137。
计算机110还可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出了用于从不可移动、非易失性磁介质进行读取或向其进行写入的硬盘驱动器141,用于从可移动、非易失性磁盘152进行读取或向其进行写入的磁盘驱动器151,以及用于从可移动、非易失性光盘156(如,CD-RW、DVD-RW或其它光学介质)进行读取或向其进行写入的光盘驱动器155。可以用于该示例性操作环境的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于:盒式磁带、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器141通常通过诸如接口140等不可移动存储器接口连接到系统总线121,并且磁盘驱动器151和光盘驱动器155通常由诸如接口150等可移动存储器接口连接到系统总线121。
以上所讨论以及图1中所示的驱动器及其相关联的计算机存储介质为计算机110提供了对计算机可读指令、数据结构、程序模块以及其它数据的存储。在图1中,例如,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146以及程序数据147。注意,这些组件既可以与操作系统134、应用程序135、其它程序模块136以及程序数据137相同,也可以与之不同。此处对操作系统144、应用程序145、其它程序模块146以及程序数据147给出了不同的标号是为了说明它们至少是不同的副本。用户可以通过诸如键盘162和定点设备161(如,鼠标、轨迹球或触摸板)等输入设备将命令和信息录入到计算机110中。其它输入设备(未示出)可以包括话筒、操纵杆、游戏手柄、卫星天线、扫描仪、等等。这些输入设备以及其它输入设备通常可以通过耦合至系统总线121的用户输入接口160来连接到处理单元120,但也可以由诸如并行端口、游戏端口或通用串行总线(USB)等其他接口和总线结构来连接。图形接口182也可以连接到系统总线121。一个或更多个图形处理单元(GPU)184可以与图形接口182进行通信。监视器191或其它类型的显示设备也经由诸如视频接口190等接口连接到系统总线121,而视频接口190又与视频存储器186进行通信。除了监视器191外,计算机还可以包括其它外围输出设备,如扬声器197和打印机196,它们通过输出外围接口195连接。
计算机110可以使用到诸如远程计算机180等一个或更多个远程计算机的逻辑连接在联网或分布式环境中进行操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,并且通常包括上述相对于计算机110描述的元件中的许多元件或所有元件,虽然图1中仅示出了存储器存储设备181。图1中所描绘的逻辑连接包括局域网(LAN)171以及广域网(WAN)173,但也可以包括其它网络/总线。这些组网环境在家庭、办公室、企业范围计算机网络、内联网和因特网中是常见的。
当被用于LAN组网环境中时,计算机110通过网络接口或适配器170被连接到LAN 171。当被用于WAN组网环境中时,计算机110通常包括调制解调器172或用于通过诸如因特网等WAN 173建立通信的其他装置。调制解调器172可以是内置的或外置的,它可以经由用户输入接口160或其它适当的机制连接到系统总线121。在联网的环境中,相对于计算机110所描绘的程序模块或其部分可以被存储于远程存储器存储设备中。作为示例而非限制,图1示出了远程应用程序185驻留在存储器设备181上。将会明白的是,所示出的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其他手段。
图2描绘了可以由监视器191呈现的包括电子表格表202的示例性显示200。一般提供区域204以使得可为电子表格表202包括标题或其它标识符。将会进一步看到的是,电子表格表202优选地包括水平延伸的第一轴206以及垂直延伸的第二轴208。优选地与第一轴206成十字形来提供多个列210,其中通常为每列提供标题212以指定其下所要列出的特定数据属性。优选地沿第二轴208提供多个行214,其中能够在特定条目的每个列上对齐的单元格内输入数据。将会注意到的是,显示200上通常包括各种其它项,如工具条和其它功能图标,它们协助构建和格式化电子表格表202。
如图2中所见,例如,电子表格表202在显示200的区域204中被命名为“Fund-Raising Campaign(筹款活动2007)”。在每个被编号的行中提供了各条目,其中每个条目是一个人,并且在每个指定列210内提供了特定数据。虽然不完全可见,但将会理解的是,电子表格表202中的列210的标题212包括:Name(姓名)、Address(地址)、City(城市)、State(州)、Zip/Postal Code(邮编/邮政编码)、Email(电子邮件)、Donation2003(捐赠2003)、以及Donation 2004(捐赠2004)。
为了提供直接向或从电子表格表202录入/修订或审阅数据的替换方案,表单300优选地与电子表格表202相关联并基于命令自动生成。虽然能以多种方式来实现对表单300的访问,但从图2可以看到,在选择电子表格表202中的特定条目的单元格215时在其中优选地提供表单图标302。将会理解的是,例如,当来自定点设备161的指针216被置于特定条目的单元格上时,条目被选择。在该示例性显示中,将会看到,指针216被置于与电子表格表202中的条目220的第一列218所对齐的单元格215上,但指针216也可以被置于针对该条目的任何单元格(与任何列对齐)上以获得表单图标302。表单图标302通常被称为面向对象的用户界面,因为用定点设备161点击它将提供对表单300的访问。因此,从电子表格表202可容易地得到对表单300的访问。应当明白的是,也可以采用诸如键盘命令和语音命令等其它技术从电子表格表202选择条目以及获取对表单300的访问。
更具体地,加载表单300以显示来自所选择的条目的信息或在其是新条目的情况下显示空白。将会理解的是,如果电子表格表202中不存在条目,则表单300的默认模式为“新条目”。否则,优选地,针对所选择的条目的来自电子表格表202的数据将会自动填入列标题212所对应的文本框。优选地为表单300提供标题304,其中除非修改,否则该并且通常与电子表格表202的标题相同。由于表单300优选地被垂直布局,所以它还包括表示列标题212的多个字段以及与之相邻的各自的对应文本框。因此,示例性表单300包括表示电子表格表202中的第一列或左列的第一字段306(即,“Name”)以及与之相对应的文本框308。类似地,在表单300中提供了第二字段310、第三字段312、第四字段314、第五字段316以及第六字段318,以及与它们(即,“Address”、“City”、“State”、“Zip/PostalCode”、以及“Email”)相邻的文本框320、322、324、326和328。如在图2中所见,如果需要,则表单300中除了被录入到电子表格表202中的数据外还可以包括附加字段以及对应的文本框。对表单300的一种这样的扩充优选地包括丰富的文本编辑框330(连同格式化控件),以使得可以记录针对条目的注释、评述以及其它相关信息以供将来参考。
将会理解的是,将会优选地针对其中所录入或所显示的数据的类型来对表单300中的文本框进行格式化。如此,某些文本框将会是左对齐的(例如,概述、文本、或其它)或右对齐的(例如,数字、时间、分数、或科学计数)。还可以对文本框进行格式化以在其中包括符号(例如,当数据涉及货币/记帐时在其左侧显示货币符号,以及当录入百分比时在其右侧显示百分号)。为了协助进行某些数据类型的录入,表示控件的图标也可以位于文本框的附近(例如,用于录入日期的日期检出器控件)。提供了针对一些数据类型的特殊处理,如在应用程序隐含地理解这种类型的时候。例如,网址的文本框可以是左对齐的并且包括与之相邻的控件,当点击该控件时打开新的web浏览器窗口并将用户导航到指定网址。类似地,电子邮件地址的文本框也可以是左对齐的并且包括与之相邻的控件,当点击该控件时打开用户的默认电子邮件程序并打开去往指定收件人的新消息。最后,可以基于列的标题来自动对某些数据类型进行检测。例如,街道地址的文本框可以是左对齐的并且包括控件,当点击该控件时显示指定地点的带有链接的地图,该链接允许用户在新web浏览器窗口中打开该地图。
一旦数据被录入到表单300中,它随后就通过其中适当的按钮被传送给电子表格表202。如果表单300被用来添加条目,则提供“Submit(提交)”按钮332,以使得当点击该按钮时,新行被添加到电子表格表202中从而包含所录入的数据。如果表单300被用来编辑条目,则优选地提供“Update(更新)”按钮(未示出),以使得当点击该按钮时,修改电子表格表202中的行以在其中包含所修改的数据。可以在表单300中包括分开的“Close(关闭)”按钮(未示出),以使得在不对其进行任何改变的情况下关闭该分开的窗口并且用户返回到电子表格表202。
为了在显示表单300的同时在电子表格表202内的各条目(或行)之间进行更好的导航,其上还可以包括附加按钮。这些按钮的示例包括:用于移动到电子表格表202中的下一个条目的“Next entry(下一条目)”按钮;用于移动到电子表格表202的前一个条目的“Previous entry(前一条目)”按钮;用于移动到电子表格表202中的第一个条目的“First entry(首条目)”按钮;以及,用于移动到电子表格表202中的最后一个条目的“Lastentry(末条目)”按钮。将会理解的是,如果用户到达电子表格表202的最后一个条目,则“Next entry”按钮将被禁用,并且如果用户到达电子表格表202的首条目,则“Previous entry”按钮将被禁用。以此方式,可以在表单窗口内审阅电子表格表202中的每个条目的数据或信息。
在表单300内可以提供的另一项是“New entry(新条目)”按钮(未示出),其中表单300上来自已有条目的的信息/数据被擦除,以使得可以添加电子表格表202的新条目。这允许直接从先前的条目表单来建立表单300,而不是必须从电子表格表202访问它。
根据本发明,图3中公开了一种用于作为响应来生成与电子表格表相关联的表单的方法或过程。最开始,生成包括第一轴206和第二轴208的电子表格表202(框400)。将会理解的是,将会优选地用这些轴中的一个轴来列出数据属性,如列210的标题212。接下来,生成优选地表示电子表格表202的表单300(框402)。如此,表单300优选地包括与电子表格表202上的数据属性中的至少一些数据属性相对应的字段和文本框。随后将表单300与电子表格表202相关联(404)。这可以通过一些类型的用户界面(如,上述表单图标202)来完成。之后,当选择电子表格202内的单元格215时(框406),优选地在其中提供该用户界面(例如,表单图标302)(框408)。通过点击该用户界面,提供命令(框410),使得表单300响应于该命令来显示(412)。
取决于所选择的单元格(即,该条目是空白的还是包含数据),可以录入或修订电子表格表202内的信息(框414)。因此,随后能够在电子表格表202中存储或更新表单中的这种数据(416)。当然,仅仅审阅电子表格表的条目内的数据是可能的(框418),随之用户可以导航到电子表格表202中的不同条目(框420)或通过关闭表单300返回电子表格表202(框422)。
为了进一步充分利用表示电子表格表且与之相关联的表单的用途,可以预见到,这种表单可以同网页相结合来使用。如在图4中所见,描绘了示例性系统500,其中与电子表格表相关联的表单502被聚合成网页504。系统500还包括连接到网页504的电子表格服务506,电子表格服务506提供电子表格web服务508和电子表格计算服务510。电子表格web服务508可以被用来辅助在网页504中嵌入表单502以及接收被录入到表单502中的信息或数据。当提交来自表单502的数据时,向电子表格服务506发送请求,以使得工作簿512可以被更新。当然,计算服务510可能需要对从表单502接收的数据进行一些操纵或计算。
例如,可以通过使用剪贴板工具或直接嵌入对应的表单代码来将表单502嵌入到网页504中。为使用剪贴板工具将表单嵌入到网站中,例如,用户可以点击表单上的剪贴板工具图标、选择所需表单视图、并随后将其粘贴到启用剪贴板工具的网页中。将会理解的是,此过程涉及自动放置于剪贴板工具上的所选择的表单的必要代码,以使得随后可以将该代码自动粘贴到网站中。为使用代码方法来嵌入表单,例如,用户可以采用准许用户选取用其聚合表单的电子表格表以及选择所需表单视图的聚合用户界面。随后可以呈现可以被嵌入到网页中的代码段。
将会进一步明白的是,表单502的视图可以取多种视图中的一种视图。在一个这种视图中,表单502将会只允许录入新项。因此,将不会显示如上文中所示的准许导航到其它条目的浏览特征。通过允许各用户在看不到电子表格表中所录入的数据的完整集合的情况下将数据录入到电子表格表中,这可以允许“私有的”数据录入。或者,表单502可以只允许用户浏览与表单502相关联的电子表格表中的当前条目。在这种视图中将不会显示与新项的数据录入相关联的控件。当然,由于在网页504中嵌入了表单502,所以在这二者之中的任一视图中都将不会显示本文中所描述的关闭(Close)按钮。
虽然对网页中的表单的使用进行了描述,其中这种表单与电子表格表或工作簿相关联,但将会理解的是,公开了一种用于在工作簿中存储或更新数据的方法或过程。在图5的框600中将会看到,首先生成表示电子表格表的表单502。随后可以显示该表单(框602)。例如,可以在网页504上显示表单502。如果在网页504上显示表单,则可以将表单502的代码嵌入到网页504中(框602)。如本文中所描述的,可以直接或通过剪贴板工具来嵌入这种代码。在显示表单502之后,数据随后可以被录入到表单502中(框604)并且随后可以被提交给电子表格(框606)。以此方式,在电子表格表或工作簿中存储/更新来自表单502的数据(608)。当然,当表单502的视图只用于浏览时,显示电子表格表中的当前项或条目(框610)。
虽然用结构特征和/或方法动作专用的语言对主题进行了描述,但将会理解的是,所附权利要求中所限定的主题并不限于上述具体特征或动作。相反,上述具体特征或动作是作为实现权利要求的示例表单的形式来公开的。