CN110325961A - 基于电子表格的软件应用程序开发 - Google Patents

基于电子表格的软件应用程序开发 Download PDF

Info

Publication number
CN110325961A
CN110325961A CN201780082312.3A CN201780082312A CN110325961A CN 110325961 A CN110325961 A CN 110325961A CN 201780082312 A CN201780082312 A CN 201780082312A CN 110325961 A CN110325961 A CN 110325961A
Authority
CN
China
Prior art keywords
data
electrical form
page
user interface
web page
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.)
Granted
Application number
CN201780082312.3A
Other languages
English (en)
Other versions
CN110325961B (zh
Inventor
托马斯·斯塔胡拉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN202310128491.7A priority Critical patent/CN116225399A/zh
Publication of CN110325961A publication Critical patent/CN110325961A/zh
Application granted granted Critical
Publication of CN110325961B publication Critical patent/CN110325961B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本文描述的方面可以与本地电子表格应用程序、web和/或基于云的电子表格解决方案一起使用,以创建复杂的定制软件应用程序。电子表格本身缺乏用作平台工具以构建定制或复杂软件应用程序的概念框架。使用本文描述的使用低代码/无代码技术的方法和系统,设计者可以使用一个或多个电子表格作为软件应用程序的基础蓝图来创建定制和/或复杂软件应用程序。所得到的软件应用程序可以是静态的/只读的,或者可以是交互式的,以允许用户例如经由一个或多个在线web页面或经由移动应用程序动态地添加、删除、编辑或以其它方式修改应用程序数据。在蓝图电子表格和所得到的软件应用程序之间的数据传输可以是单向的或双向的,从而允许将修改的数据从软件应用程序传送回电子表格表单。

Description

基于电子表格的软件应用程序开发
本专利文件的公开内容的一部分包含受版权保护的材料。版权所有人不反对以专利文献或专利公开中的任何一种在专利商标局的专利文件或记录中出现的传真复制所述专利文献或专利公开,但在其它方面仍然保留所有版权权利。
相关申请的交叉引用
本申请要求于2017年3月10日提交的发明名称为“Spreadsheet-Based SoftwareApplication Development”的美国专利申请序列号15/455,909以及于2016年12月3日提交的发明名称为“Spreadsheet-Based Software Application Development”的美国临时申请号62/429,749的优先权的权益。出于所有目的,每个前述申请的内容以引用方式并入本文。
技术领域
本文描述的方面总体涉及用于计算机和计算机网络的应用程序和软件开发。更具体地,本文描述的方面提供用于诸如交互式web应用程序等的定制复杂软件的低代码和无代码软件开发的系统和方法。
背景技术
软件开发可能是一个困难且耗时的过程。在个人可以开发复杂和/或定制软件应用程序之前,通常需要专门的培训和知识,并且通常需要多年的经验。不具备这些技能的人必须聘请软件开发人员或软件开发公司来进行软件开发,这通常费用很高。此外,一旦开始软件开发过程,其可能需要数周、数月或甚至数年来开发定制和/或复杂软件。
开发在线使用或与移动设备一起使用的定制软件应用程序通常涉及以高级编程语言(诸如C#或Java)进行编程。软件应用程序越灵活且功能越强大,许多组织集资或构建其的时间越长,并且成本越高。即使当软件应用程序开发人员利用预构建的组件来在多个客户端之间共享成本,由于每个组织的独特要求,构建许多项目仍然是费时的。
在一些情况下,软件应用程序可以现成购买,但是组织限于现成产品的特征。定制通常是困难的、耗时的和/或昂贵的,就像原始软件开发一样。
基于其令人难以置信的强大的业务分析、记录保持和组织能力,电子表格现在在商业中变得无处不在。或许除了文字处理器之外,电子表格在商业中的使用比任何类别的软件都要多。但是,电子表格本身缺乏用作平台工具以构建软件应用程序的概念框架。最佳情况下,现有的电子表格软件可以允许用户纳入程序代码以执行一个或多个定制功能。然而,该程序代码仍然必须以高级语言编写,诸如Visual Basic,这又需要高级编程技能、功能和资源。
发明内容
以下呈现了本文描述的各种方面的简要概述。本发明内容不是广泛的概述,并且不旨在标识关键元素或重要元素或描绘权利要求的范围。以下发明内容仅以简化形式呈现一些概念作为下面提供的更详细描述的介绍性前序。
电子表格是流行工具和独特概念模型,其用于非技术用户执行任务,诸如计算和打印报告。通常以两种方式使用电子表格:其中每个行都是记录的表格,或者使每个记录包含整个表格或文件。虽然电子表格和电子表格应用程序本身缺乏用作构建软件应用程序的平台工具的概念框架,但是本文描述的方面包括可操作以使用一个或多个电子表格作为用于此种系统的基础蓝图自动生成复杂交互式软件和/或web应用程序的工具和功能。此种工具和功能或配置有本文描述的一种或多种工具和/或功能的方法和/或系统也可以称为webifier、webifier系统或webifier软件等。
为了克服如上所述的现有技术中的限制,并且为了克服在阅读和理解本说明书时将显而易见的其它限制,本文描述的一个或多个方面涉及基于数据促进交互式web应用程序的创建以及格式化电子表格中包含的模板。
本文描述的第一方面提供了用于生成包括至少一个web页面的交互式web应用程序的方法、系统和计算机可读介质。本文描述的技术可以包括分析电子表格以标识一个或多个数据源,每个数据源具有一个或多个数据记录,以及标识一个或多个用户界面模板,每个模板包括一个或多个数据源的数据格式。电子表格可以包括多个工作表(这里也简称为“表格”),并且数据源可以包括第一电子表格的至少一部分,而用户界面模板可以包括第二电子表格的至少一部分。可以基于从电子表格内标识的数据源提取数据记录并将数据记录存储在web数据存储中来生成web数据存储。系统可以基于web数据存储的所提取的数据记录生成交互式web应用程序的特定web页面,并且特定web页面可以包括数据记录和/或对数据记录的引用,该数据记录根据与特定web页面对应的一个或多个用户界面模板进行标识和格式化。系统可以响应于对页面的请求生成特定web页面的呈现。此外,系统可以响应于经由web应用程序接收用户输入来更新web数据存储。
用户界面模板可以定义和/或包括用于对应数据源和/或记录的数据格式,诸如字体格式、单元格大小和/或任何其它合适的显示格式。在一些实施例中,用户界面模板可以定义与数据源相关联的一个或多个数据限制。此类数据限制可以用于从数据源中选择数据记录。替代地和/或附加地,用户界面模板可以定义与数据源相关联的一个或多个输入验证控件。系统还可以针对输入验证控件评估用户输入作为更新web数据存储的一部分或附加于更新web数据存储。根据一些方面,一个或多个用户界面模板可以存储在来自一个或多个数据源的单独工作表中。在其它方面,一个或多个用户界面模板可以存储在相同的工作表中作为一个或多个数据源。
根据一些方面,系统可以基于标识电子表格中的至少一个数据格式和/或数据记录的一个或多个改变来更新交互式web应用程序。可以在交互式web应用程序中实现对用户界面模板中的数据格式的改变而不影响web数据存储。对数据记录内容的改变可以自动反映在交互式Web应用程序的页面中。系统可以自动操作以检测和/或分析对电子表格中的数据记录和/或数据格式所做的改变。根据一些方面,系统可以基于对web数据存储所做的更新来更新基础电子表格。附加地和/或替代地,系统可以基于对电子表格中的数据记录所做的改变来更新web数据存储。类似地,系统可以基于对电子表格的用户界面模板中的数据格式所做的改变来更新交互式web应用程序。
根据一些方面,系统可以实现许可控制以限制用户查看和/或修改存储在web数据存储和/或电子表格中的数据的能力。可以在电子表格中定义用户的安全许可,诸如在一个或多个用户界面模板中。可以使用与电子表格相关联的电子表格应用程序的原生公式来定义安全许可。附加地和/或替代地,可以从除电子表格之外的源(诸如管理策略服务器)检索安全许可。系统可以防止具有第一安全许可的第一用户修改web数据存储。系统可以允许响应于从具有第二安全许可的第二用户接收的输入来修改web数据存储。
可以使用电子表格应用程序软件生成电子表格。例如,在一些实施例中,可以使用MICROSOFT EXCEL生成电子表格。电子表格可以包括数据文件和/或文件集合,其符合任何传统电子表格数据格式。例如,电子表格可以符合MICROSOFT EXCEL中使用的XLSX、MS-XLS和/或MS-XLSB二进制数据格式。在一些实施例中,生成的web数据存储可以包括电子表格,反之亦然。
根据一些方面,交互式web应用程序可以基于数据记录和/或用户界面模板生成输入和/或输出web页面。在一些实施例中,系统可以基于在一个或多个用户界面模板中标识的数据源生成web输入表单,并且可以经由web输入表单接收用户输入以修改一个或多个记录。系统可以基于第一用户界面模板从web数据存储生成用于输出数据的数据输出web页面,并且可以基于第二用户界面模板生成可用于编辑web数据存储中的数据的数据编辑web页面。在一些实施例中,生成特定web页面可以包括选择与客户端设备特性相对应的用户界面模板,该客户端设备特性与特定web页面相关联。
根据另一个方面或实施例,webifier系统可以配置成通过确定电子表格(或多个电子表格)内的一个或多个数据源来生成包括至少一个web页面的交互式web应用程序,每个数据源具有零个或多个数据记录,其中数据源包括电子表格的第一部分;从电子表格内确定一个或多个用户界面模板,每个用户界面模板包括一个或多个数据源的数据格式,其中用户界面模板包括电子表格的第二部分;生成web数据存储,其包括来自电子表格中标识的数据源的数据记录;基于一个或多个用户界面模板生成交互式web应用程序的特定web页面,所述一个或多个用户界面模板对应于特定web页面,其中特定web页面引用基于对应于特定web页面的一个或多个用户界面模板标识的一个或多个数据源;响应于对呈现交互式web应用程序的特定web页面的请求,生成特定web页面的呈现,该web页面包括根据与特定web页面对应的一个或多个用户界面模板进行标识和格式化的一个或多个数据记录;以及响应于经由基于电子表格生成的交互式Web应用程序的web页面接收用户输入,更新Web数据存储。
在一些方面,以下的任何组合可以包括在webifier系统内或由webifier系统纳入组合:基于电子表格生成的交互式web应用程序的web页面是特定web页面;电子表格包括多个工作表,以及电子表格的第一部分位于与电子表格的第二部分不同的工作表上;电子表格包括多个工作表,并且一个或多个用户界面模板存储在与一个或多个数据源相同的工作表中;用户界面模板的至少一种数据格式包括相应数据源的字体格式;用户界面模板的至少一种数据格式基于相应数据源的单元格大小;方法还可以包括基于更新Web数据存储来更新电子表格;方法还可以包括分析电子表格以标识对与一个或多个用户界面模板相关联的至少一种数据格式的一个或多个改变,以及基于改变的数据格式更新交互式web应用程序而不影响web数据存储;方法还可以包括分析电子表格以标识对一个或多个数据源的数据记录做出的一个或多个改变,以及基于改变的数据记录更新web数据存储(其中此种修改可以基于用户输入间隔地自动发生等);方法还可以包括分析电子表格以标识对与一个或多个数据源相关联的至少一个数据记录做出的一个或多个改变,以及基于改变的数据记录更新web数据存储(其中此种修改还可以基于用户输入间隔地自动发生等)。
在一个或多个实施例中,并且与任何其它实施例组合,webifier系统可以包括安全控件以防止具有第一安全许可的第一用户修改web数据存储,并且允许响应于从具有第二安全许可的第二用户接收的输入来修改web数据存储。可以基于一个或多个用户界面模板来确定第一安全许可和第二安全许可。可以可选地由生成电子表格的电子表格应用程序的原生公式来定义安全许可。
在一个或多个实施例中,并且与任何其它实施例组合,电子表格可以包括生成的web数据存储,或者web数据存储可以与电子表格分离。标识或生成web数据存储可以包括存储适用的电子表格或其部分的记录作为存储适用的数据。
在一个或多个实施例中,并且与任何其它实施例组合,webifier系统可以使用电子表格,其符合XLSX、MS-XLS二进制数据格式或MS-XLSB二进制数据格式。
在一个或多个实施例中,并且与任何其它实施例组合,webifier系统可以在生成web数据存储之后,基于对电子表格中的一个或多个数据记录所做的一个或多个改变来后续更新web数据存储。
在一个或多个实施例中,并且与任何其它实施例组合,webifier系统可以在生成特定web页面之后,基于对电子表格中的一个或多个用户界面模板所做的一个或多个改变来更新特定web页面。
在一个或多个实施例中,并且与任何其它实施例组合,webifier系统可以包括至少一个用户界面模板,其标识与数据源相关联的一个或多个数据限制,并且系统可以基于选择满足一个或多个数据限制的数据记录来生成特定web页面的呈现。一个或多个数据限制可以可选地包括在电子表格中标识的用户等级安全限制。可选地,可以由与电子表格相关联的电子表格应用程序的原生公式定义一个或多个数据限制中的至少一个。
在一个或多个实施例中,并且与任何其它实施例组合,webifier系统可以包括至少一个用户界面模板,其标识与特定数据源相关联的一个或多个输入验证规则,并且系统还可以针对一个或多个输入验证规则评估用户输入。可选地,当web数据存储标识与特定web页面相关联的一个或多个输入验证规则时,并且系统可以针对一个或多个输入验证规则评估用户输入。
在一个或多个实施例中,并且与任何其它实施例组合,webifier系统可以经由web应用程序接收用户输入,并且系统可以基于在一个或多个用户界面模板中标识的数据源生成web输入表单,以及经由Web输入表单接收用户输入。
在一个或多个实施例中,并且与任何其它实施例组合,交互式web应用程序可以基于第一用户界面模板从web数据存储生成用于输出数据的数据输出web页面,并且基于第二用户界面模板生成可用于编辑web数据存储中的数据的数据编辑web页面。
在一个或多个实施例中,并且与任何其它实施例组合,webifier系统可以通过选择用户界面模板来生成特定web页面,所述用户界面模板对应于与特定web页面相关联的客户端设备特征,例如,以修改特定于移动设备的页面等。
根据另一个方面,webifier系统可以包括一个或多个处理器,以及存储指令的存储器,所述指令在由一个或多个处理器执行时使系统生成交互式软件应用程序(例如,web应用程序)。webifier系统可以基于评估电子表格获得电子表格内的一个或多个数据源,每个数据源具有一个或多个数据记录,其中数据源包括电子表格的第一工作表的至少一部分。系统可以基于评估电子表格获得电子表格内的一个或多个用户界面模板,每个模板包括一个或多个数据源的数据格式,其中用户界面模板包括电子表格的第二工作表的至少一部分。系统可以可选地通过从电子表格中标识的数据源中提取数据记录并将数据记录存储在web数据存储中来生成web数据存储,或者系统可以将电子表格用作web数据存储(在本实施例中或在任何其它实施例中)。系统可以基于web数据存储的提取的数据记录生成交互式软件应用程序的特定web页面,其中特定web页面包括对数据记录的引用,该数据记录基于与特定web页面对应的一个或多个用户界面模板进行标识并根据其进行格式化。响应于对呈现交互式软件应用程序的特定web页面的请求,系统可以生成特定web页面的呈现。系统还可以响应于经由交互式软件应用程序接收用户输入来更新web数据存储。
在一个或多个实施例中,并且与任何其它实施例组合,webifier系统可以包括至少一个用户界面模板,其标识与数据源相关联的一个或多个数据限制。指令在由一个或多个处理器执行时还可以使系统基于选择满足一个或多个数据限制的数据记录来生成特定web页面的呈现。
根据另一个方面或实施例,webifier系统可以生成交互式web应用程序。webifier系统可以基于评估电子表格获得电子表格内的一个或多个数据源,每个数据源具有零个或多个数据记录,其中数据源包括电子表格的第一工作表的至少一部分。系统可以基于评估电子表格获得电子表格内的一个或多个用户界面模板,每个模板包括一个或多个数据源的数据格式,其中用户界面模板包括电子表格的第二工作表的至少一部分。系统可以生成web数据存储,其包括来自在电子表格内标识的数据源的数据记录。系统可以基于一个或多个用户界面模板生成交互式web应用程序的特定web页面,所述一个或多个用户界面模板对应于所述特定web页面,其中特定web页面包括对数据源的至少一个数据源的引用和基于与特定web页面相对应的一个或多个用户界面模板进行格式化。响应于对呈现交互式web应用程序的特定web页面的请求,系统可以生成包括一个或多个数据记录的特定web页面的呈现,一个或多个数据记录与至少一个数据源相关联并且根据与特定web页面相对应的一个或多个用户界面模板进行格式化。系统可以响应于经由交互式web应用程序接收用户输入来更新web数据存储。第一工作表可以是与第二工作表相同的工作表或不同的工作表。
根据另一个方面,任何一个或多个实施例还可以包括生成电子表格用户界面,其呈现电子表格的至少一部分以供显示,其中电子表格用户界面包括一个或多个控件,控件允许用户标识电子表格内的一个或多个数据源并标识电子表格内的一个或多个用户界面模板。然后,可以响应于经由一个或多个控件接收用户输入来执行交互式web应用程序的特定web页面的生成,控件标识对应于特定web页面的至少一个或多个用户界面模板。
在一个或多个实施例中,并且与任何其它实施例组合,电子表格用户界面包括单元格的二维布置。电子表格用户界面的单元格可以支持数值、文本值和公式。电子表格用户界面中的单元格公式可以允许用户指定数学计算。电子表格用户界面中的单元格公式可以允许对多个其它单元格的引用。电子表格用户界面中的单元格公式也可以支持数学和字符串操作函数。
可选地,电子表格用户界面中的单元格公式可以支持对命名函数的引用;电子表格用户界面的单元格可以支持电子表格用户界面的给定行、给定列或给定区域内的异构格式和公式;和/或电子表格用户界面中的单元格公式可以支持对包含其它公式、数值或文本值的其它单元格的引用。
在一些方面,电子表格用户界面提供视觉编辑用户界面,其允许用户编辑和格式化电子表格用户界面的单元格,并且视觉编辑用户界面可以基于格式变化、公式变化以及格式化评估值和/或规则来向用户提供视觉反馈。
在一些方面,电子表格用户界面可以允许用户指示单个单元格的内容可以在视觉上跨越多个行或多个列,而不影响其它单元格的内容是否可以在视觉上跨越多个行或多个列。
在一些方面,电子表格用户界面可以允许用户选择单元格并通过与其交互而将单元格内容移动到其它单元格以突出显示单个单元格或单元格范围。
在一些方面,电子表格用户界面可以允许用户选择一个或多个单元格,以便自动地将对那些单元格的引用插入到当前正在编辑的单元格的公式中。
在一些实施例中,用户输入可以包括签名和与签名相关联的元数据。
在一些方面,webifier系统可以生成移动软件应用程序和/或通过移动设备或移动应用程序显示的内容。webifier系统可以确定电子表格内的一个或多个数据源,每个数据源具有一个或多个数据记录。webifier系统可以确定电子表格内的一个或多个用户界面模板,每个模板包括一个或多个数据源的数据格式。webifier系统可以可选地生成包括来自在电子表格内标识的数据源的数据记录的数据存储,或者可以使用电子表格作为数据存储。webifier系统可以基于一个或多个用户界面模板生成特定web页面的多个版本,所述一个或多个用户界面模板对应于特定web页面,其中特定web页面引用一个或多个数据源,数据源基于对应于特定web页面的一个或多个用户界面模板标识,并且其中特定web页面的至少一个版本是基于与移动客户端相关联的一个或多个用户界面模板的移动版本。webifier系统可以从移动设备接收对呈现交互式web应用程序的特定web页面的请求,例如,其中该请求将用户设备标识为移动客户端或设备。响应于该请求,webifier系统可以生成包括一个或多个数据记录的特定web页面的移动版本的呈现,数据记录由与特定web页面对应的一个或多个用户界面模板以及与移动客户端相关联的一个或多个用户界面模板标识并根据其进行格式化。webifier系统可以响应于从移动设备接收用户输入而更新数据存储。
根据另一个方面,并且与任何其它方面或实施例组合,webifier系统可以生成呈现数据文件的数据记录的电子表格用户界面,其中电子表格用户界面以包括多个单元格的行和列表格形式显示数据记录,并且其中电子表格用户界面允许用户定义公式以基于电子表格用户界面的第二单元格的值来计算电子表格用户界面的第一单元格的值。
电子表格用户界面可以包括支持数值、文本值和公式的单元格的二维布置。电子表格用户界面中的单元格公式允许用户指定数学计算,对多个其它单元格进行引用,对命名函数(和/或区域)进行引用,和/或数学和字符串操作函数。
在一些方面,电子表格用户界面的单元格可以支持电子表格用户界面的给定行、给定列或给定区域内的异构格式和/或对包含其它公式、数值或文本值的其它单元格的引用。
在一些方面,电子表格用户界面提供视觉编辑用户界面,其允许用户编辑和格式化电子表格用户界面的单元格,并且视觉编辑用户界面可以基于格式变化、公式变化以及格式化评估值来向用户提供视觉反馈。
在一些方面,电子表格用户界面可以允许用户指示单个单元格的内容可以在视觉上跨越多个行或多个列,而不影响其它单元格的内容是否可以在视觉上跨越多个行或多个列。
在一些方面,电子表格用户界面可以允许用户选择单元格并通过与其交互而将单元格内容移动到其它单元格以突出显示单个单元格或单元格范围,和/或允许用户选择一个或多个单元格,以便自动地将对那些单元格的引用插入到当前正在编辑的单元格的公式中。
根据另一个方面或实施例,webifier系统可以生成交互式软件应用程序。webifier系统可以分析(或处理、确定、获得等)电子表格(或多个电子表格)以标识一个或多个数据源,每个数据源具有一个或多个数据记录。webifier系统可以分析(或处理、确定、获得等)电子表格以标识一个或多个用户界面模板,每个模板包括一个或多个数据源的数据格式。webifier系统可以可选地通过从电子表格中标识的数据源中提取数据记录来生成web数据存储,并将数据记录存储在web数据存储中,或者webifier系统可以将电子表格用作web数据存储。响应于在交互式软件应用程序内创建特定web页面的请求,webifier系统可以标识对应于特定web页面的一个或多个用户界面模板,标识对应于特定web页面的一个或多个数据源,以及基于所标识的一个或多个用户界面模板并基于一个或多个所标识的数据源生成特定web页面。响应于来自客户端设备对特定web页面的请求,webifier系统可以基于一个或多个所标识的数据源从web数据存储中检索一个或多个数据记录,并且服务包括一个或多个检索的数据记录的特定web页面,检索的数据记录根据一个或多个标识的用户界面模板进行格式化。响应于经由web应用程序接收用户输入,webifier系统可以更新web数据存储(或电子表格,如果适用)。
根据另一个方面或实施例,webifier系统可以生成交互式web应用程序。webifier系统可以分析(或处理、确定、获得等)电子表格(或多个电子表格)以标识一个或多个数据源,每个数据源具有一个或多个数据记录。webifier系统还可以在电子表格内标识一个或多个用户界面模板,每个模板包括一个或多个数据源的数据格式。webifier系统可以可选地通过从电子表格中标识的数据源中提取数据记录并将数据记录存储在web数据存储中来生成web数据存储,或者webifier系统可以将电子表格用作web数据存储。响应于对交互式web应用程序内的特定web页面的第一请求,webifier系统可以使用来自web数据存储(或电子表格)的数据记录来组成特定web页面,其中数据记录由与特定web页面对应的一个或多个用户界面模板标识并根据其进行格式化。webifier系统可以分析电子表格以标识在生成web数据存储之后进行的一个或多个改变,并使用对电子表格做出的一个或多个改变来更新交互式web应用程序。响应于对特定web页面的第二请求,webifier系统可以组成特定web页面,其包含对电子表格做出的一个或多个改变。
在一些方面,对电子表格做出的一个或多个改变可以包括对用户界面模板的编辑,并且组合包含对电子表格做出的一个或多个改变的特定web页面包括生成包含对用户界面模板的编辑的特定web页面,而不改变数据记录。
在一些方面,在对电子表格做出的一个或多个改变包括对数据记录的编辑的情况下,然后组合包含对电子表格做出的一个或多个改变的特定web页面可以包括生成包含对数据记录的编辑的特定web页面,而不改变用户界面模板。
应注意,上述任何特征可以与任何特定方面或实施例一起使用。对于本领域技术人员来说,对上述实施例的特征和本文所述的特征的许多组合、修改或改变将是显而易见的,并且旨在形成本发明的一部分。与一个实施例或示例相关的具体描述的任何特征可以用在任何其它实施例中。
附图说明
该专利或申请文件包含至少一幅以彩色上色的附图。将在请求和支付必要费用后由主管局提供具有彩色附图的本专利或专利申请公开的副本。
通过参考以下考虑附图的描述,可以获得对本文描述的方面及其优点的更完整的理解,其中相同的附图标记表示相同的特征,并且其中:
图1示出了可以与本文描述的一个或多个说明性方面一起使用的系统架构。
图2是根据本文描述的一个或多个说明性方面的执行快速软件应用程序开发的方法。
图3A和图3B示出了说明性软件系统架构,每个架构可以用于实现本文描述的一个或多个说明性方面。
图4至图98是根据本文描述的一个或多个说明性方面的基于电子表格的软件应用程序开发系统的屏幕截图。
具体实施方式
作为一般性介绍,本文描述的方面可以提供低代码/无代码方法和系统,其可操作以使用一个或多个电子表格作为软件应用程序的基础蓝图自动生成复杂软件应用程序。根据一些方面,所得到的软件应用程序可以是静态的(只读的),或者可以是交互式的(读/写)以允许用户动态地添加、删除、编辑或以其它方式修改应用程序数据,例如,经由一个或多个在线web页面。在一些实施例中,在蓝图电子表格和所得到的软件应用程序之间的数据传输可以是单向的或双向的,从而允许将修改的数据传送到软件应用程序和电子表格表单或从其发送修改的数据,其传送回原始电子表格或新的电子表格。
本文使用的电子表格指的是用于呈现给用户的数据的逻辑排列,而不管数据存储的形式如何。电子表格软件应用程序(例如,MICROSOFT EXCEL、APPLE NUMBERS和GNOMEGNUMERIC)是已知类型的软件,其允许用户创建和编辑电子表格,其中数据按行和列网格排列并且可以在计算中操作和使用。电子表格软件应用程序还可以指代用于以表格形式组织、分析和存储数据的交互式计算机应用程序,其在计算机上本地上或可在基于云的架构中使用。电子表格也被称为纸质会计工作表的计算机模拟。电子表格软件应用程序通常对电子表格单元格中输入的数据进行操作,其中电子表格的每个单元格可能包含数字数据、文本数据或公式的结果,这些公式自动地计算并显示基于数学公式的值,一个或多个其它单元格的内容,或甚至外部链接数据。根据一个说明性方面,电子表格可以定义为可由特定电子表格软件应用程序使用的数据文件。一个或多个电子表格文档或数据文件可以包括多个单独的和/或分开的电子表格(例如,工作表、标签),其可以从或可以不从相同和/或不同的文件引用其它电子表格/工作表中的数据。在一个方面,电子表格就此与数据库不同,因为数据库通常要求将数据存储在一个或多个索引表中,而电子表格同时支持数据库用途和非数据库用途。本文描述的说明性方面可以涉及本地电子表格应用程序软件。然而,在其它说明性方面,可以经由基于云的系统的用户界面向用户呈现电子表格,通过web浏览器或其它联网的用户界面向用户呈现电子表格功能和特征,而不管其中最终存储数据的提供功能或格式的后端系统架构(例如,GOOGLE SHEETS、MICROSOFT OFFICE ONLINE、EditGrid、ZKSpreadsheet、Sheetster、Smartsheet、DHTMLX Spreadsheet、Webix、eXpresso、ThinkFreeCell)。本文描述的方面可以应用于本地电子表格应用程序软件实现以及基于云的电子表格实现,或任何其它电子表格实现。
电子表格应用程序通常共同具有:当用户查看时以行和列的单元格的特征二维布置;可能地,任何附加维度,其表示为附加二维布置;单元格,其能够包含由用户输入的数值或文本值或和公式;以及单元格公式,其允许用户指定数学计算和/或通过二维布置内的单元格位置引用多个其它单元格。一些现代的、复杂的电子表格应用程序,其包括MICROSOFTEXCEL和GOOGLE SHEETS,有时共同具有:单元格公式的进一步特征的一个或多个特征,单元格公式可以是数学或字符串操作公式;单元格公式,其可以引用包含其它公式或数值或文本值的其它单元格;用户在视觉WYSIWYG(“所见即所得”)编辑器中格式化单元格的能力;将格式改变和公式改变以及公式求值结果值立即视觉反馈给用户;单元格公式,其可以调用命名函数,诸如“sum()”或“concatenate()”;单元格引用,其可以是单个单元格或单元格范围,诸如“A1:B10”或“A1:A10,C1:C10”;单元格范围,其可以被指定有将用于其它单元格引用的文本别名;用户界面,其允许用户选择单元格并通过与其交互而将单元格内容移动到其它单元格以首先高亮单个单元格或单元格范围;用户界面,其允许用户选择一个或多个单元格,以便自动将对这些单元格的引用插入当前正在编辑的单元格的公式中,从而允许用户指定单个单元格或单个单元格的内容可以在视觉上跨越多行和/或列,而不需要同样跨越其它单元格;对数据的逻辑方向的限制最小或没有限制,使得行和列是可互换的,并且因此数据可以以枢转方向输入;单元格,其中格式和值和公式不需要在整个行或整个列或整个单元格区域内保持一致;以及列,其可以作为组在宽度上进行改变。并非所有这些特征都是应用程序成为电子表格软件应用程序所必需的。
在以下各种实施例的描述中,参考了形成其一部分的附图,并且在附图中通过图示的方式示出了其中可以实践本文所述的方面的各种实施例。应当理解,在不脱离所述方面和实施例的范围的情况下,可以利用其它实施例并且可以做出系统或功能改变。本文所述的方面能够具有其它实施例并且能够以各种方式实践或进行。而且,应当理解,本文采用的措辞和术语用于描述的目的,并且不应视为限制。相反,本文使用的短语和术语将被赋予其最广泛的解释和含义。“包括”和“包含”及其变体的使用旨在涵盖其后列出的项目及其等同物以及附加项目及其等同物。术语“安装”、“连接”、“联接”、“定位”、“接合”和类似术语的使用旨在包括直接和间接安装、连接、联接、定位和接合。
图1示出了网络架构和数据处理设备的一个示例,其可以用于实现本文描述的一个或多个说明性方面。各种网络节点103、105、107和109可以经由广域网(WAN)101互连,诸如互联网。也可以使用或替代地使用其它网络,其包括专用内联网、公司网络、LAN、无线网络和个人网络(PAN)等。网络101用于说明目的,并且可以用更少或附加的计算机网络替换。局域网(LAN)可以具有任何已知LAN拓扑中的一个或多个拓扑,并且可以使用各种不同协议中的一个或多个协议,诸如以太网。设备103、105、107、109和其它设备(未示出)可以经由双绞线、同轴电缆、光纤、无线电波或其它通信介质连接到一个或多个网络。
本文使用的并且在附图中示出的术语“网络”不仅指的是其中远程存储设备经由一个或多个通信路径联接在一起的系统,而且还指的是可以时不时联接到具有存储能力的此类系统的独立式设备。因此,术语“网络”不仅包括“物理网络”,而且包括“内容网络”,其包括可归因于单个实体的数据-其驻留在所有物理网络上,例如,使用存储区域网络(SAN,未示出)。
组件可以包括数据服务器103、web服务器105和客户端计算机107、109。数据服务器103提供数据库和控制软件的总体访问、控制和管理以用于执行本文描述的一个或多个说明性方面。数据服务器103可以连接到web服务器105,其中用户通过web服务器与数据交互并获得所请求的数据。或者,数据服务器103可以用作web服务器本身并且直接连接到互联网。数据服务器103可以通过网络101(例如,互联网),经由直接或间接连接,或经由某些其它网络连接到web服务器105。用户可以使用远程计算机107、109与数据服务器103和/或web服务器105交互,例如,使用web浏览器。客户端计算机107、109可以与数据服务器103一起使用以访问存储在其中的数据,或者可以用于其它目的。例如,从客户端设备107,用户可以如本领域中已知的使用互联网浏览器或者通过执行通过计算机网络(诸如,作为互联网)与web服务器105和/或数据服务器103通信的软件应用程序访问web服务器105。
服务器和应用程序可以组合在相同的物理机器上,并保留单独的虚拟或逻辑地址,或者可以驻留在单独的物理机器上。图1仅示出了可以使用的网络架构的一个示例,并且所使用的特定网络架构和数据处理设备可以变化,并且是它们提供的功能的辅助,如本文进一步描述的。例如,由web服务器105和数据服务器103提供的服务可以组合在单个服务器上。
每个组件103、105、107、109可以是任何类型的已知的计算机、服务器或其它数据处理设备。数据服务器103例如可以包括控制速率服务器103的整体操作的处理器111。数据服务器103还可以包括RAM113、ROM 115、网络接口117、输入/输出接口119(例如,键盘、鼠标、显示器、打印机等)和存储器121。I/O 119可以包括各种接口单元和驱动器,以用于读取、写入、显示和/或打印数据或文件。存储器121还可以存储用于控制数据处理设备103的整体操作的操作系统软件123,用于指示数据服务器103执行本文描述的一个或多个方面的webifier控制逻辑125,以及提供辅助、支持和/或可以与本文描述的其它方面结合使用的其它功能的其它应用程序软件127,例如电子表格软件应用程序。webifier控制逻辑在本文中也可以称为数据服务器软件、webifier系统、webifier软件、webifier插件或简称webifier。数据服务器软件的功能可以指基于编码到控制逻辑中的规则自动进行的操作或决策、由提供系统输入的用户手动制作进行的操作或决策和/或基于用户输入的自动处理的组合进行的操作或决策(例如,查询、数据更新等)。
存储器121还可以存储用于执行本文描述的一个或多个方面的数据,其包括第一数据129(例如,电子表格文档或文件)和第二数据131(例如,web数据存储,如下面进一步描述的)。设备105、107、109可以具有与相对于设备103描述的类似或不同的架构。如本文所述的数据处理设备103(或设备105、107、109)的功能可以分布在多个数据处理设备上,例如,以跨多个计算机分配处理负载,以基于地理位置、用户访问级别、服务质量(Qos)等来分离处理。
本文描述的一个或多个方面可以体现在计算机可用或可读数据和/或计算机可执行指令中,诸如在一个或多个程序模块中,由一个或多个计算机或如本文所述的其它设备执行。通常,程序模块包括例程、程序、对象、组件、数据结构等,其在由计算机或其它设备中的处理器执行时进行特定任务或实现特定抽象数据类型。模块可以用随后被编译用于执行的源代码编程语言编写,或者可以用诸如(但不限于)HTML或XML的脚本语言编写。可以将计算机可执行指令存储在有形和非暂时性计算机可读介质上,诸如硬盘、光盘、可移动存储介质、固态存储器、USB驱动器、RAM等。如本领域技术人员将理解的,程序模块的功能可以根据需要在各种实施例中组合或分布。另外,功能可以整体或部分地体现在固件或硬件等同物中,诸如集成电路和现场可编程门阵列(FPGA)等。可以使用特定数据结构来更有效地实现一个或多个方面,并且在本文描述的计算机可执行指令和计算机可用数据的范围内预期此类数据结构。
根据一个方面,webifier软件可以包括用于在现有电子表格软件应用程序内使用的插件或模块,例如,在MICROSOFT EXCEL内的插件。或者,webifier软件可以包括独立软件应用程序,其接受输入并生成一个或多个电子表格数据文件(例如,MICROSOFTEXCEL.xls/.xlsx工作簿文件或任何其它电子表格数据文件)和一个或多个软件和/或如本文所述的web应用程序作为输出。MICROSOFT EXCEL仅用于说明目的。本文描述的原理也适用于其它电子表格软件应用程序,以及其它电子表格存储格式、模式和/或标准。例如,可以使用COREL QUATTRO PRO、GOOGLE SHEETS、GNUMERIC、OPENOFFICE CALC或任何其它电子表格软件、应用程序和/或文档格式。如上所述,本文的方面可以同样适用于本地电子表格应用程序软件实现以及基于云的电子表格实现。
图2示出了根据本文描述的一个或多个方面的生成软件应用程序的说明性方法。最初,在步骤201中,用户(在本文中也称为设计者)可以使用设计者选择的电子表格软件应用程序来创建和/或编辑电子表格。设计者可以将数据源设置并定义为表,其中每个行是数据源的记录,和/或将数据源定义为电子表格文件,其中每个单独的电子表格是数据源的记录。以这种方式,设计者可以定义一个或多个数据源,并在一个或多个数据源中输入数据记录。
在步骤203中,webifier软件可以自动地或响应于用户输入分析电子表格以标识数据源和数据记录。当响应于用户输入时,webifier软件可以根据请求的用户动作的类型以不同的方式解析电子表格,如下面进一步描述的。
在步骤205中,webifier软件可以分析电子表格以标识一个或多个用户界面模板。用户界面模板可以包括用于一个或多个数据源的数据格式,例如字体、大小、颜色、样式等,和/或可以包括一个或多个数据源的选择或标识,每个数据源可以是包括一个或多个数据记录。用户界面模板还可以包括数据源和记录本身。
接下来,在步骤207中,webifier软件可以使用来自电子表格的数据生成web数据存储。web数据存储可以包括来自电子表格的所有数据,或者基于设计者在电子表格本身中或在生成过程期间设置的一个或多个标准或限制仅包括来自电子表格的数据的子集。或者,web数据存储可以包括电子表格本身,或者可以包括在电子表格中。
在步骤209中,webifier可以生成一个或多个web页面作为动态交互式web应用程序的一部分。每个web页面可以基于在步骤205中标识的一个或多个用户界面模板。每个用户界面模板可以定义和/或标识数据格式和/或一个或多个数据源以包括在web页面上。在呈现或生成以传输到最终用户浏览器时,每个web页面可以填充有来自web数据存储的数据,其满足用户界面模板中阐述的标准。在用户界面模板包括数据源和记录本身的情况下,所得web页面可以基于电子表格中的数据显示为简单的web表。
可以生成一个或多个web页面作为交互式web页面,例如,作为设计者将交互能力指定为用户界面模板的一部分的结果,或者作为在指示webifier软件生成相应的web页面时设计者请求交互能力的结果。
在步骤211中,当web页面是交互式的时,web应用程序可以接收用户输入以经由web页面编辑一个或多个数据记录,例如,使用表单字段、输入框或任何其它用户输入机制。在步骤213中,web应用程序基于用户输入更新web数据存储,例如,添加、编辑、删除和/或以其它方式修改先前存储在web数据存储中的数据。在步骤215中,webifier软件和/或web应用程序可以用于更新原始蓝图电子表格中的数据,原始蓝图电子表格用于首先生成web应用程序,或者可以将数据输出到新的电子表格。当替换蓝图电子表格中的数据时,可以保留数据格式,并且仅替换/修改数据。
关于web软件应用程序描述了上述方法。然而,代替web页面,webifier软件可以附加地和/或替代地生成用于在特定计算机或计算机上直接使用的独立软件应用程序,从而减轻使用软件应用程序时对网络访问的需要。因此,上述方法可以用于创建定制和/或复杂的软件应用程序。“复杂的”应用程序是指具有多个功能的应用程序,诸如数据输入、报告、多个用户、每用户安全访问设置、工作流、自动通知系统、保存历史信息、记录所有用户的改变、和/或文件附件等。“定制”应用程序可以指为满足特定业务需求而构建的软件,无论需求多么独特。虽然定制应用程序通常也可以这样做,但此种定制应用程序的结果并非设计成执行一项常见操作的现成(开箱即用)软件。因此,webifier软件可能不依赖于单个目的。相反,webifier软件是动态且灵活的,并且可以由具有普通技能的任何人使用诸如生产力软件组的复杂软件应用程序来使用,并从而用作雇用定制软件开发者的替代。
在说明性实现中,系统中存在至少两种类型的用户或参与者。首先是设计者,其为使用webifier软件设计软件应用程序、web应用程序或移动应用程序的人员。第二个是访问者或最终用户,即作为访问最终结果web页面、独立应用程序或以设计者预定的方式使用生成的移动应用程序的人员。
图3A描绘了说明性软件架构,其中目标系统350包括webifier逻辑353和存储器351,以及安装有webifier附加组件(Add-on)357的电子表格客户端应用程序354(例如,MSEXCEL)。附加组件357可以使用http请求从目标系统350加载其接口。
如图3A进一步所示,设计者可以使用电子表格应用程序354创建或制作记录表格并将表格改变模板化到熟悉的工作表,并且通过附加组件357观察301a数据变化,例如,使用Excel的COM Interop库。当设计者完成改变组时,附加组件357可以使用web服务API调用将更新的部分或另选地全部电子表格定义发送302到目标系统350的webifier逻辑353。webifier逻辑353可以处理新数据并更新303存储在存储器351(例如,web数据存储)中的数据。设计者可以使用附加组件357创建或进行对目标页面配置的改变,附加组件可以作为web服务API调用发送302到webifier逻辑控制器353。另外,设计者可以在访问目标系统的浏览器355中创建或进行改变,其可以作为http请求或web服务API调用发送301b到Webifier逻辑控制器。
响应于来自访问者的浏览器356到webifier逻辑353的http get请求304以提供目标页面,webifier逻辑353可以从存储器351中检索305电子表格定义。Webifier逻辑通过评估和引用模板表格中的值和格式以及评估和引用基于模板表格标识的记录表格中的值,将电子表格定义转换为html目标页面。可以将目标页面发送306到访问者的浏览器356。图3A进一步示出了访问者看到了页面具有:仅在模板表格中找到的文本标签,而不是记录表格中的文本标签;源自RecordSheet!A1的文本标签;评估RecordSheet!C2的“100”的值;以及由模板表格定义的html输入控件,其具有来自RecordSheet、用于复选框的RecordSheet!A2和用于文本框的RecordSheet!B2的值。图3A示出了访问者检查复选框并在浏览器356中单击提交,使得浏览器将http post请求307发送到webifier逻辑控制器353。webifier逻辑353可以从存储器重新加载当前电子表格定义305。webifier逻辑353处理发布请求并用更新的电子表格定义更新存储器351。如果设计者的附加组件357仍具有活动会话,则webifier逻辑353可以将更新的部分电子表格定义或者足以更新所呈现的电子表格定义的改变事件发送308到附加组件357,然后使用Excel的COM Interop库,附加组件357可以在电子表格应用程序354中向设计者呈现309更新版本,使得设计者的工作表然后将在单元格A2中显示为“true(真)”。
图3B描绘了使用电子表格和webifier逻辑之间的紧密集成的替代说明性软件架构,下面在标题为“紧密集成”的部分中更详细地描述。
现在将在下面附加参考图4至图98更详细地描述关于webifier系统的说明性方面的附加细节,图4至图98示出了根据本文描述的一个或多个说明性方面的基于电子表格的软件应用程序开发系统的说明性屏幕截图。所描绘的屏幕截图本质上是说明性的,并且不旨在限制本文描述的任何方面的范围。说明性屏幕截图并不意味着限制webifier与特定电子表格应用程序或任何特定系统架构一起使用。相反,屏幕截图示出了webifier系统的各种特性和功能,无论是否与本地或基于云的电子表格应用程序一起使用。
图4至图10是具有特定于Webifier的可用公式函数的电子表格应用程序的屏幕截图,其中安装了附加组件。
图11是附加组件页面列表的屏幕截图,其示出了访问者在访问该页面时可能看到的目标页面的弹出缩略图预览。
图12是安装有附加组件的电子表格应用程序的屏幕截图,其中在电子表格应用程序工具栏中添加了附加菜单,其中用户登录,并且示出了在具有可用的Web应用程序列表的电子表格应用程序的侧内的框架内的附加组件界面。
图13是安装有附加组件的电子表格应用程序的屏幕截图,其中在电子表格应用程序工具栏中添加了附加菜单,其中用户未登录,并且示出了login(登录)页面。
图14是安装有附加组件的电子表格应用程序的屏幕截图,其中附加菜单选项已被添加到单元格的右键菜单中。
图15是游戏化用户通知弹出的屏幕截图。
图16是由应用程序的源组织的web应用程序列表的屏幕截图。
图17是web应用程序列表上的一个应用程序的激活动作菜单的屏幕截图。webifier限制了可用的应用程序操作,因为Web应用程序权限受自有设计者的限制,如图21所示。
图18是当前所选应用程序“Test-Copy(测试-复制)”的空页面列表的屏幕截图。
图19是web应用程序列表上的激活的“App Information(应用程序信息)”对话框的屏幕截图,其示出了关于特定web应用程序的概要信息。
图20是示出包含传统电子表格表的源电子表格定义的图,并且该表在报告页面中被引用作为记录源,并且示出了使用电子表格定义定义的结果目标页面。该图进一步说明了对于特定登录访问者“Halee”,webifier已将记录集过滤到仅第2行,其中单元格A2与登录的用户名和公式匹配,如屏幕截图右上角所示,“=ISLOGGEDINWEBUSER(A2)”在目标系统上进行评估时返回真(true)。该图还示出了函数ISLOGGEDINWEBUSER在设计时返回交替占位符值,但在呈现目标页面时,在已知登录访问者时正确评估。
图21是与其他用户共享的应用程序的屏幕截图,并且设计者指定他们希望添加的设计者对于web应用程序所具有的权限。
图22是template(模板)菜单的屏幕截图,其具有单击将模板复制到新的可修改的web应用程序中的选项。
图23是在电子表格应用程序中创建新电子表格之后点击upload(上传)选项的用户的屏幕截图,并且现在呈现有上传对话框以命名新应用程序,并且其中名称默认为之前创建的电子表格文件名称。
图24是名为“API_Page(API_页面)”的目标页面的共享选项卡的屏幕截图,并且设计者指定访问该页面是否需要登录以及允许访问该页面的用户列表。
图25是基于用户的电子邮件地址从共享选项卡打开以将用户添加到允许访问该页面的用户列表的对话框的屏幕截图。
图26是正被定义的API类型的页面的屏幕截图,其创建可以以编程方式访问并且具有对应于由设计者指定的特定插入页面的输入的web服务API页面。
图27是正被定义的calendar(日历)类型的页面的屏幕截图。电子表格示出记录表格,以及缩略图示出访问者将看到的复杂控件。范围控件设置为记录表格上的相应列。
图28是可用于定义日历类型的页面的附加选项的屏幕截图。
图29是以简易模式定义的container(容器)类型的页面的屏幕截图。
图30是以高级模式定义的容器类型的页面的屏幕截图。
图31是以图形设计者模式定义的容器类型的页面的屏幕截图。
图32是可用于定义容器类型的页面的附加选项的屏幕截图。
图33是正被定义的CSV Import(CSV导入)类型的页面的屏幕截图。缩略图演示了复杂的控件组,这些控件将呈现给页面的访问者,并且源按名称设置为整个工作表。
图34是可用于定义CSV导入类型的页面的附加选项的屏幕截图。
图35是正被定义的详细Details Report(报告类型)的页面的屏幕截图,其中设计者基于命名范围/Defined Name(定义名称)选择模板表格。屏幕截图示出了模板源引用的各种选项。
图36是正被定义的详细报告类型的页面的屏幕截图,其中设计者基于从电子表格工具的单元格中选择的B9:C12的定制范围来选择模板表单,并且设计者已经点击了模板定义部分中的“use selected(所选使用)”按钮。
图37是可用于定义详细报告类型的页面的附加选项的屏幕截图。屏幕截图还示出了电子表格工具单元格上的浅绿色叠加,以及设计者可在模板定义中使用的函数列表。在图4至图10中定义函数细节。
图38是正被定义的Edit-Cells(编辑单元格)类型的页面的屏幕截图。
图39是可用于定义编辑单元格类型的页面的附加选项的屏幕截图。屏幕截图还示出了基于电子表格工具中当前选定的B1:C1单元格的定制范围定义的header range(标题范围)。
图40是用于定义编辑单元格类型的页面的标题范围的各种选项的屏幕截图。
图41是正被定义的Edit-Record(编辑记录)类型的页面的屏幕截图,其中设计者指定源记录表格的方向是基于行的,使得每个行表示不同的记录。
图43是正被定义的Insert(插入)类型的页面的屏幕截图,其中缩略图示出了可由目标页面的访问者看到的自动生成的html表单的预览。
图44是用于插入类型的页面的各种选项的屏幕截图。其进一步示出了webifier支持的一些数据验证器。
图45是正被定义的Link(链接)类型的页面的屏幕截图,其中缩略图示出了将生成的超链接的预览,但是其中公式函数显示占位符值而不是实际值,以及其中在点击链接时访问者将被定向到的目标被指定为特定日历目标页面。
图46是正被定义的PDF类型的页面的屏幕截图,其中缩略图示出了具有将基于设计者选择先前创建的插入目标页面作为PDF的基础而生成的嵌入在PDF中的表单的PDF的预览。
图47是正被定义的Report(报告)类型的页面的屏幕截图,其中报告没有单独定义的模板表格。缩略图示出了行记录表格将导致目标页面列出与行记录表格的单元格格式相同的所有记录。
图49是正被定义的Tabs Container(标签容器)类型的页面的屏幕截图,其中设计者已选择了两个先前创建的目标页面以包含在标签中。缩略图示出了目标页面,该页面将在页面的顶部处具有两个可视选项卡,其中每个选项卡都具有一个先前创建的页面作为内容的基础。
图50是正被定义的Text(文本)类型的页面的屏幕截图,其中设计者可以使用WYSIWYG编辑器输入富文本。
图51是系统的屏幕截图,该系统在接收到来自设计者的添加页面的请求之后呈现待添加的页面类型的选项。
图52是正被定义的Report(报告)类型的页面的屏幕截图,其中webifier已经自动检测到电子表格中的图表可用,并且webifier示出了可以在报告目标页面上显示的图表的下拉列表。
图53是由目标系统通知的附加组件的屏幕截图,其中已经接收并检测到来自访问者的变化,并且将自动下载或者设计者能够在期望的时间点击下载数据以检索它们。
图54是页面列表的屏幕截图,其中设计者已经点击了页面的动作菜单,并且附加组件呈现了目标页面的支持的操作选项,诸如duplicate(复制)或delete(删除)页面。
图55是从页面列表内显示web应用程序动作菜单的附加组件的屏幕截图,其具有用于整个web应用程序的各种操作选项,诸如duplicate(复制)web应用程序。
图56是可用于外部系统或附加组件的目标系统web服务API函数调用的示例文档,其展示了web服务API调用的典型使用和请求格式。
图57是目标报告页面的屏幕截图,其示出了使用模板表格定义的报告页面类型的结果以定义布局,从而具有在左侧列出的行记录,在顶部的一些链接,以及可在右侧点击以弹出聊天的图标。
图58是目标系统在访问者访问聊天对象之后检索聊天记录并提示访问者输入新聊天的屏幕截图。
图59是具有示例电子表格的屏幕截图,其中正在使用公式函数创建聊天对象,并且将GUID作为参数传入以指示哪个聊天记录组与该聊天对象相关联。在此示例中,设计时在单元格中示出的可见占位符文本是传入的GUID。
图60是具有示例电子表格的屏幕截图,其示出了如何可以在电子表格中使用多个外部补充数据对象:聊天对象、文件对象和图像对象。屏幕截图示出了如何存在占位符文本,如文件的GUID或未插入图像时的#None的情况,或如何存在指定为公式函数的参数的其它标题(例如,图5),如在文件对象显示“10KB”的大小的情况下。它还示出了两个单元如何可以引用相同的外部数据对象,在本例中为E7和F7。
图61是可以从图60中的电子表格创建的目标报告页面的屏幕截图。该页面示出了如何用交互式聊天对象替换占位符文本,并且单元格E7和F7现在允许页面示出外部补充数据对象的多个属性。
图62是图61中的目标报告页面的屏幕截图,其具有通过来自浏览器的上传对话框接受附加图像文件的能力。屏幕截图还示出了与目标页面上的图像对象进行交互导致控件从简单的文本标签改变为适合选择文件的标签,并且系统支持设计者为访问者指定权限以改变图像对象的公式,允许访问者改变上传将传到的文件箱。
图63是图61中的目标报告页面的屏幕截图,其显示当访问者经由目标页面将图像上传到图像对象之后用于该图像对象的当前存储的图像。
图64是图60中的示例电子表格的屏幕截图,其中公式函数的参数是任意文本字符串而不是GUID。
图65是目标系统管理页面的屏幕截图,其允许设计者指定被允许连接到目标系统的编程式客户端或自动客户端以及客户端如此做需要什么认证参数。
图66是目标系统页面的屏幕截图,其具有从web应用程序“Timesheet(时间表)”下拉的其它页面的导航菜单。
图67是目标系统管理页面的屏幕截图,其允许将web应用程序导出为包含电子表格定义的单个自包含文件,记录表格和模板表格两者,以及共享设置和通知设置。
图68是目标系统管理页面上传对话框的屏幕截图,其允许上传电子表格定义,其具有从图67导出的导入信息的相同选项。
图69是web应用程序列表上的一个应用程序的激活动作菜单的屏幕截图。与图17不同,webifier提供了对附加操作的访问,诸如“add page(添加页面)”,因为设计者具有对web应用程序的适当权限。
图70至图73是目标系统管理页面的屏幕截图,其允许设计者定义Insert(插入)、Link(链接)、Report(报告)和Text(文本)类型的页面,其分别非常类似于图43、图45、图47和图50,但是不需要附加组件或第三方电子表格工具。
图74是传统电子表格表的屏幕截图,其示出了该表可以具有控件以基于列C中的值来过滤电子表格记录,并且示出了使用公式(诸如列H上的日期公式)对电子表格记录的附加过滤。
图75是目标系统管理页面的屏幕截图,该目标系统管理页面支持页面类型的web页面到任意外部URL并允许各种潜在的源,而不仅仅必需是URL。
图76是目标系统管理页面的屏幕截图,其示出了webifier具有深度嵌套容器的能力。
图77是目标系统支持编辑记录类型页面的一些附加选项的屏幕截图,其具有来自目标系统管理页面的可编辑性。
图78是一些附加选项的屏幕截图,类似于图44中所示的选项,目标系统支持插入类型的页面,其具有编辑来自目标系统管理页面而不是附加组件的能力。
图79是示出目标系统的屏幕截图,该系统提供限制用户输入的选项,也称为数据验证,并且其中数据验证规则可以特定于所存储的数据值的类型。
图80是示出目标系统的屏幕截图,该系统提供Restrict User Input(限制用户输入)的选项,其中部分数据验证规则引用电子表格定义中的单元格范围。在此示例中,系统支持整个工作表或工作表中的定制单元格范围。
图81是目标系统支持修改各种类型的页面内的Editable Range(可编辑范围)的屏幕截图,使得该范围之外的所有内容都是不可编辑的。其示出了使用命名范围对别名的支持,诸如“Everything(所有内容)”,以及由设计者指定的定制范围。
图82是HTML代码的示例,其中目标系统可以自动生成以便在任何外部站点页面内具有嵌入的目标页面。
图83是目标系统的通知设置页面的屏幕截图,其示出了用于通知设置的各种选项,对用于向外部自动化系统的通知的web服务API调用的支持,以及多种类型的通知。
图84是用于特定通知的目标系统的配置选项的屏幕截图。其示出了通过由设计者指定的URL的其webhook功能以及电子邮件能力。
图85是用于特定通知的电子邮件模板的目标系统的配置选项的屏幕截图。
图86是目标CSV导入页面的屏幕截图,其示出了webifier在导入期间接受CSV文件,能够通过分析电子表格来利用关于与其链接的记录表格的元数据,并且能够报告插入记录表格的请求的状态。
图87是如图86中的目标CSV导入页面的屏幕截图,但是示出了当数据经由CSV导入表单到达时系统能够强制执行并报告数据验证规则的失败。
图88是目标编辑单元格页面的屏幕截图,其示出了从图38中所示的附加组件接口定义的编辑单元格页面类型的结果,并且目标页面的控件改变了切换到“edit mode(编辑模式)”的任何单元格作为用户交互的结果。
图89是目标编辑记录页面的屏幕截图,其示出了定义的编辑记录页面类型的结果,到用户的动态通知消息作为删除行的结果,以及当目标系统确定“(Edit)编辑”和“(Delete)删除”权限时启动对模板表格定义的控制修改,并且页面定义已启用了这些选项。
图90是当访问者已经点击图89中的“Edit Raw(编辑行)”按钮时目标编辑记录页面的屏幕截图,其示出了在没有定义模板表格时使用的自动生成的输入表单,并且示出了输入表单可以具有控件,诸如下拉框,其中由电子表格定义来定义选项。
图91是在访问者填写表单中的任何字段之前的目标插入页面的屏幕截图,其示出了通知访问者确认提交已修改了记录表格并且示出了目标页面可以显示呈现具有默认值的字段以及基于数据验证规则不可编辑的字段。
图92是当访问者在电子表格定义的相关联的单元格数据类型设置为日期情况下为字段输入数据时,向目标插入页面的访问者显示的复杂交互控件的屏幕截图,如图91所示。
图93是访问者输入数据验证规则失败之后的目标插入页面的屏幕截图,其示出了对界面的修改以通知访问者失败。
图94是目标系统管理页面的屏幕截图,其允许具有服务器管理许可的设计者控制与目标系统的管理功能相关的访问许可,对于特定角色,其进一步示出了角色具有级联权限的子角色的能力。
图95是目标系统管理页面的屏幕截图,其示出了目标系统的各种细化管理许可。
图96是目标系统管理页面的屏幕截图,其示出了对于登录到目标系统或在目标系统上创建帐户的访问者来说,具有多种选项的复杂密码策略是可能的。
图97是示出源电子表格定义的图,其在电子表格中设计并且具有由设计者指定的多个格式化选项,以定义为访问者生成的目标页面上的内容的格式。
图98是复杂目标页面的屏幕截图,其涉及具有三个页面选项卡的选项卡容器,并且其中第一页面选项卡具有嵌套容器页面,该嵌套容器页面具有多个嵌套页面,嵌套页面包括来自输入页面的自动生成的输入表单、报告页面和其来源是图表的报告页面。
电子表格和记录
仅作为说明性参考,本文引用了两种使用样式的电子表格。也可以使用其它样式。首先是表格记录,其中每个记录包括整个表格或容纳多个表格的整个文件。例如,许多公司为他们创建的每个销售报价保存新的销售报价电子表格文件。该文件可以具有多个表格,诸如用于后端计算的一个表格和旨在具有可打印报价的一个表格,并且可打印的报价表格通常具有多个行和列,行和列包含文本、数字和公式,其使得文本或数字都代表单个报价。它们还可能包含足够的格式以允许相当可读的打印输出。
然后是行记录和行记录表格,其中多个记录一起指定,通常在单个表格中(例如,图53,列A至列D)。电子表格文件可以包含零个、一个和/或多个行记录表格。行记录表格可以仅限于表格的一部分(例如,图60,列A至列B),其上可以具有附加的行记录表格或不相关的数据(例如,图60,列E),但为了简单起见,我们仍将其称为整个行记录表格。例如,许多公司将拥有类似于以下内容的客户列表电子表格。表格可以在顶行1中包含一些列名称,诸如“Client(客户端)”和“Industry(行业)”和“Client ID(客户端ID)”。下面的每个行都可以包含与单个客户端相关的数据。例如,行2可以在列A中具有“Pleasant solutions(合适的解决方案)”,在列B中具有“Software Development Services(软件开发服务)”,并且在列C中具有“1”。行3可以在列A中具有“NewCo”,在列B中具有“Consulting(咨询)”,以及在列C中具有“2”。不论名称,行记录也表示列表,其目的是翻转行和列,因此记录从左到右列出,就像列记录一样。
在上面的步骤201至步骤203期间,可以使用任一种技术或两种技术,从而允许使用webifier软件来创建复杂的、多用户的、完全定制的目标软件,而没有预定的或预先暗示的目的。可以创建独立应用程序、Web应用程序或移动应用程序(为了方便起见,web和移动可以统称为“web应用程序”),而不需要编程或数据库经验。本文描述的一些方面可能旨在取代雇用定制软件开发公司的需要,即使对于涉及数据、定制用户界面、不同的查看设备能力、并发使用、数据和用户工作流、自动通知、预定事件、业务逻辑和更多的复杂场景也是如此。
模板表格
参考说明性实现,现在相对于用户界面模板更详细地描述步骤201和步骤205。无论是在传统电子表格应用程序、基于云和web的电子表格、或嵌入在web应用程序内的简化电子表格界面中完成,都可以使用电子表格工具制作电子表格,该电子表格表示访问者或报告布局所需用户界面。例如,模板可以具有一个表格,其具有多个行和多个列,行和列包含与单个报价相关的值和公式:顶部附近的客户的大字体文本标题,其后是第一值为“Invoice Number(发票编号)”的行和右侧的单元格,以及其右侧的单元格将用于显示实际的发票编号。下面几行可以具有跨越多个行和多个列的单元格并用于以斜体显示注释。在表格的底部附近,标为“Subtotal(小计)”的单元格及其右侧的单元格具有单元格格式以指定带有“$”符号的货币,并且旨在具有表示该特定发票的总计的数字(其中该单元格在网格上具有C15的位置)。下几行可以具有与税收和税后总计相关的单元格,而不是旨在稍后使值放置在那里,税收和总计单元格将具有引用小计单元格位置的电子表格公式,诸如“=C15*10%”,其中旨在对C15的改变会影响基于这些公式的总计。
模板表可以嵌套,诸如在父模板和嵌套模板之间的多对多关系中,和/或嵌套到多个深度级别(图76)。根据一个方面,webifier软件可以定义电子表格公式函数,诸如“USETEMPLATE()”,其接受应该使用什么模板表格的单元格范围引用或模板标识符。其中使用公式的单元格可能隐含地提供一些信息,诸如根据单元格的位置插入嵌套模板表格的位置,或基于单元格大小分配给嵌套模板的宽度和高度。如果用于填充模板的源记录与父模板不同,则可以将参数传入USETEMPLATE函数,该函数将允许模板知道哪些与非嵌套模板表格的方式非常相似的源数据适用于某些页面类型(如下面进一步描述的)。这允许诸如发票模板的场景,其内包含需要从不同记录表格上的记录填充的“invoice item(发票项目)”列表。通常,此种嵌套模板表格将利用传统电子表格“merge cells(合并单元格)”功能,以允许其以足够的宽度和高度显示,而不影响父模板的行或列对齐,以及利用传统表格功能以将记录过滤(如下所述)提供到仅属于特定发票的那些发票项。
Webifier软件可以允许模板表格单元具有引用模板表格内的其它单元格、其它模板表格内的单元格、记录表格数据或同一单元格内的所有上述内容的混合的公式。所描述的技术还允许用于输入功能的一个或多个模板以及用于输出功能的一个或多个不同模板同时使目标系统的访问者可用,即使基础源引用相同或部分重叠。公式通常在本质上是声明性的,但是可以使用由任何电子表格工具和/或新格式或语法支持的任何公式或等式。
具有记录公式(模板指示)或参考表格数据的表格模板
在电子表格工具中设计模板表格时,旨在表示特定记录或从多个记录导生的聚集值的单元格可能评估为空和/或具有占位符值,该占位符值对系统没有影响的,而不是向设计者指示格式。外部列表或数据库可能包含单元格位置的交叉引用(诸如C15)以及其预期用途,诸如显示发票的小计。或者,如果记录表格单元格可从模板表格引用,则可以在引用这些记录的那些单元格中插入公式或占位符公式。例如,模板上的客户标题单元格可能具有公式,诸如“=ClientList!A1”,其可能会在设计时作为占位符由电子表格工具评估为文本“Client(客户)”,或者公式可能是“=ClientList!A2”,其可能在设计时作为占位符由电子表格工具解析为“Pleasant Solutions(合适的解决方案)”。另外,ref可以是“=ClientList!A:A”或“=ClientList!A1:A1000”,其导致空、错误或非预期值。在上述每种情况下,在设计时产生的文本仅是设计时占位符,并不像公式本身那样重要,公式具有ClientList中哪个列用于填写模板的有用信息,以在稍后点处的实际求值期间协助webifier,诸如访问者。为了方便起见,这个概念通常可以称为模板指示。
模板指示公式可以由设计者键入,或者从可用或相关数据列的列表中拖放而得到。公式对于电子表格工具的单元格引用(在命名表的情况下为“=ClientList!A1”或“=ClientList!Client”)是典型的,典型的函数调用语法为此目的触发专门的动作(“=GetRowRecordData(“Client(客户)”)”),或者它们可以是专门的单独格式,诸如“[[客户]]”。公式可以存储在电子表格的典型的单元格中,或者它们可以存储在公式的特殊外部列表中,以及关于它们将被应用于哪些单元格的信息。
电子表格定义进入目标系统
一旦根据需要利用适用数据配置电子表格,步骤207(图2)可以进一步包括设计者使用webifier软件发起构建目标系统的过程,这里关于一个或多个说明性实施例进行描述。用户可以登录目标系统(图13)并访问接受电子表格的管理web页面。例如,webifier软件可以具有接受上传xlsx电子表格文件(图68)的输入表单,例如数据129(图1)。或者,webifier可以集成以经由web服务API从基于云和web的电子表格工具获取电子表格定义,一次一组表格(如果API允许)或者甚至逐个单元格(如果API需要)。为了简洁起见,所有这些方法在本文中称为“uploading(上传)”,或将电子表格定义或数据文件上传到webifier数据存储器,例如,数据库131(图1)。值得注意的是,上传记录和上传界面模板不需要单独的步骤,它们可以从设计者的一个步骤中从一个电子表格定义中发生,或者它们可以在不同的时间发生。
webifier可以临时存储电子表格定义,用替代且更有效的格式替换它,或者用中间格式替换它,该中间格式被认为或不再被认为是电子表格。实现效率化和简化实现的平衡的一个示例是将表格转换成数据库条目,其中表格中的每个单元格是数据库表格中的一个数据库记录,其具有表示单元格和内容的位置的4个字段:表格、列、行、内容。内容可以与电子表格定义的原始方案匹配,但可以在数据库中有效地查找单元格。系统还可以以接收的格式永久地存储它,从而通过直接修改电子表格定义来保持目标系统页面上的访问者输入,如本文所述。
创建WEB页面
如上面关于步骤209(图2)所讨论的,所得软件可以包括web应用程序,该web应用程序包括一个或多个web页面,这里关于说明性实现进行讨论。设计者可以在webifier软件的管理界面(图18、图69和图55)中选择“Add Page(添加页面)”功能,并从各种页面类型(图51)和配置选项(图52)中进行选择。电子表格定义中的单元格数据或元数据可能包含用于创建新页面的指示或指令,设计者预期哪些类型的页面,以及它们的各种配置选项;但是如果没有此信息,可能会提示设计者。可能在目标服务器上创建各种页面类型。通常,所有生成的目标页面的菜单在所有目标页面上显示为菜单,以便在整个Web应用程序中方便地导航(图66,“Timesheet(时间表)”Web应用程序菜单列出该特定示例的所有三个目标页面),以及目标页面可以按“apps(应用程序)”进行分组,这些应用程序通常根据它们来自哪些电子表格定义或文件进行分组和/或由创建它们的设计者进行分组(登录设计者,或者与登录设计者共享电子表格定义的其他设计者或其它分组)(图16)。设计者可以通过拖放页面来修改目标系统菜单中目标页面的顺序,以便在附加组件中改变其顺序。
添加页面(报告页面)+可见的源范围
webifier软件可以创建的一种说明性类型的web页面是“report(报告)”页面类型。报告的标题可以由用户指定,或者从电子表格数据或标题生成(图52)。也可以指定源。源可以是电子表格定义中的表格名称(类似于CSV_Import页面类型的源控件,如图33所示),典型的电子表格单元格范围引用,诸如“=B9:C12”(图36),电子表格中定义的图表名称(图52),或电子表格“named range(命名范围)”(有时称为“defined name(定义名称)”),这是可通过名称引用的单元格范围,诸如“TotalColumn(总栏)”或“PrintableArea(可打印区域)”或“Employee List:Employee(员工列表:员工)”(图36)。通常,范围不必是连续的块,它们可以包括多个块和单元格。例如,“A1:A8,A10,A30:B30”。许多页面可以引用相同的源单元格,源单元格可以与另一页面的源部分重叠,或者页面可以具有待组合的一系列源。这可以是目标系统基于设计者在电子表格工具中设计的报告向访问者显示HTML web报告或移动屏幕的足够配置。例如,可以指定ClientList(客户端列表)表格,其中列表中的所有行记录现在都可供访问者访问。可以指定许多可选配置,诸如“Show Page Title(显示页面标题)”(图28)。还可以在应用程序或页面上指定权限规则,以控制是否需要登录以查看页面(图24)允许哪些登录用户或用户组或角色查看页面以及从哪些设备、网络或一天中的哪些时间查看页面。图25示出了简化示例,其示出了允许哪些登录用户在页面上查看。最终结果是显示报告的web页面,其看起来类似于提供数据的原始模板电子表格,包括数据的布局和格式(图97),而无需用户具有web设计的相关知识。
目标页面的源数据而不是单元格范围可以链接到电子表格定义内的特定元素,诸如定位成悬浮在单元格之上的图表。
某些页面类型可以具有自动将若干预先配置的控件添加到目标页面的选项。例如,“allow search(允许搜索)”(图48)或“allow PDF export(允许PDF导出)”(未显示)选项在某些页面类型(诸如日历页面类型)上可用,这可能导致目标页面不仅具有预期的日历,还具有多个控件,诸如搜索文本框和搜索提交按钮以通过诸如滚动和聚焦搜索结果的方法将用户的注意力吸引到特定数据。可以在客户端或服务器端执行搜索结果的处理。
添加插入页面+默认表单生成
根据说明性实施例,webifier可以创建的另一种类型的页面是“insert(插入)”页面类型,例如,如在步骤211(图2),上面(图43)中可以使用的那样。类似地,可以指定ClientList的源,并且如果设计者希望,可由访问者插入行或列的指示。可以自动标识或检测表示标题行的单元格范围并将其呈现给用户以进行覆盖(图39)。例如,可以基于单元格的位置(图40显示检测到第一项是标题)、格式的差异(诸如,与下面列出的行相比的字体粗体或下划线)或者仅仅取表格的第一行进行检测。目标系统可以提供其它页面的列表作为在访问者完成插入后自动重定向访问者的选项(图44)。然后,目标系统可以向访问者显示自动生成的输入表单,其具有基于其各自输入控件旁边的标题行中的列的标签,并允许访问者插入数据(图91)。电子表格的ClientList中的单元格格式可能影响自动生成的输入表单上的单元格标签和输入控件的html格式。每个输入字段的标签可以由“Header Source(标题源)”确定,并且通常是源范围的第一行,已定义名称或用户选择的范围。
除了在电子表格定义中指定限制之外,可以由设计者利用在更多设置选项卡上的用于附加组件或目标系统管理页面的每个字段的“restriction user input(限制用户输入)”选项手动指定或进一步限制表单上的输入类型(图78):例如,“User of Page(页面用户)”和“Current Date(当前日期)”限制(图44)可能显示不可编辑的字段,其中包含已登录用户的名称或已填写的当前日期(图91);某些列可能具有从以前的记录中复制的公式,并且也是不可编辑的;“Whole Number(整数)”和“Decimal(十进制)”具有当前数字输入,其仅允许所选类型的数字;“List(列表)”可以显示包含指定范围内的值的下拉框输入;“Date(日期)”显示用于选择日期的日历(图92);“Time(时间)”显示24小时时间选择器;“None(无)”和“Text Length(文本长度)”可以显示文本字段。
添加插入页面+定制UI(模板源)
根据说明性实施例,如果插入页面具有更多复杂性或定制要求,则除了电子表格内的第一ClientList源之外,设计者还可以在电子表格内指定“Template Source(模板源)”(图35)。它仍将执行到客户列表的插入,但输入表单用户界面可以由模板源定义。只要在模板源上找到模板指示,单元格的显示都可以替换自动生成的输入控件,其中输入控件的格式取自模板指示单元格的格式。
添加细节页面+细节列表导航
根据说明性实施例,另一个页面类型是基于指定记录源和模板源的“details(细节)”页面。目标系统可以将控件置于呈现模板化报告的结果之上,这允许访问者选择模板应该应用到的记录。作为替代方案,细节页面可以与报告页面结合使用。报告页面和细节页面都将具有ClientList电子表格作为源。ClientList电子表格可能具有名为“Go ToDetails(转到细节)”的添加列,并且每个行都将有公式,诸如“=NAVIGATETO(‘DetailsPage’,A3:Z3,Blue,LinkStyle)”,它将向目标系统指示显示列出所有客户的主报告页面时,超链接样式的导航控件应在每个行上可视,行都会将访问者带到由行3或者被点击的相应行填充的DetailsPage。作为另一个替代方案,在报告页面创建期间的配置选项可以提示设计者指定待生成的导航链接而不是直接在ClientList电子表格内指定它们。细节页面上评估记录值的单元格格式可以是模板指示单元格格式组合使用记录数据填充模板指示单元格的单元格的任何给定行的格式的混合,其中根据目标系统默认值行为和设计者选择的首选项一个格式覆盖另一个格式,如果两个单元格都具有冲突的格式与可组合的格式(著如记录上的颜色改变组合模板上的较大字体大小),则格式优先于设计者选择的首选项。目标系统还可以分析记录以确保最常见的格式不会覆盖模板格式,但是可以允许一些少见且因此有意的格式改变来覆盖模板格式。
添加编辑单元格和编辑记录页面
对于访问者在目标系统上的目标页面内编辑单元格,设计者可以根据说明性实施例创建编辑单元格页面(图38)或编辑记录(图41)页面。从页面创建web页面来看,可以通过输入标题并选择页面类型“Edit-Cells(编辑单元格)”或“Edit-Record(编辑记录)”来类似地创建它们。编辑单元格页面允许访问者编辑单个单元格,但显示与报告页面非常相似的页面,直到访问者开始与可见元素交互(图88)。编辑记录页面可以允许访问者浏览记录(图89),编辑和/或删除行或列,并且可以类似于具有默认表格生成的插入页面(图90)。页面源可以是待在页面上显示的单元格值的范围,并且默认情况下,指定可以编辑哪些单元格的第二范围(图42)匹配页面源,使得所有单元格都是可编辑的。范围可以是整个工作表、已定义名称和/或定制范围。目标系统查询源范围以显示具有数据的每个单元格和其间具有数据的单元格。两个编辑页面还可以具有空的空间的附加行和/或列,以允许用户通过插入来扩展记录集。已定义名称或定制范围将仅包括由该范围引用的单元格。目标系统可以通过在设计者指定范围之后创建已定义名称来实现定制范围选项。编辑记录页面类型还具有行或列的附加选择(图41),其可以确定页面上可用的编辑按钮。
在“More(更多)”部分中存在用于两种类型的编辑页面的附加设置(图39和图42)。设计者可以使用第一行/列或使用已定义名称或定制范围指定“Header Range(标题范围)”。如果选择了标题范围,则设计者可以指定是否可以由访问者编辑这些标题。标题将显示为页面的第一列(图90)或列编辑记录页面的顶行。设计者还可以选择可编辑范围,该范围必须包含在主页面源中。该可编辑范围可以是可以由用户编辑的所有单元格。还存在显示页面标题的一些选项以允许搜索页面,显示单元格之间的网格线,以及显示行和列编号/字母。
对于编辑记录类型页面,可能存在允许删除和编辑的附加选项(图42)。两者都是默认允许的。这可以使得在每个记录旁边的目标页面上显示其它控件(图89)。如果选择“allow delete(允许删除)”并且行/列中的所有单元格都在可编辑范围内,则只能从页面删除行/列。如果选择“allow edit(允许编辑)”并且行/列中的至少一个单元格在可编辑范围内,则只能从页面编辑行/列。在这种情况下,根据一些方面,可以仅编辑实际在可编辑范围内的单元格。
根据说明性实施例,当查看编辑单元格类型目标系统页面时,用户可以点击任何可编辑单元(在创建/编辑页面时定义可编辑单元格范围)以进行编辑。可以暂时隐藏表格单元格的内容,并且利用依赖于单元格编号格式的输入元素替换,其中单元格的当前内容作为默认值(图88)。保存和关闭按钮也是可见的。文本单元格将显示文本字段,数字格式(诸如十进制或货币)将显示具有键入文本的选项的数字选择器,日期显示日期选择器,以及时间显示时间选择器。如果为单元格设置了传统的电子表格数据验证,这也可能影响显示的输入元素,其中列表验证显示下拉框,以及数字显示数字选择器。应用于页面的目标系统验证还具有日期、时间或地图/GPS的选项。日期和时间将分别显示日期选择器和时间选择器。地图/GPS将允许用户输入GPS坐标,或点击地图以生成它们。改变这些值并保存将以在电子表格工具中一样的方式改变电子表格定义中单元格的值/公式。如果单元格包含使用WEBIFIERINSERTFILE公式函数的文件引用,则将为用户提供上传新文件或图像的选项(图62)。在选择保存后,新数据将发送到服务器,并返回字符串值以替换已编辑单元格的内容。可以隐藏保存和关闭按钮,并且单元格像往常一样显示其值。如果上传了文件,则刷新页面。在单击保存按钮后,可以将以下内容发送到服务器:页面ID,新单元格值,单元格的行和列,描述数据类型的单元格类型,以及指示目标系统页面是否嵌入在另一个web页面上的布尔值。如果上传了文件,则也会发送文件密钥、文件ID和文件数据。在服务器处理编辑请求后,会将JSON对象发送回客户端,其指定待在单元格中显示的新文本。
添加日历页面
可以在附加组件中创建日历页面(图27),但是根据说明性实施例,它们也可以通过网站创建。为了创建日历页面,可以使用三个数据:事件日期(必需,日期格式化单元格),事件时间(可选,时间格式化单元格)和事件标题(必需)。用户选择添加页面按钮,然后选择日历作为页面类型。两个选项可用于如何输入每个参数的单元格范围:已定义名称和定制范围。已定义名称允许用户从附加的工作簿提取的已定义名称选项列表中进行选择。定制范围允许用户通过按“Use current selection(使用当前选择)”按钮或手动输入选择器来指定范围。在指定这些参数后,可以保存页面。事件的日期可以是唯一必需的字段,没有标题的事件可以默认为“Event(事件)”,以及没有时间的事件可以默认为“All Day(全天)”。在将改变上传到服务器后,日历页面视图将显示包含指定事件的日历小部件。提取三个指定的参数源并用于构造由标题、日期和时间属性组成的事件对象。然后,这些对象显示在日历小部件上,通常作为其适当日期内的标题列表。设计页面上的缩略图反映并匹配呈现的日历小部件。
添加嵌套的容器页面
容器页面是可以包含另一个页面的一个或多个实例的页面。在页面创建期间,通过从类型下拉框中选择‘容器’来创建它们。可能至少有三种不同的模式,其可以用于创建容器页面:简易、高级和图形设计器,可以经由UI中的按钮进行选择(图29)。
简易模式可以将子页面呈现为网格布局。可能需要两个数据:列数和子页面,其将包含在容器中(图29)。最终布局中的行数将取决于为容器选择多少页数。
在简易模式创建期间,经由下拉框选择每个子页面。下拉框以网格布局,其反映每个子页面将在呈现页面上的显示位置。在添加页面时,可以附加下拉框的新的空白行,以便可以添加更多的其它页面。还可以存在创建新页面的选项并将其添加到容器中,该页面可以在保存容器本身时保存。同样,如果改变了列数,则可以添加或删除下拉框以反映新列数。在简易模式下创建的容器中的列数可能被限制为某个数字,例如三。
高级模式可以使用WISYWYG-“所见即所得”-富文本编辑器,其允许更多地控制容器页面的显示(图30)。编辑器允许高级格式化,如字体大小和颜色,粗体文本,项目符号列表等。用户可以在容器中包含他们想要的任何文本数据。当保存后,文本数据另存为HTML模板。
根据说明性实施例,可以通过键入由文本“{{“and(和)“}}”包围的页面名称来完成经由高级模式在创建的容器内纳入子页面。例如,键入短语“{{DataPage}}”将在容器中包含名为“DataPage(数据页面)”的页面。当呈现容器页面时,在模板的“{{“and(和)“}}”标记之间搜索短语。如果短语与系统中的有效页面名称匹配,则该短语将替换为呈现匹配页面的HTML。高级模式的优点是可以使用交错的文本布置多个页面,而无需创建多个文本类型页面。它还允许更好地控制容器页面的最终外观。
图形设计器模式类似于高级模式,但是可以包括完整的HTML文本编辑器和预览功能(图31)。通过使用位于编辑器顶部的选项卡,图形设计器中的编辑器可以在“Edit HTML(编辑HTML)”、“Preview(预览)”和“Editor(编辑器)”视图之间切换。
“Editor(编辑器)”选项卡包含与高级模式编辑器相同的编辑器。HTML编辑器位于“Edit HTML(编辑HTML)”选项卡下方。使用HTML编辑器,用户可以输入任意标记,以允许甚至更好地控制容器页面的最终外观。“Preview(预览)”选项卡功能获取当前标记并进行呈现,因此用户可以快速查看呈现模板的外观,而无需正常保存和查看页面。
高级和图形设计器都在右手侧具有当前页面的列表。当从该列表中单击页面时,页面可以自动插入当前光标位置处的模板中。
高级和图形设计器模式还可以具有“Import From Easy Mode(从简易模式导入)”的按钮。可能需要首先使用简易模式输入数据才能使用此功能。当按下时,高级和图形设计器编辑器将预先填充模板,该模板与容器处于简易模式时的原始外观相匹配。
对于所有容器模式,一个或多个规则可能会限制创建。一个规则是容器页面不可以多次包含相同的插入类型页面。第二规则是容器不能包含自身或将导致无限循环的另一个容器页面(容器循环的示例:页面‘A’包括页面‘B’,但页面‘B’也包含‘A’)。在保存时检查这些规则,并且如果违反,则可以防止容器的创建。
根据说明性实施例,webifier允许访问者动作(诸如插入)的记录列表和用户界面两者在很大程度上由电子表格工具内的非技术设计者定义。所有这些报告类型都可以作为源或模板源电子表格,其具有表示记录的聚合数据的公式,表示聚合数据的图表,或基本上在电子表格中可见的任何内容(图98)。例如,插入页面可以具有关于先前插入的记录的引用信息,或者到目前为止的所有记录的图表,以帮助访问者输入下一个记录。数据和界面之间关系的本质可由设计者非常广泛地定义。将源数据的电子表格和电子表格的组合再次用于用户界面布局和设计的灵活度出乎意料地强大,其为以前没有软件开发经验或培训的数百万用户提供新功能。
容器页面类型也可以是选项卡容器类型(图49)。比起将多个子页面定位在同一个页面上,例如在多个列中,当目标页面加载到访问者时,每个子页面将显示为单独的选项卡(图98)。
添加CSV导入页面
根据说明性实施例,CSV导入页面(图86)允许访问者从CSV文件一次将多个行插入电子表格中。设计者可以选择工作表、已定义名称或定制范围作为CSV导入页面的源(图33)。该源指定将在页面上输入新数据的位置。它可能会或者可能不会限制导入的CSV文件中允许的列数。例如,覆盖范围为$A$1:$C$1的已定义名称源将只允许CSV文件具有3个列,并且数据将插入到跨越列A、列B和列C的最高可用行中。或者,其可以忽略额外的列。
当使用页面时,可以告知访问者要插入的预期列数。它们也可以具有排除CSV文件的第一行的选项。然后,访问者使用标准文件上传控件选择CSV文件,并提交页面。该页面可以将上传控件限制为仅接受.csv扩展名。如果页面不包含数据或包含格式不正确的数据,则返回错误(图87)。
可以以与插入记录页面相同的方式将每个行一次一个地插入由源指定的列中。如下所述,数据验证仍然适用,因此,如果任何值不符合对单元格设置的限制,则将拒绝、限制或以其它方式修改导入,并且访问者会收到警报。如果插入成功,则访问者可以收到显示插入行数的成功消息。
添加嵌入式电子表格页面
根据说明性实施例,可以用标题和源范围指定的另一个页面类型是嵌入式电子表格页面。该页面类型显示访问者的嵌入式电子表格界面,并允许访问者以与设计者相同的方式编辑电子表格的设计者指定部分的值和公式。电子表格控件的实现不需要是全面的,也不要求访问者具有引用电子表格之外的数据的能力。该实现可以使用许多市售电子表格web控件中的一个,其以电子表格定义格式接受数据,并且在访问者保存时,以电子表格定义格式产生结果,其中单元格公式或单元格值可以容易地一个接一个地复制到提供给电子表格控件的临时表格中或从其复制。
附加页面类型
根据说明性实施例,webifier可以以类似的方式支持多种其它页面类型。例如,类似于上述“report(报告)”页面类型,但目标系统可以使用市售转换器或打印到PDF库来执行将报告页面的html转换或打印成PDF文档的附加步骤,当访问者访问该PDF页面的URL时,该文档被下载并且由浏览器或移动应用程序打开。
另一个示例页面类型是将外部web页面嵌入目标页面上的框架中,其中框架的URL在创建页面时在页面配置中指定,或者通过解除引用电子表格定义中的指定单元格来获取,其允许由静态值或公式提供。在电子表格记录数据应定义访问者所指向的web页面的情况下,这可能是特别有用的。
提取电子表格定义
根据说明性实施例,一旦定义了电子表格,webifier可以基于电子表格定义生成目标系统页面。在其中电子表格定义持久地存储在目标系统上的示例中,该过程开始于提取并使落于适用源范围的内的单元格的定义可用(图2中的步骤207)。如果电子表格定义以xlsx文件格式开始,则可以解压缩该文件以获取XML格式的内部内容。各种XML解析选项(从基本的字符串解析到复杂解析通常通过调用XML解析库中的函数完成)用于提供方便的访问来迭代所有单个数据项,包括单元格及其属性,以及将它们加载到替代或中间格式,诸如内存中面向对象的类和实例。或者,可以使用与xlsx、MS-XLSB、SpreadsheetML、ODS格式和类似模式兼容的市售电子表格文件格式解析器来公开面向对象类中的电子表格的数据,这些类方便地专用于通常在电子表格数据中找到的属性和格式。
在其中电子表格定义未持久存储,而是以中间格式或数据库格式持久存在的示例中,上述步骤中的一些步骤仍然适用,但是可以在较早阶段对系统上的所有表格执行这些步骤,其在设计者提供电子表格定义之后不久,而不是由于系统接收到对目标系统页面的请求而按需执行。中间格式可以包括在较早阶段并部分基于每个请求部分遵循这些步骤。例如,早期阶段可以接受xlsx文件,将其解压缩,并将必要的文件转换为表示整个表格的数据库记录,而不进一步解析。在这种情况下,到目标系统的每个页面请求期间的步骤都较少。
格式和属性的转换
根据说明性实施例,在步骤207和/或步骤209期间(图2),可以将数据转换为中间格式,这可以使得在类中更方便地访问相关数据属性,该类更类似于CSS类或HTML类而非电子表格类。例如,类上的属性名称可能与CSS的属性名称匹配,或者类上可能有方法,诸如“ObtainCSSDefinition()”。然而,不需要中间格式的便利性,因为可选地,webifier可以根据目标页面的CSS和HTML的输出格式存储数据,或者可以以原始电子表格格式存储数据,并且稍后直接流到输出表单,其中没有中间存储。例如,为了处理列的宽度,可以读取XML片段“<col min=”1”max=”2”width=”11.8”>”的“width(宽度)”属性的值,转换为由CSS支持的单位,并将结果存储在列类的“csswidth”属性中,或者将其流出作为“width:100px;”,作为CSS输出流功能的一部分。
在电子表格定义内找到的条件格式化条目(其对于传统电子表格是共同的)可以使目标系统对公式执行公式求值,即指定的设计者与单元格的格式化定义相关联。如果在目标系统响应目标系统的访问者请求时公式评估为true(真),则条件格式条目中包含的格式也将转换为ass,以使目标页面将具有不同格式的元素。
按页面类型改变输出
根据说明性实施例,作为将对象的属性序列化为将被发送给访问者的CSS文本定义的流的一部分,目标系统可以考虑诸如哪种页面类型以及哪种类型的访问者设备特征适用于给定的目标页面的因素。例如,如果页面是“report(报告)”类型,则webifier可以输出具有边界的单元格作为html TD单元格,如下所示“<td>Cell Text</td>”,以及一些相关的CSS,诸如“td{border:1px solid black;}”。但是,如果页面的类型为“editdetails(编辑细节)”,并且单元格落入指定为可以编辑的单元格的范围,则webifier可以替代输出与“<td><input type=text value=”Cell Text”/></td>”相同的单元格和根据所需的输入控件的样式的不同的CSS。
其它类型的输出可以更加专业化。例如,代替尝试呈现单元格,日历的页面类型可以呈现为字符串格式,其可以由诸如日历控件(图27,在缩略图内)的第三方小部件接受,其以浏览月份或切换到每周视图或议程视图等功能以交互方式显示,如访问者在客户端上指定的。目标系统还可以将具有名称列和GPS坐标列的表格字符串呈现为逗号分隔列表,该列表由第三方映射应用程序小部件接受,该小部件与第三方服务器交互以使用指定的位置呈现地图。
数据验证
有时,电子表格工具包括数据验证能力。例如,可以在电子表格工具中指定数据验证规则,其中单元格应仅允许整数,仅允许十进制数字,仅允许指定最小和最大范围内的数字,仅允许可能在最小值和最大值内范围的日期或时间,限制允许的最大字符数,或限制所需的最小字符数等。还可以将数据验证设置为仅允许单元格包含在列表中指定的值中的一个值。该列表可以在数据验证定义期间作为值的简单文本列表提供,或者其可以指定对电子表格中的单元格范围的引用,其中工具将从电子表格中获取可接受值的列表,并且其可以导致下拉控件显示在该单元格的电子表格工具中。还可以将数据验证设置为仅允许导致典型电子表格公式的值返回true(真)。例如,对于单元格B1,公式可以指定“=OR(B1>=0,AND(A1=0,A2<40))”,在这种情况下,B1可以是正数,或者如果单元格A1为零并且A2为小数,则其可以是负数。某些工具允许指定例外以允许空值通过验证。根据说明性实施例,目标系统可以从电子表格和电子表格单元格定义中读取设计者已指定的所有上述数据验证类型和选项。数据验证可以在单元定义XML上,或者数据验证规则可以在别处定义为电子表格定义中的组以及应用规则的单元格列表。目标系统可以从电子表格定义中提取和处理该信息。在输入期间,诸如插入或编辑来自目标系统的值,该值对应于在电子表格中应用了数据验证规则的单元格,然后与这些验证规则相比,目标系统将评估访问者的输入值。评估可以在服务器上完成,或者可以通过将规则传递给客户端JavaScript来完成,例如,其将评估用户的输入,而不需要发送到服务器的请求。如果数据验证失败,可以向访问者显示标签或弹出警告,以便向他们提供机会更正值。如果数据验证规则涉及从其获取可接受值列表的单元格引用,或者如果数据验证规则涉及取值为true(真)的公式,则系统可以解除引用评估公式所需的其它单元格值或系统获知可接受值列表所需的其它单元格值,这反过来会允许或不允许访问用户的输入。如果电子表格定义指定基于日期的规则,则目标系统可以将控件输出修改为插入或编辑表单,使得用户具有弹出日历控件以从中选择日期,并且可选地键入文本框控件本身将被禁用以防止无效值特定于开头,而不是允许使用警告键入无效值但不提交给服务器。
为了超出诸如“A1=0”的验证的电子表格样式,目标系统在页面创建期间具有附加选项,其中设计者可以添加诸如“Current User(当前用户)”或“Current Date(当前日期)”的验证,其根据从服务器检索的信息自动设置单元格的值。还可能指定地图或GPS坐标限制,其中用户可以输入GPS坐标或选择地图上的某处以生成坐标,并且它们也将被验证为值的正确GPS格式。通过将多边形指定为边界或预定义的多边形(如“Europe(欧洲)”)而使最小和最大区域指定给提供边界矩形的目标系统,也可以更深入地验证GPS坐标。其它便利数据验证器也是可用的,即使它们与传统的电子表格工具验证器具有相同的效果。例如,允许设计者指定有效值列表(图80)的验证器是可用的,并且验证器导致下拉控件呈现在插入页面上。第二示例是日期验证器,其可以限制选择的日期(图79)。
目标系统可以强制执行数据验证规则,而不管访问者输入的方法如何,包括输入方法,诸如输入表格(图93)、CSV导入页面(图87)或外部自动化webifier API调用。
并行和公式引擎
许多访问者可以登录到目标系统并且并行请求只读页面。对于涉及编辑的请求,根据说明性实施例,服务器可以将所有传入请求或修改记录的请求的核心代码序列化到队列中,其在考虑到现今的处理能力的情况下有效地看起来是并行的。适用于许多不同的页面类型,目标系统可以将单元格引用和源自电子表格定义的公式解析为简单的文本和数值,以显示给用户或递归地用于电子表格定义中的其它公式中或目标系统的其它区域内。可以以多种方式完成公式的解析。可以重复使用与电子表格工具相同的核心处理引擎或库,或者可以构建定制解析和公式处理引擎以嵌入到目标系统中。在任何情况下,引擎可以具有一个或多个回调,这些回调基于行和列索引值来解析单元格引用,或者其可以传递电子表格定义或访问存储单元格定义的数据库。传入的电子表格定义可能是简化的或以其它方式修改的重新生成的定义,其与传入的原始电子表格定义不同,或者可以传入原始电子表格定义。在编辑之间发生任何冲突的情况下,系统可以基于时间(例如,最后一个人获胜)或任何其它期望的启发法来选择或指定接受的编辑。
工作流和过滤结果
根据说明性实施例,webifier可以允许使用报告页面类型和其它页面类型的变体来定义工作流的某些表单。在行记录表格上,设计者可以添加列以影响每个行的访问者权限,并且因此每个记录的基础,其中特定列的单元格公式的结果导致目标服务器在输出结果中包含该行或不包含。例如,设想员工时间表电子表格,其中列A包含员工姓名,并且列B包含小时数,以及报告页面类型,其包含该表的源区域。对于表示记录的每个行,添加的列C可以具有类似于“=IsLoggedInUser(A1)”的公式,其中A1将针对第二行改变为A2,依此类推。尽管在设计时不能够解析以向设计者显示值,但目标系统会在访问者访问时间表列表报告页面时评估公式列。在迭代期间,如果在该行的列A中指定的员工不是访问者,则目标系统将跳过访问者的行的呈现。如果行匹配列A中的访问者,将继续呈现行。最终结果是,员工可以基于电子表格定义访问时间表web页面,其将仅显示与该员工相关的时间记录的行(图20)。同样,如果表格具有指定主管的列,则主管时间表概述页面可能仅列出该主管权限内的时间记录。
如果页面类型是编辑页面,则公式的相同评估可以跳过行,从而不仅隐藏信息,并且防止提供输入控制以防止用户编辑某些行同时允许编辑其它行。将这些组件放在一起的意外效果是允许用户定义工作流的能力,诸如员工在时间表页面上只看到他们自己的时间表,并且能够为一个或多个记录将“ready to submit(准备提交)”列改变为true(真),让主管看到这些记录显示在具有基于“ready to submit(准备提交)”列限制行查看的公式的页面上,让主管能够仅为他们监督的员工改变“approved(已批准)”值,以及最后让经理仅看到批准的记录和聚合的总批准时间。简而言之,本文描述的方面允许创建先前需要有经验的软件开发者的帮助的定制和复杂工作流。
按钮
为了方便访问者,根据说明性实施例,可以在单元格上指定元数据,例如使用电子表格工具的注释功能的单元格注释,其包括目标系统视为将值的文本编辑改变为按钮控件的信号的标签。例如,如果设计者在每个数据记录上需要“approved(已批准)”值,则设计者可能更优选访问者能够通过单击按钮以将单元格的值从false(假)改变为true(真)来指示对记录的批准,而不是向访问者显示文本框以键入字符串“true(真)”,并且其中访问者可以改变以将“true(真)”返回到“false(假)”。这导致更容易使用的系统以及在其中对值的改变是单向的情况下提供帮助(例如,从false(假)到true(真),但是设计者不认为记录不断地变回false(假)是有效的)。
对于插入页面,即使目标系统的默认提交表单按钮可以具有由具有webifier定义的单元格或webifier理解的公式函数定义的外观和位置,诸如放置在电子表格模板中的某处的“=SubmitButton(Done,Green)”。如果电子表格工具支持浮动按钮,则拖放浮动控件也可以用于定位浮动按钮,目标系统将使用该浮动按钮作为目标页面上的提交按钮的位置的基础。以这种方式,目标系统的实际“hard-coded(硬编码)”接口(即电子表格未定义的接口)在目标页面上是最小化的。
安全+间接(级联)过滤
防止输入可以涉及禁用或隐藏页面的控件,其中设计者已经指定源是记录表格,或者让服务器根本不会向访问者发送控件。为了安全起见,根据说明性实施例,服务器还可以基于相同的逻辑确认是否允许使用HTTP POST请求发布的提交输入,无论控件是否呈现给用户,因为访问者可能是恶意终端而不是正常的浏览器。使用其它模板电子表格的其它目标页面(其用于填充各种行记录)也使用相同的逻辑评估容差。例如,如果目标系统访问者正在访问带有发票明细模板的模板源的发票明细报告页面,并且在发票记录列表表格上的行2上正填充有发票205,则目标系统可以检查列的发票记录表格,该列指定行2是否具有限制对行2的访问的公式。如果是,则目标系统还将限制对发票205的发票明细报告页面的访问。在嵌套模板的情况下或在单个模板和其它此类复杂场景中使用多个源表格的情况下,目标页面的一部分可能被填充或呈现,并且不是部分,但是基础的级联方法仍然存在。
单个公式而不是整个列
根据说明性实施例,添加具有每个记录公式的列的替代方案是将单独的单个公式输入到表格上的指定或引用位置或表格外部并存储在目标系统内。在本替代方案中,目标系统将然后遍历每个行并相对于正在迭代的当前行或记录应用公式。webifier的其它领域可以使用替代公式的相同对中。
例如,在与每行权限有关的较早示例中,该文档给出了列C的示例,其具有诸如C1内的“=IsLoggedInUser(A1)”的公式,诸如行2的“=IsLoggedInUser(A2)”的公式,依此类推。然后,设计者可以对所有记录复制公式,其中登录用户参数引用每个相应行的列A。这会起作用,但可能很麻烦。替代方案的示例是具有“=IsLoggedInUser(A)”或不同的语法,而不是通常的电子表格公式语法,其在创建引用源记录的页面期间作为选项相对于表格单独定义。然后,目标系统可以理解“A”参数(其通常指列)等同于“表示当前关注记录的行的列A中的值”。换句话说,它可以理解该公式等同于具有上面的列C。作为另一个示例替代方案,“=IsLoggedInUser(A)”公式可以放置在与行记录相同的表格上的某处的单个单元格中,可能在单元格“Z1”中行记录信息的最右侧,以及字段可以在页面定义步骤期间存在,该步骤指定哪个单个单元格表示每行权限的公式,并且在此种示例中可以设置为“Z1”。
叠加表格
有时,单个记录表格是许多目标系统页面的基础,该页面具有不同的许可和不同的预期访问者。在此种情况下,根据说明性实施例,可以使用多个列来包含不同的公式以影响相应目标页面的许可。作为替代方案,目标系统可以将叠加表格添加到电子表格定义中。叠加表格最初可能是具有所有相同值的行记录表格的副本。它可能由目标系统标记为叠加表格,其中元数据在表格的电子表格定义中,因为表格旨在基于行记录表格并旨在进行页面特定的修改。然后,设计者可以将列C添加到叠加表格,目标系统可以以与上面大致相同的方式使用该列C,但是它可以评估该公式,就好像它替代地被添加到行记录表格,这使得它处理最新的行记录列表,以防在创建叠加表格后列表发生改变。不同目标页面的不同叠加表格可能具有不同的列C公式。每当改变行记录表格时可以更新叠加表格,以使基本内容保持同步,但仅保留预期的新列C作为示例差异。
叠加表格可以不对单元格位置或插入的任何新单元格进行改变,但是仅包括对单元格的视觉格式改变。例如,叠加表格可以改变字体颜色、字体大小,或也使用电子表格工具的传统“hide columns(隐藏列)”功能来隐藏目标页面中的相应内容。为了避免与常规表格混淆,可以以各种方式向用户指示叠加表格作为覆盖。例如,电子表格背景可以在整个表格中设置为指定的颜色,例如浅蓝色(图39)。
如果电子表格工具支持从表格列表中隐藏表格,或者另外模板表格可以与其它类型的表格分开列出,则有时模板或覆盖表格可以是“hidden sheets(隐藏表格)”。当设计者正在查看特定页面时,在完成查看之前,这些附加表格将自动取消隐藏。
传统的电子表格表
根据说明性实施例,比起目标系统在页面创建期间使字段指示列C指定基于行的许可,替代方案是让电子表格定义暗示这一点。电子表格可能有传统的“电子表格表(spreadsheet tables)”,其通常包含单元格区域,并且可以使电子表格工具显色,在标题行上具有过滤和排序选项,以及当在传统的电子表格工具中查看时管理表格中行的显示的其它功能(图74)。webifier可以在用于页面的源行记录表格的电子表格定义中或在用于页面的叠加表格中检查是否存在传统的电子表格表,如果该表存在,则webifier可以查看用于过滤、排序等的该表的持久化状态。如果设计者按列A对表格的单元格进行排序,则目标系统也将按列A对输出进行排序。对于基于列C中的公式选择基于行的过滤许可的较早示例,设计者可以将表设置为对列“C=true(真)”进行过滤,并且目标系统将使用相同的逻辑过滤结果输出。以这种方式,不需要页面的创建器,其指示列C具有需要评估为true(真)以查看该行的基于行的许可。
适用于本文所述的任何情况或方法,其中许可是过滤记录,其包括上面的传统表方法作为示例,目标服务器可以可选地呈现报告页面和其它页面类型,这些页面类型依赖于具有电子表格公式中的聚合函数的行记录表格而排除不允许的记录。使用此方法,每个记录的许可也将影响例如具有聚合图表的报告页面。设计者还可以在每个页的基础上禁用此功能,以使聚合图表不受基础的行记录许可的影响,其有效地为访问者提供聚合信息,但继续保留细化的每个记录信息。
提取更新的电子表格定义
根据说明性实施例,在目标系统已经使用设计者的电子表格定义来为目标系统的访问者提供只读和/或可输入表单和内容之后,并且在目标系统的访问者可能已经修改或输入记录之后,目标系统可以以与电子表格工具完全兼容的电子表格格式为设计者提供所有数据和模板的更新、统一或多部分表示。为了方便起见,这可以称为提取,如可以在步骤215(图2)中执行。提取可以作为文件下载或者通过更新电子表格工具提供,其使用从目标系统接收信息并更新电子表格工具中的表格的目标系统附加组件或插件(图54,“Downloaddata(下载数据)”按钮)。在大多数情况下,设计者随后会收到电子表格,该电子表格不仅具有更新的记录,而且还具有基于记录表格显示实际数据的报告,所有这些都不需要目标系统的进一步参与。
可以类似于电子表格定义首先如何被放入目标系统中来执行提取,但是反过来执行。在一个示例中,如果目标系统持久化电子表格定义并按请求进行所有修改,则目标系统仅需要执行与设计者原始上传文件相反的操作;也就是说,将xlsx数据提供作为文件以用于由浏览器进行下载。在另一个示例中,如果目标系统在解压缩xlsx数据并将每个包含的解压缩文件存储在数据库中之后持久化电子表格定义,则系统可以通过为每个记录创建解压缩文件、将所有数据压缩为xlsx文件、然后将该文件作为下载提供给设计者来反转这些步骤。作为第三示例,如果数据库表在每个单元格存储一个记录但不改变存储在数据库中的单元格内容的模式,则反过来可以包括迭代所有数据库条目并将单元格内容序列化为XML,并重新引入存储在其它数据库表中以生成解压缩的表格文件的每个表格定义,然后继续在其它示例中提到的步骤。作为第四示例,如果源电子表格定义是通过获取定义的web服务API调用提供的,则反过来可以包括递送新电子表格定义以替换另一个定义的API调用。
在某些情况下,设计者或其他用户可以执行提取,其中设计者获得一个或多个电子表格文件或一个或多个电子表格表,其具有由一个或多个记录填充的一个或多个表格模板。例如,这种提取可能导致具有100个表格的电子表格,并且其中每个表格是以表格模板中的一个表格模板的形式显示的发票。为设计者打包提取的步骤和示例可能是类似的,其中不同之处在于目标系统将需要按照填充模板表格的步骤,就像在生成报告页面的早期阶段中一样,但然后重定向上面提供的提取步骤的结果,而不是将单元格转换为其它格式,并且然后与填充模板表单的其它记录进行迭代。
经由典型的推送通知或轮询方法,附加组件(插件)可以提供实时重新加载并在目标系统使它们可用时向设计者更新。通常,这意味着提取步骤限于在由于访问者而改变的任何表格或单元格上执行,并且附加组件仅更新这些表格或单元格,同时保留其余的不动。附加组件可以采用混合方法,其对更新进行实时检查,但下载并保存任何新的电子表格定义作为硬盘驱动器上的本地文件,并然后触发电子表格工具打开它,所有这些都是用户参与最少或没有用户参与。
继续编辑电子表格的定义
根据说明性实施例,无论是经由附加组件还是以其它方式提取为文件或提取成电子表格工具,设计者现在能够使用目标系统像他们之前那样对模板表格和/或记录表格进行进一步修改。实际上,设计者可能已选择将空的或接几乎空的电子表格定义放入目标系统,然后仅在提取电子表格后才开始构建电子表格,以利用在设计时相关的任何目标系统功能。作为简单的示例,由于目标系统在应用程序列表中显示这个新的web应用程序,使其他设计者意识到协调目的,即该用户正在设计指示特定的新web应用程序的特定的新的电子表格。
在设计者已经指示访问者正在编辑电子表格的时间或者在附加组件通知目标系统服务器设计者正在编辑情况下,目标系统可以从访问者具有锁定或阻止所有访问的选项,仅允许读访问,或者仅允许读取和插入访问。通过确定访问者的页面是否需要最初来自与设计者正在编辑的表格相同的文件的表格,或者可能通过确定其是来自相同的文件或者是否存在任何直接或递归寻求从访问者的表格到正在编辑的设计者表格的间接引用,此种阻止通常仅限于与设计者当前正在编辑的内容相关的表格。这防止了访问者的改变与设计者的改变之间发生的意外冲突,或者防止访问者看到设计者正在进行的和不完整的改变集导出的页面。帮助避免这些情况的另一种技术是指示他们将要对电子表格定义进行改变,再次手动指定或经由附加组件自动检测它的设计者使得目标系统将其存储的表示复制到暂存区域,其中设计者的改变仅影响暂存区域,直到设计者指示他们已完成改变组并准备好改变生效,此时将暂存区域复制回实时web应用程序。在此期间,实时web应用程序被完全阻止,设置为只读或允许继续,但设计者在暂存区域上操作时所做的改变将作为组合并到实时应用程序,同时通过相同的方法保留实时应用程序,即可以将个别设计者编辑与实时web应用程序的记录合并,或者可以上传新的电子表格定义并将其与实时web应用程序的记录合并。
web应用程序的来自访问者的最新变化的合并,以及设计者的变化的合并可以采用许多流行和常用的方法来合并数据,因为当双方都处于电子表格定义表单时可以这样做。市售的库和工具可以用于标识电子表格之间的差异,并允许迭代这些差异以接受或拒绝每个改变,以及比较3个电子表格的库和工具:原始的、改变的版本A和改变的版本B。它们迭代并处理不冲突的改变,并完全拒绝冲突或向用户提供冲突信息以决定关于哪个版本获胜。
一种合并方法是以最有利于webifier软件的预期使用的方式组合多种其它技术。例如,可以允许设计者开始对模板表格进行改变,并且目标系统不阻止访问者对记录表格的改变。目标系统具有改变模板表格的访问者是很少见的,尽管当然是可能的,因为目标系统尤其可以在设计者选择要报告的工作表时一般地处理所有表格。尽管如此,通过迭代设计者如何在页面创建期间引用该表单,目标系统可以默认仅阻止对模板表格的改变,可以知道其都是模板表单,无论其是否作为模板源表格引用。如果设计者想要预览其建议的改变的效果,则目标系统可以自动设置暂存区域。如果设计者被检测为修改记录表格,则webifier系统可以提示设计者阻止web应用程序的其它相关部分来自并发输入。在这种方法中,可以避免向设计者提供冲突解决提示,并且设计者仍然能够经由模板表格改变来更新目标系统的用户界面,并使目标系统不丢弃其包含的任何先前记录或新记录。
在插入和一些其它类型的编辑的情况下,甚至可以在目标系统和设计者的工具上并行对记录进行插入类型的编辑,而不提示解决冲突。简单的方法是保留原始电子表格定义的副本,该副本在其会话开始时或在他们表示有意进行设计工作之后发送给设计者,并在下次上传时将设计者的改变与原始的进行比较以确定哪些记录是新的并且使得目标系统添加记录中的每个记录,其具有短锁定以允许目标页面继续操作和插入,同时合并来自设计者的这些新插入的记录。以类似的方式,可以保存预设计原件并与设计者的下一个上传进行比较以确定哪些记录丢失,并因此打算删除、修改和打算更新。另外,与预设计原件相比较相同的方法可以揭示从记录表格中添加或删除列,以及相应的模板表格改变以匹配并指示设计者对web应用程序结构的改变。在所有情况下,目标系统上的旧记录以及访问者新添加的或访问者修改的记录都保持不变,并且最终结果是设计者和访问者对记录的改变之间的合理合并,并同时能够例如在一个步骤中更新目标系统发送给访问者的接口以及记录的结构。
允许继续编辑电子表格定义的挑战在于设计者可以对列或行进行改变,使得对目标系统存储的范围的任何引用可能变得过时。对此的一个解决方案是使用附加组件监视对所引用的电子表格单元格的位置、行和列索引的改变,并相应地在每个事件或每个事件组基础上相应地更新目标系统。例如,如果目标系统的范围引用为“A5:A10”并且在顶部处插入行,那么套入到相应事件侦听器的webifier附加组件会通知目标系统将行1下方的任何范围向下移动,例如在这种情况下,到“A6:A11”。
为了允许设计者能够离线并且在没有安装附加组件的计算机上(基本上是仅具有未修改的第三方电子表格工具和电子表格定义的副本的计算机)(称为“断开”设计)修改电子表格定义的进一步灵活性,加深了该挑战,并且上述解决方案可能还不够。在这种情况下,目标系统可以背负电子表格的传统命名范围特征的补偿,因为电子表格工具基于设计者改变更新命名范围,并且通过webifier系统可以观察到对命名范围的此类改变。该方法允许在断开时修改影响目标系统的电子表格定义的这种期望的灵活性。
值得注意的是,上传记录和上传界面模板不需要单独的步骤,它们可以由设计者或自动地在一个步骤中发生,并且其中一个电子表格定义被提供给目标系统。当然,如果需要,也可以使用单独的步骤。
可以从设计者或访问者通知设计者,诸如通过“Server Changes as of<date>(截至<日期>的服务器改变)”弹出,即目标系统已经接收到附加的改变(图53)。可以使用公共推送通知或目标系统的轮询来实现此目的。这允许设计者在设计者完成编辑后减少并发编辑冲突。
命名范围
根据说明性实施例,当通过附加组件完成时,webifier系统可以从电子表格(例如,经由COM Interop库,如下所述)或从目标系统服务器检索命名范围,并且使用JavaScript将名称传递给附加组件的基于web的用户界面。webifier可以创建新的命名范围,以便在创建或编辑目标页面时或者在任何其它字段或目标系统需要对电子表格单元格的引用和目标系统需要访问该引用才能处理访问者请求的情况下捕获数据源的当前选定的单元格。例如,这些范围的名称可以是“WebifierCustomRange(Webifier定制范围)”并且附加有从0到2,147,483,647的随机生成的数字。如果已存在具有该名称的范围,则可能生成新的随机数,直到创建的名称未附加到现有范围。或者,可以使用增量数字。如果已存在所选单元格的定制范围,则系统可以选择使用现有名称而不是创建另一个名称。在电子表格工具中执行的操作(诸如插入行或插入列)会根据正常的电子表格工具使用扩展命名范围。如果经由具有命名范围的插入或CSV导入页面插入记录以作为其源,则它将扩展该范围以包括插入的记录。如果从电子表格定义中删除任何webifier web页面引用的命名范围,则在上传工作表时,系统将标记受影响的页面,这些页面具有无效的源并且在编辑源或恢复已删除的命名范围之前,它们将无法访问。命名范围可以用于定义插入、编辑单元格、编辑记录、CSV导入、报告、web页面、日历和明细报告页面的边界。命名范围还可以用于定义插入、编辑单元和编辑记录页面的标题范围,以及设置编辑单元格和编辑记录页面的可编辑范围(图81)。使用编辑记录页面,如果删除范围中的所有单元格,则可以自动删除命名范围。
作为示例,具有自动生成的表单界面的插入页面需要通常引用行记录表格的源范围。如果设计者在断开时向行记录表格添加了列,但稍后上传了更新的定义,则目标系统将能够看到包含新插入列的更新的命名范围。在此示例中,当插入页面将表单发送给访问者时,该页面现在将生成额外的标签和html输入控件,并且在此情况下,访问者将在没有设计者需要的进一步操作的情况下开始生成新记录,该记录包含信息的新列。
按单元格跟踪
根据说明性实施例,如果要跟踪的单元的量非常高,则命名范围可以与具有附加属性、包含由目标系统生成的唯一单元格ID、插入到所提取的电子表格定义的每个单元格中组合或完全由其替换。尽管电子表格工具不了解属性用途,但即使在电子表格工具中修改或移动或复制单元格时,许多电子表格工具也会将此属性保留为元数据。这提供了命名范围的许多相同优点,但在电子表格工具的用户界面中设计者不太可能看到它们。然后,目标系统以与其它单元格属性非常相同的方式提取唯一ID,以获得关于用户在断开时所做的改变内容的知识。然后,可以使用该知识将目标系统上的引用更新到这些单元格,或者在某些情况下,那些唯一的单元格ID可能足以作为目标系统用于引用单元格的方法而不是使用传统行和列索引。偶数范围可以指定为UID:UID,其表示范围的左上角和右下角。
以类似的方式,其它元数据可以存储在电子表格定义的其它部分中,这些部分对设计者是隐藏的。例如,指向需要表格的目标页面的链接可以存储在表格的XML定义中的属性中。如果电子表格工具支持此方案,其中存在像命名范围一样自动获取更新的范围,但是其中范围对用户不可见,则该功能也可以替换命名范围。
用于目标系统的配置表格
根据说明性实施例,命名范围的替代方法(称为“配置表格”)也可以代替命名范围来替换。该方法可以包括名为“DestinationSystemRanges(目标系统范围)”的附加表格,如果电子表格工具支持隐藏表格,则该表格可能隐藏,其中表格具有名称和范围2个列。然后,目标系统将在上传期间或每个访问者请求时迭代该表格,并通过第一列中的值找到目标系统正在寻求解析的范围。例如,“Page1_SourceRange(页1_源范围)”可以是名称中的一个名称。然后,目标系统可以在第二列中获得单元格的值或公式,并且以与命名范围定义非常相同的方式使用它。这种方法的优点是该值实际上可以是传统的电子表格公式,并因此即使范围定义也可能受到电子表格定义的其它元素的影响。这提供了意想不到的功率量和灵活性。例如,可以指定一个公式,其中如果发票总额>$5000,那么明细页面应在其页面源配置中包含额外的5个行,页面源配置可能具有附加的精细打印,该打印对于向访问者仅显示该发票是需要的。同时,电子表格工具将自动使范围以与命名范围大致相同的方式保持同步。这允许设计者尤其有效地修改定制报告的配置,而需要最少的或不需要附加的努力或训练。
目标系统用于服务目标页面所需的数据和元数据信息(诸如页面标题)可以存储在与电子表格定义分开的数据库中。可以以与配置表格大致相同的方式替换命名范围,特定于目标系统的所有数据都可以包含在电子表格定义中,并且重要的是,其可由设计者在熟悉的电子表格界面和方法中进行编辑。另一个示例是定义在配置表格中的页面标题,它将允许页面标题是设计者选择的任何公式的结果。如果单元格>=$0,则“Profit/LossReport(损益报告)”等页面标题可以是“Profit Report(利润报告)”,如果单元格<=$0,则标题将是“Loss Report(损失报告)”。又一个示例是进入通知系统的条目。诸如“=IF(OtherSheet!A1>10,“Thomas”,”Patrick”)的公式可以根据记录表格中的值改变通知的目标。它还可以基于设计者指定的公式来改变递送时间或任何其它通知属性,并且以某种循环的方式利用本发明的基本概念以便由设计者自己配置。某些电子表格工具能够接受单元格元数据,其中单元格在工具中访问时是只读的。在此种情况下,配置表格可能会将某些单元格标记为只读,以减少设计者对配置表格进行意外或不兼容的修改的可能性。例如,除了上面描述的DestinationSystemRanges表格上的第二列之外,配置表格可以使所有单元格都是只读的。
最终,始终如一地实现该方法,目标系统的web应用程序的整个定义可以在断开时是可移动的并且是可配置的。同时,web应用程序的整个定义可能是公式驱动的,根据定义的其它部分任意可定义的,或者以其它方式与记录表格、模板表格本身、当前日期等的函数结果之间具有无限且不可预测的连接。
外部补充数据:文件
根据说明性实施例,可以使用WEBIFIERINSERTFILE函数将文件上传到目标系统(图7)。当在为插入或编辑记录页面构建表单时遇到包含WEBIFIERINSERTFILE列的字段时,可能会为该字段显示文件上传控件(图62)。同样,在编辑单元格页面上编辑包含WEBIFIERINSERTFILE函数的单元格时,设计者可以选择编辑公式或上传新文件。当在带有附加组件的电子表格工具中遇到WEBIFIERINSERTFILE时,它可以显示密钥,该密钥可以用于使用WEBIFIERFILEATTRIBUTES函数检索有关该文件的信息(图64)。
如果在报告或编辑单元格页面中遇到WEBIFIERINSERTFILE,则该文件可以显示在目标页面上。访问者可以根据文件类型以不同的方式查看这些上传的文件。如果文件是图像,则可以在单元格内显示(图63)。如果文件是音频文件,则访问者可以使用HTML5音频播放器收听该文件。如果文件是视频,则访问者可以使用HTML5视频播放器观看该文件。如果该文件是任何其它类型的文件,则显示链接,访问者可以按照该链接下载该文件(图61)。
来自目标系统的管理页面的设计者可能能够查看和排序系统上的文件,并获得诸如文件密钥、大小以及每个文件属于哪个web应用程序的明细。也可以通过web应用程序查看文件,以便轻松查看与web应用程序相关联的文件。许可也可以应用于文件,因此只有特定用户或用户组可以访问该文件。目标系统可以基于可访问引用公式中的该组文件的任何单元格的访问者来获得这些许可,或者目标系统可以具有列出文件组的单独配置界面,允许修改其共享设置,并为新文件集指定了默认的许可集。
上传的文件可以存储在实际文件目录中,或者数据库虚拟文件列表,与其中文件上传到的Web应用程序成形并相关联,位于以webifier提供或生成的密钥之后命名的目录中。存储的文件类型可以由文件的MIME内容类型确定并记录以显示文件。多个文件可以存储在同一个密钥下,并且可以通过Webifier文件函数的索引参数访问。
WEBIFIERINSERTFILE函数可以允许由值或公式组成的零个、一个或两个参数(图7)。第一参数是可选的字符串参数,该参数是稍后可以用于检索上传文件的密钥。如果未指定密钥,则可以生成全局唯一标识符(GUID或guid)并将其用作密钥。如果指定了密钥,则用户还可以包括可选的整数参数,该参数可以是待显示的该密钥下的文件的索引。如果未指定索引,或索引大于文件数量,则该函数可以在显示时显示最近上传的文件。当在插入页面中上传文件时,可以使用WEBIFIERINSERTFILE函数自动填充新插入的单元格。公式中的第一参数可以是与前一个单元格相同的密钥。如果先前的单元格密钥参数是单元格引用,则其可以自动递增以引用下面的单元格。第二参数可以是新的文件数,使得当在网站上查看单元格时,它可以显示新上传的文件。
WEBIFIERFILEATTRIBIUTES函数可以允许由值或公式组成的一个、两个或三个参数(图5)。第一参数是文件的字符串键;第二个参数(其可以是可选的(未示出))是存储在密钥下的文件的索引以用于获取最后参数的属性;最后参数(也是可选的)是要检索的属性的名称或编号。“Name(名称)”或0表示文件名称,“Size(大小)”或1表示文件大小(KB),“DateUploaded(上传日期)”或2表示文件上传的日期,以及“Link(链接)”或3表示在网站上查看文件的URL。如果未指定索引,或索引大于文件数量,则该函数可以获取最近上传的文件的属性。如果未指定属性,则该函数可能默认显示文件的名称。
外部补充文件系统的所有上述变体和特征可以应用每个单元格变化的单个文件或每个单元格变体的多个文件和文件夹。
外部补充数据:签名
可以使用与上述基于文件的外部补充数据用于上传图像的访问者基本相同的方法将签名上传到目标系统。然而,在签名是外部数据的形式的情况下,文件上传对话框和控件可以用允许用户输入签名的控件替换。例如,记录表格可以具有列,其中每个行记录的公式类似于“=WEBIFIERINSERTSIGNATURE(A2,’thumbnail’)”,其中列“A”具有可以用作唯一标识符的数据,诸如员工姓名,以及A2中的“2”改变至适当的行,并且其中“presence(存在)”表示单元格显示签名的缩略图(如果可用),或者还如果没有可用的签名,则显示文本“n/a”。在设计时,附加组件可以为每个记录获取此类缩略图,以便在单元格中显示它们。对于将源设置为整个记录表格的报告页面的访问者,签名缩略图可以呈现在目标页面上显示的每个记录行旁边。缩略图可以是可点击的,以打开捕获的签名的大部分弹出视图以及诸如捕获签名的日期和时间的元数据。在插入或编辑目标页面上,大弹出视图也可能具有大的画布区域,其中用户的鼠标移动、数字平板电脑上的无墨笔或触摸屏上的手指将导致画布区域处理随着笔的移动并在画布上绘制相应的线条。存在用于捕获运动的市售模块,诸如通过此种画布签到图像文件中,通常使用JavaScript代码来执行此操作,并提供具有要在表单提交上上传到服务器的图像数据的html输入表单。继续该示例,目标系统可以将表示签名的图像文件存储在数据库中以在后续请求中检索,以查看报告页面上的记录的签名数据。作为视觉签名的替代方案,表示数字签名的数据可以通过客户端JavaScript从PGP签名的签名的众多第三方发行者中的一个以及使用类似手写字体的文本摘要或令牌人工签名中获得,其中可以在签名图像的位置上显示此种数字签名。可能要求访问者使用用于此种硬件的市售集成点输入认证信息,诸如用户名和密码对或在移动设备的拇指扫描仪上的指纹,以便第三方发行者发布数字签名。
外部补充数据:聊天
根据说明性实施例,聊天对象特征允许嵌入聊天讨论流或与电子表格的一个或多个单元格相关联。聊天对象允许访问者向其他访问者然后可以查看的单元格添加消息,以及查看其他人或他们自己在单元格上留下的消息(图58)。聊天对象表示消息对象列表,其中每个消息对象通常至少由三个部分组成:消息文本,指示消息何时提交的时间戳以及提交消息的用户的用户名。每个聊天对象还可以具有唯一标识符,即与其它聊天对象不同的标识符(例如,图59,“6ea6cc...”)。标识符可以是用户分配的或系统分配的。webifier可以使用聊天对象的标识符来引用聊天对象并将其与其它聊天对象区分开。
可以通过输入名为WEBIFIERINSERTCHAT的插入聊天公式函数来创建聊天对象,该函数是由webifier系统定义的定制公式函数(图6)。要将此函数输入单元格,可能要求用户具有为该单元格设置公式的许可。这可以通过各种方式完成,包括通过允许它的webifierAPI调用,或通过安装了webifier附加组件的电子表格工具。
为了在单元格中创建聊天对象,设计者可以将单元格的公式设置为不具有参数的插入聊天函数(即’=WEBIFIERINSERTCHAT()’),设置为具有表示作为唯一参数(例如,‘=WEBIFIERINSERTCHAT(”DC40FCA2-D72A-4AFD-80E4-76782B47D960”)')的全局唯一标识符(GUID)的标准连字符分隔字符串的插入聊天函数,或者设置为被评估为唯一标识符的公式,无论所标识的是否是GUID或字符串,诸如“Pleasant Solutions(合适的解决方案)”,其将表示与用于该公司的记录相关的聊天流。不同工作表格或同一表格上的多个单元格可以将相同的参数传递给WEBIFIERINSERTCHAT,从而允许页面中的多个目标页面或位置引用相同的共享聊天流。
当用户为单元格设置插入聊天公式并将其保存到目标系统时(例如,如果他们使用电子表格工具和附加组件,通过将电子表格定义改变上传到目标系统),则webifier执行几个步骤。首先,它可以用包含单个GUID参数的版本替换插入聊天公式的无参数版本的每个实例。它可以使用版本4(IETF RFC 4122)算法生成GUID参数的每个实例,这意味着生成的参数实际上与任何其它单元格中的插入聊天函数的GUID参数不同。然后,它将更新的电子表格定义上传到目标系统。
访问者可以在页面上使用聊天对象,该页面允许访问者查看其中嵌入聊天对象的单元格(图57)。例如,如果聊天对象嵌入在电子表格的特定表格上的单元格中,并且访问者可以访问其源是该表格的报告页面,则访问者可以通过目标页面与该聊天流交互。
当目标系统呈现包含其公式为插入聊天函数的单元格的页面时,它解析该函数的GUID参数并检查其数据库以查看是否存在其唯一标识符与解析的GUID匹配的聊天对象。如果没有匹配,它将创建新的聊天对象,聊天对象的标识符是已解析的GUID并且聊天对象的消息对象列表为空,将其保存到其数据库并使用此新聊天对象作为单元格的聊天对象。如果匹配,则使用匹配的聊天对象作为单元格的聊天流。在任何一种情况下,目标系统都会在单元格内显示聊天气泡图标和单词“Chat(聊天)”。如果访问者单击该图标,它将在该页面上显示模式窗口,该页面按时间顺序显示该聊天对象的过去消息对象(如果有的话)。显示每个过去消息对象,其包含发布的完整日期和时间,然后是发布它的用户的用户名,然后是消息文本。在过去消息列表的下方,它显示了其中访问者可以写入新消息的文本框和提交新消息的按钮。
如果访问者在聊天对象的过去消息列表下方的文本框中写入新消息(图58)并提交此消息,则目标系统创建新消息对象,将其时间戳设置为系统时间,将其用户名设置到访问者的用户名,以及将其消息文本设置为文本框中提交的文本。然后,它将聊天对象与消息对象相关联,并将消息对象和关联信息保存在数据库中。最后,它将新消息对象返回给客户端,客户端可以使用JavaScript以在过去消息对象列表下方但在模态窗口中的文本框上方显示新消息对象,以及清除文本框,所有这些都不刷新页面。访问者可以在文本框中写入更多消息,并且提交这些更多消息可以再次触发相同的步骤。如果访问者不希望再输入任何消息,他们可以点击模态窗口外的任何地方,这可以关闭模态窗口并显示其后面的页面,其中他们通过该页面访问聊天对象。
由于插入聊天公式的GUID参数被用作聊天对象的唯一标识符,如果几个不同单元格的插入聊天公式具有相同的GUID参数,则添加到嵌入在一个单元格中的聊天对象的消息对象可以显示在嵌入在其它单元格中的聊天对象的消息对象列表中,因为这些单元格的嵌入式聊天对象都是相同的聊天对象。
可能存在几种外部补充数据系统。上述两者仅仅是该方法的示例,并且针对上述示例中的一个示例描述的特征中的许多特征适用于另一个示例。
根据另一个方面,还可以使用或替代地使用视频聊天模块。可以通过输入名为WEBIFIERVIDEOCHAT的插入视频聊天公式函数来创建视频聊天对象,该函数是由webifier系统定义的定制公式函数。要将此函数输入单元格,可能要求用户具有为该单元格设置公式的许可。这可以通过各种方式完成,包括通过允许它的webifier API调用,或通过安装了webifier附加组件的电子表格工具。
为了在单元格中创建视频聊天对象,设计者可以将单元格的公式设置为不具有参数的插入视频聊天函数(例如,’=WEBIFIERVIDEOCHAT()’),设置为具有表示唯一参数(例如,’=WEBIFIERVIDEOCHAT(”GC40FCA2-D73A-4AFD-80E4-76782B47D960”)’)的全局唯一标识符(GUID)的标准连字符分隔字符串的插入视频聊天函数,或者设置为被评估为唯一标识符的公式,无论所标识的是否是GUID或字符串,诸如“Pleasant Solutions(合适的解决方案)”,其将表示与用于该公司的记录相关的视频聊天。不同工作表格或同一表格上的多个单元格可以将相同的参数传递给WEBIFIERVIDEOCHAT,从而允许页面中的多个目标页面或位置引用相同的视频聊天。在一些方面,WEBIFIERVIDEOCHAT函数还可以在设计时需要输入目标以在由最终用户启动视频聊天时连接到该目标。
当生成目标页面时,webifier逻辑然后可以包括、合并或引用web页面上的视频聊天模块,当由用户激活时,该视频聊天模块在终端用户和预定义端点(例如,由设计者在设计时标识的目标)之间建立视频聊天。视频聊天模块随时可用,例如Drupal Video Chat(Drupal视频聊天)、AVChat、Big Blue Button(大蓝色按钮)等。
访问者输入的影响
下面在一个说明性使用案例场景中描述了访问者输入对目标系统的过程和效果。当访问者提交由webifier系统生成的插入页面表单时,目标系统可以首先确认该页面是公共的,或者该用户已经被授予使用它的适当许可。如果用户被允许,则目标系统将检索与包含页面的应用程序相关联的电子表格定义并启动插入过程。如果不允许用户使用插入页面,则可以丢弃他们的提交,并且系统可以通知用户。
在将记录插入电子表格定义之前,可以将日期、时间和GPS坐标数据转换为适合于电子表格工具的字符串表示,并且可以通过引用WEBIFIERINSERTFILE函数的公式来表示上传的外部补充文件。当在电子表格工具中查看时,函数可以返回密钥,该密钥可以用于稍后使用WEBIFIERFILEATTRIBUTES函数从目标系统检索文件。
一旦所有数据都处于待保存的适当格式,如果整个表格被用作源并将新数据插入到电子表格中,则目标系统将在源范围或下一个空行或列之后立即找到行或列。此时,可以评估电子表格定义验证,然后分别在目标系统中创建验证。如果验证中的任何验证失败,则可以通知用户并提供机会以更正其提交。如果范围中存在包含Webifier公式的任何行或列,则即使它们已被覆盖表格隐藏,也可以使用适当的公式自动填充它们。
在成功插入数据之后,将需要更新对构成插入新数据的数据集的单元格的范围的所有引用。这可能包括页面的源(如果是命名范围,则覆盖表格中保存排序和过滤范围)以及显示已扩展数据范围的任何图表系列。一旦完成所有的更新,则修改后的电子表格可以与任何新上传的文件一起保存到数据库。将范围转换为R1C1字符串格式,使得可以解析它们以获取当前包含哪些行和列的数字表示。然后,范围值对于行插入增加一个行或对于列插入增加一个列,转换回R1C1字符串并保存回电子表格。
目标系统根据插入页面中的数据更新将在目标系统管理页面中或附加组件内显示的任何页面缩略图,并引发由通知系统使用的插入和页面改变事件以发送电子邮件警报。如果为插入页面配置了“Next Page(下一页)”,则用户将被重定向到页面。
动态页面选择
如本文所述,可以同时存在多个模板和多个页面以用于相同的记录和相似或相同的目的。目的可以是任何目的或页面类型,其包括只读和访问者输入页面两者。根据说明性实施例,目标系统可以利用来自浏览器或移动客户端的信息来帮助确定要显示哪个模板。例如,信息可以包括任何数量的设备属性或能力,诸如屏幕尺寸、屏幕分辨率、OS版本、浏览器品牌和版本、来自访问者的关于哪些模板集是优选的手动指定的偏好以及它是否主要是鼠标、键盘或触摸屏设备。在web应用程序的情况下,可以从http“User Agent(用户代理)”标头或者通过在浏览器上执行JavaScript获取大部分此类信息,浏览器将由web服务器临时存储为会话信息的此信息带内或带外传输到目标服务器。在移动应用程序的情况下,应用程序可以设计为在首次登录认证时收集并传输此信息到目标系统。
设计者可以在页面上指定规则集以指定每个页面对访问者可访问所需要的标准,以及后退默认值。目标系统可以允许设计者将此类页面分组为指示它们具有共同目的的方式,以实现单个URL或页面标识符,并且使对该单个位置的请求触发目标系统选择要选择哪个模板。在此种分组的情况下,目标系统将具有能够使设计者将列表与规则一起订购,以便系统知道每个页面的优先级顺序,其中最后一个是默认的。
创建表格软件的游戏化
如本文所述,使用表格构建复杂软件对于非技术人员而言比通过其它方式容易得多。尽管如此,根据说明性实施例,webifier系统和/或附加组件(插件)可以观察设计者的可以被认为是成果的部分的各种动作或动作组。如果这些动作符合各种标准,则可以向设计者简要地显示视觉弹出窗口以指示他们已获得成果(图15)。弹出窗口可以中继他们刚刚创建的内容的值,诸如“Your web-app is now ready to receive new records(您的web应用程序现在已准备好接收新记录)”或“You are done making your first web-appreport(您已完成制作您的首个web应用程序报告)”。标准可以包括多个标准,诸如,设计者采取这些动作的前两次中的一次,设计者在过去几个月内未完成此类动作,访问者也访问了与设计者的动作相关的目标页面,用户已经在比前一次对计时此类步骤更短的时间内完成了一些动作,或者用户尝试了不同的工作流或不同的方式来完成某些事情。这些操作不仅可以涉及与目标系统的用户界面或附加组件的用户界面的交互,或与设计者创建的目标页面相关联的访问者的交互,而且也可以基于对设计者电子表格的分析。例如,游戏化系统可能会查看设计者是否创建了传统的电子表格表,他们是否在模板表格上使用了传统的条件格式,或者甚至他们是否在公式中使用了基本的聚合函数,例如“=SUM(A1:A10)”。
设计者可以具有与他们的用户帐户相关联的点或几种类型的点,这些点基于这些成果而递增。随着时间的推移累积足够的点可以允许设计者使用目标系统或附加组件中的新功能。点的各种动作或级别可以触发目标系统的用户界面或附加组件的用户界面被修改为“advanced mode(高级模式)”。这可能涉及添加附加控件,删除提示标签,改变用于更复杂的控件(诸如带有验证的文本框而不是下拉框)的控件,或通过改变页面的顺序和设计器将显示的按钮位置来改变其工作流程,使得它可以更快速地进行表格软件开发。达到某些点级别还可以改变围绕使用webifier的许可权限规则,例如以允许大量访问者(匿名的或利用用户帐户创建的)访问由设计者创建的目标页面。
通知
在目标系统中,根据说明性实施例,通知规则提供了程序,其中某些事件的发生可以触发指定的动作(图83)。普通用户可以为自己设置通知。管理员或设计者用户可以自己设置通知,以及为管理域中的用户设置通知。为了处理多个事件和/或执行多个动作,用户可以设置多个通知。每个通知规则的设置要求用户指定应触发通知的事件的详细信息以及在触发通知时应执行的动作的详细信息(图84)。可以禁用通知规则,同时保留其所有其它详细信息,使得在需要重新启用规则时,无需重新输入设置即可。
当事件传播到服务器时,可以基于完全在电子表格工具附加组件/插件内的操作来触发通知,或者web浏览器可以触发发送到服务器的通知请求,但是直到动作本身已经传播到或持久化到服务器才可以。示例事件包括何时将数据插入页面,何时编辑页面上的数据,何时改变页面配置以及何时改变应用程序的配置。为了清楚起见,示例事件可以处于以下类中:访问者高级别事件触发(插入页面的提交按钮被按下),设计者高级事件(创建新页面),单元格事件触发(单元格已改变),区域事件触发(单元格组中的至少一个单元格已改变),表格事件触发,并且可以是直接的(单元格的公式改变)或间接的(单元格公式的结果已改变,即使单元格公式本身未改变)。当发生此类动作时,该动作可以引发与该动作相对应的域事件。
可以用于通知的相同域事件也可以用作日志记录程序的基础。管理员可以选择记录比人们感兴趣的收到通知的更多事件,诸如关于表格数据、页面配置或应用程序配置的所有CRUD(创建、读取、更新、删除)操作,以及诸如拒绝访问的事件。可以对这些日志进行分类、过滤或将其用于统计分析。目标系统包含处理这些事件的通知服务。
webifier服务可以将通知规则列表过滤到当前启用的通知规则列表,其设置指定它们应该由与发生的动作匹配的事件类型以及在其上进行动作的特定页面或应用程序触发。对于每个此种通知规则,目标系统执行由规则指定的动作。可能的动作包括电子邮件动作和webhook动作(一个通知规则可以指定多个动作),如下面进一步描述的。
为了执行电子邮件动作,目标系统可以首先确定是否应该针对该规则发送电子邮件。如果不应该,则其不会继续执行其余的电子邮件动作步骤。如果应该发送电子邮件,则系统使用由规则指定的模板来构建电子邮件消息的各个部分(主题、正文等),将关于事件的信息替换为可能存在的任何相应占位符。如果事件指定目标页面并且规则指定应与电子邮件一起发送的页面的PDF副本,则它可以生成关联页面的PDF副本并将其添加为电子邮件消息的附件。或者,目标页面html可以嵌入到电子邮件中,包括页面包含的任何插入表单或编辑表单。HTML可能进行或未进行修改,以考虑到在支持HTML的电子邮件客户端中查看它,诸如删除页面导航菜单,删除背景图像,删除JavaScript引用,或者对输入字段使用更多标准和简化控件而不是专用控件,诸如标准文本框而不是弹出日历来选择日期。提交嵌入的表单将导致对目标系统的http post请求。在没有嵌入电子邮件的情况下呈现时,post请求的URL可以与同一目标页面不同,并且可以触发不同的用户认证,由此不需要登录,因为授权令牌嵌入在表单和http post中,或者可以考虑输入控件的不同的数据验证规则是更不可预测的自由形式的输入。然后,webifier将消息发送给规则中列出的电子邮件收件人。
可以在电子邮件模板表单中指定电子邮件的内容,其包括主题行的选项,富文本模板的WYSIWYG编辑,不处理HTML的电子邮件系统的后退,多个收件人(包括抄送和密件抄送),回复和附件(图85)。或者,可以使用市售的电子邮件模板模块。此外,电子邮件内容本身可以使用表格模板指定,其中目标系统将以HTML格式输出,就像它对目标页面一样,但也会针对不处理HTML的电子邮件客户端以后退、简化、纯文本格式输出。
为了执行webhook动作,目标系统可以首先确定是否应该针对该规则调用webhook。如果不应该,则其不会继续执行其余的webhook动作步骤。如果应该,它会向由规则指定的webhookURL发送HTTPPOST请求,其中包括关于在POST请求的正文中发送的事件的信息。Webhook信息可以是但不限于JSON格式。
所有通知操作可以进入队列并且可以异步处理,使得触发动作的事件可以继续,并且触发它的用户可以继续在系统上执行其它功能,即使电子邮件或webhook动作失败或需要延长的时间才能完成。因为它们是异步的,所以还可以存储通知以用于批处理(例如,用户可能偏好接收所有事件的每日或每周摘要,而不是连续的通知流)。
移动考虑因素
根据说明性实施例,目标系统优选地是响应的并且在所有设备平台上完全兼容,并且与诸如HTML和文件传输的多种标准浏览器特征集成。目标系统还可以通过对目标系统的标准web服务API访问方法而直接集成到原生应用程序中,使得用户在原生应用程序体验中访问目标系统中包含的数据。目标系统通过原生SDK环境或其它开发框架(例如AndroidStudio、Apple Xcode、Xamarin或Cordova)中的附加编码来实现此种方法中的数据呈现。
此外,目标系统可以通过使用webview来与移动设备集成,以用于访问功能和显示数据。这可以在应用程序内完整地访问目标页面,或者可以用于显示较小的数据段或访问特定的功能。
目标系统可以执行完全交互的模块和其它代码片段(代码片段可以是脚本或编译的),其允许在其它页面上包括所有的目标系统元素。例如,目标系统可以支持HTML iframe元素以在第三方托管网站上显示任何页面类型。
目标系统还可以以此模式操作,其中从基于云的文件存储应用程序接受文件上传,基于云的文件存储应用程序可以在同一移动设备上或不在同一移动设备上运行。这种转移可以通过直接的文件访问或通过互联网可访问的API来完成。
尽管本文档中的描述涉及web页面和浏览器,但是在移动端点的情况下它们基本上没有变化,诸如上面的移动端点是浏览器的替代。说明性的变化可以概括为首先在移动设备上安装应用程序,其设计和构建成以与web浏览器非常相似的方式操作,无论其是否主要作为页面的浏览器或获取多个片段的多个请求而实现,这些片段与使其与移动平台一致的一些用户界面元素放在一起。第二变化是,目标系统服务器在某些情况下可以使用软件开发行业中常见的多种格式和方法中的一种生成不同的输出格式,而不是生成用于所得目标页面的CSS和HTML。最后,与HTML菜单相反,移动应用程序可以具有一些硬编码的用户界面元素,诸如页面菜单,其对于移动平台可以是特定的且一致的。此种硬编码的用户界面元素可以是用于获取数据列表的web服务API调用和用于处理这些数据列表的移动应用程序内的硬编码用户界面代码的组合。
定义关系
在一些高要求的使用场景中,根据说明性实施例,设计者可能希望在记录表格中具有主要记录集以及在每个主记录的另一个表格中具有用于每个主要记录的一个或多个“次要记录”,其中设计者打算通过主要记录集的“主要密钥”将次要记录标识为属于主要记录,如在传统的数据库软件意义上。简而言之,设计者可能打算在记录集之间表达关系,以便使模板表格不仅填充有主要记录数据,而且填充有次要记录数据。例如,一个记录表格可以具有列“company ID(公司ID)”和“company name(公司名称)”,并且一个行具有值“1”和“Pleasant Solutions(合适的解决方案)”。第二记录表格可以具有列“company ID(公司ID)”和“specialization(专业化)”,并且一个行具有“1”和“Software DevelopmentConsultants(软件开发顾问)”。根据说明性实施例,如果设计者希望基于提及“PleasantSolutions(合适的解决方案”和“Software Development Consultants(软件开发顾问)”的模板表格来显示明细页面,则webifier系统支持此种使用。
例如,目标系统可以在高级模式或部分中请求设计者在一格表格上选择列或行并且在另一个表格上选择另一个列或行,以指示它们之间的主要密钥关系作为主要和次要记录集。或者,可以在配置表格中完成此关系的规范。之后,目标系统可以允许设计者在源输入控件中不仅指定一个范围或表单,而且还指定它们的列表;或者目标系统可以根据指定的第一范围或表格以及将其与次要表格绑定的主要密钥关系自动隐含其它输入。其它地方描述的用于从模板表格内引用记录数据的方法在那时可以是适用的。设计者可以使用对任一记录表格的单元格公式引用,并且通过解析该公式引用,将清楚其是设计者打算从中获取数据的主要记录集还是次要记录集。使用来自次要记录集的引用数据填充的目标系统将以与从主要记录集填充的相同方式完成。
“应用程序模板”的库
根据说明性实施例,在具有或不具有来自附加系统的附加信息(诸如,页面列表及其共享许可)的情况想,可以从设计者社区向其他设计者用户提供包括预先设计的和/或预先配置的电子表格定义的整个应用程序模板,以便将该模板作为其自己的web应用程序的起点进行复制和使用(图22)。根据应用程序中的页面类型,记录表格上的列名称,来自任何单元格内容中的关键字,单元格格式(诸如存在的日期字段),以及与哪些设计者正使用该应用程序模板web应用程序或设计者的雇主所处的行业的关联,这些可以单独列出并且可按目的、类别、行业或智能搜索进行搜索。
智能搜索还可以检查是否已经从相同的其他设计者使用任何其它应用程序模板,以将两个设计者关联为更相似。或者,目标系统可以基于存在来自单元格内容的关键字或上述任何搜索参数,将一个设计者的多个电子表格定义的组与另一个设计者的多个电子表格定义的组进行比较,以确定两个设计者之间的相似性水平。然后,搜索可以基于上述因素中的一个或多个因素,因素发生的频率以及因素的重要性来对搜索结果进行排序。然后,系统可以利用常见的市场上已知的技术和市售的库来优化用户的搜索体验。
附加组件集成和通信
电子表格工具内的插件或附加组件可以与目标系统服务器通信,并以对软件开发行业而言典型的多种方式显示其用户界面以用于客户端服务器应用程序模型。例如,一些图表说明了使用web服务API的附加组件调用目标系统以获得主要的HTML界面、传统的web页面,并且说明性地在框架中显示web页面的结果,框架类似于嵌入式浏览器窗口进行操作。这允许重复使用许多附加组件用户界面元素并且使其与未安装附加组件的设计者在目标系统的管理页面上的其各自对应部分大致一致。可以限制、删除或改变附加组件中的某些功能(诸如,使用鼠标选择单元格范围的功能)以限制设计者键入范围,或者可以在具有目标系统管理页面的嵌入式电子表格工具上执行这些功能。为了简洁起见,即使没有附加,表示附加组件用户界面或目标系统管理页面的附图应假定具有其各自的对应部分。
附加组件到电子表格工具的集成可以根据其中插件集成到的电子表格工具而变化。例如,可以使用Excel的COM Interop库(可在https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel(v=office.15).aspx上公开获得的开发使用文档)或Office的JavaScript API(可在https://dev.office.com/docs/add-ins/develop/understanding-the-javascript-api-for-office上公开获得的开发使用文档)来完成与Excel的集成。基于云的电子表格工具(诸如Google表格)可以与使用web服务集成,诸如Google表格API(可在https://developers.google.com/sheets/上公开获得的开发使用文档),该web服务具有易于访问且易于理解的web服务API函数,诸如使用“spreadsheets.get(ranges,includeGridData)”检索表格范围。
如果电子表格工具的集成程序允许,则系统可以集成到右键菜单,以用于诸如单元格或表格选项卡的区域,从而允许用户指示他们打算执行与诸如添加页面的项相关的动作的修改过程。例如,用户可以右键单击单元格组并选择“add page(添加页面)”,而不是选择添加页面然后指定源,由此添加页面屏幕就已经知道了源的指向而不需要提示用户提供该信息(图14)。
与电子表格工具的紧密集成
webifier不需要是与电子表格工具分开的应用程序,并且不需要限于经由外部应用程序可访问的装置与电子表格工具进行通信。webifier可以替代地具有紧密的关系,由此它可以具有与电子表格工具更深和/或更多基于后端的集成和通信信道。这在本文中也可以称为“紧密集成(tight integration)”。
根据一些实施例,电子表格工具可以是具有电子表格控件的基于web的电子表格系统,电子表格控件嵌入在目标系统服务器的页面内并且在设计者访问目标系统的管理页面时,允许以传统电子表格工具的任何熟悉的方式编辑电子表格定义。或者,反过来是可能的,由此webifier可以是嵌入在云电子表格工具的web界面内的控件。在任何情况下,呈现给设计者的用户界面能够比作为允许有限集成点的单独应用程序的电子表格工具的用户界面对于设计者是更加紧密地集成和简化的。例如,使用浏览器导航将具有电子表格和目标系统URL两者的统一历史,并且可以组织菜单,使得电子表格工具菜单链接和目标系统菜单链接都按逻辑组进行分组,而不是被应用程序边界部分分隔。
如上所述,无论用户界面是否实现成更紧密地集成,电子表格工具和webifier之间的数据传输、同步和其它后端处理也可以具有或不具有紧密集成。例如,比起web服务API调用,部分地或作为web服务API调用的完全替代,webifier可以使用对电子表格工具的DLL库的函数调用,或者相反,电子表格工具可以使用对webifier的DLL库的公共函数调用。这可以为webifier提供性能优势,并且允许集成以利用本领域技术人员已知的附加编程技术,诸如共享存储器访问、低级协调对象(诸如互斥量和信号量)、访问共享文件、对基础数据库的共享访问以及DLL库的共享使用。例如,此种灵活性对于两个组件之间的实时改变通知可以是有利的,其中两个组件是指webifier和电子表格工具。
或者,紧密集成可以允许webifier更直接地访问基于web的电子表格工具的基础数据库数据,或者相反地,允许基于web的电子表格工具更直接地访问webifier的基础数据库数据,或者使完全共享的数据库具有专门设计的设计模式以允许每个组件的数据直接引用另一个组件的数据,诸如通过从一个组件的数据库表引用到另一个组件的数据库表的数据库外部密钥,或者使同一数据库表的列中的一个组件的数据作为包含来自另一个组件的数据的列。直接访问可以提供显著的性能优势并且可以降低实现复杂性。例如,紧密集成可以允许单个SQL查询来确认目标页面的记录数据是否已改变,以及在数据库中有效评估查询的位置。此种查询的示例可以涉及将与目标页面的源数据的定义有关的数据库表连接到数据库表,该数据库表具有在电子表格内已经改变的特定单元格的改变日志。例如,在没有数据库级别的紧密集成的情况下,webifier系统可能会从电子表格工具的Web服务API中获取大量的单元格数据,其反过来可能使基于Web的电子表格工具从其数据库中获取数据;比较先前通过从webifier数据库中获取单元格数据而获取的单元格数据,以及将已改变的单元格列表映射回使用对该页面的单元格引用的所有目标页面。
另外,比起webifier和电子表格工具以电子表格定义的通用模式进行通信,紧密集成可以对数据库数据使用完全不同的模式,其中模式对于一个或两个组件进行处理更有效。例如,典型的电子表格定义可能具有由表格组织的XML数据,其中该表格的所有单元格都嵌套在每个表格的定义中,并且其中各种单元格属性嵌套在每个单元格的XML定义中,诸如格式和公式和值。在具有数据库级别的紧密集成的情况下,示例可以是非XML的,并且可以具有规范化而非嵌套的数据库记录,诸如数据库表具有列“sheetId(表Id)”、“rowId(行Id)”、“columnId(列Id)”和“cellContents(单元格内容)”,其中ID指的是其它数据库表。此外,数据库模式甚至不需要将单元格内容组合在一起。可以替代地对单元格内容进行划分,使得一个数据库表具有所有单元格格式,不同的数据库表具有单元格公式,以及第三数据库表具有来自评估公式的单元格的缓存值。此外,单元格可能不需要按行和列进行组织,因为数据库模式可以具有一个或多个数据库表,数据库表具有“units(单位)”列表,其仅由唯一ID和公式定义,并且模式也可以具有单独的表或允许在选择的情况下将单元映射回行和列的表,诸如当数据作为熟悉的电子表格呈现给设计者或者设计者临时以电子表格形式与数据交互时。
紧密集成还可以允许目标系统和电子表格工具不仅驻留在相同的单个服务器或服务器组上,而且还协调分布式云计算过程的最有效使用。例如,如果需要旋转附加的分布式服务器以支持增加的负载,则可以对附加服务器委派与特定web应用程序相关的所有设计者和访问者请求,并且可以向附加服务器提供两个组件的实例以及用于该特定web应用程序的所有数据。跨web应用程序边界的此种委派将允许附加服务器保持关于web应用程序的有效单元,其中其它服务器需要最少的传输。相比之下,在没有紧密集成的情况下,确保托管web应用程序和关联的webifier程序实例的特定服务器是同一服务器或甚至是地理位置靠近托管同一web应用程序的电子表格工具的服务器将变得更加复杂;因此,组件之间的通信要么更复杂,要么效率更低。
总体而言,在具有紧密集成的情况下,电子表格工具和webifier不需要是单独的应用程序,两者之间的通信不需要是电子表格定义的形式,也不需要通过API,数据的存储需要不在电子表格定义表单中,但设计者仍然能够在记录和/或UI模板以电子表格表单呈现在用户界面中时操作它们,并且访问者仍能够不以电子表格表单与目标页面中的数据进行交互。
图3B示出了使用如上所述的紧密集成的说明性软件架构。在图3B中,组合的紧密系统450包括电子表格工具逻辑452和webifier逻辑453,两者共享公共存储器451,并且两者都与通信机制410和共享库等集成。
如图3B进一步所示,设计者可以使用浏览器454创建或做出对一个或多个工作表的记录表格和模板表格改变,并且数据改变作为具有部分电子表格定义的http post请求或作为改变事件传送401a到紧密系统的电子表格逻辑452。电子表格逻辑452可以在存储402设计者的改变之前将数据转换为备选的“Efficient Format(有效格式)”,或者可以以原生电子表格格式存储数据。设计者可以使用相同或不同的浏览器455创建或做出对目标页面配置的改变,其作为http post请求被传送401b到webifier逻辑控制器453,并且之后存储402到存储器451中。
响应于来自访问者的浏览器456到webifier逻辑453的http get请求403b以提供目标页面,webifier逻辑453从存储器451中检索404所需的数据。webifier逻辑通过评估和引用模板表格中的值和格式以及评估和引用基于模板表格标识的记录表格中的值,可以将数据转换为html目标页面。可以将目标页面发送到405b访问者的浏览器456。如图3B所示,访问者看到了页面具有:仅在模板表格中找到的文本标签,而不是记录表格中的文本标签;源自RecordSheet!A1的文本标签;评估RecordSheet!C2的“100”的值;以及由模板表格定义的html输入控件,其具有来自RecordSheet、用于复选框的RecordSheet!A2和用于文本框的RecordSheet!B2的值。图3B还示出了访问者检查复选框并在浏览器456中提交的能力,使得浏览器将http post请求406b发送到webifier逻辑控制器454。webifier逻辑453处理post请求并用新数据更新存储器451,可选地存储有效格式或系统使用的任何格式。如果设计者的浏览器454仍具有活动会话,则电子表格逻辑控制器452可以从存储器451获取更新数据408,或者可选地通过集成的通信机制410,并且将数据转换成一个或多个电子表格定义或足以更新在设计者浏览器454中呈现的电子表格定义的改变事件,并且将它们发送409给设计者浏览器409,使得设计者的工作表然后在单元格A2中显示“true(真)”。
如图3B进一步所示,来自运行移动应用程序(例如,与浏览器相对)的访问者的移动设备457的web服务API调用403m可以是http get请求403b的替代。在这种情况下,webifier逻辑453可以向移动应用程序发送405m可能是XML格式的对web服务API调用的响应,其由移动应用程序以及设备或操作系统特定的设计信息一起处理以生成用于访问者的界面。如在该示例中,移动设备457呈现目标页面可以在关于具有不同布局、不同控制类型和/或缺少某些记录数据方面与访问者浏览器456呈现目标页面不同。图3B示出了访问者还将文本框值改变为true(真)并且点击移动设备457上的提交的能力,使得移动应用程序将web服务API调用406m发送到webifier逻辑控制器453。webifier逻辑453处理从web服务接收的数据,并用新数据更新存储器451。其余步骤可能类似于访问者浏览器产生的步骤。如图3B所示,可以将目标页面发送405m到运行移动应用程序(例如,与浏览器相对)的访问者的移动设备457,或者可以将其提供给在移动设备上执行的浏览器,但是基于移动设备的一个或多个特性改变了目标页面的外观(例如,屏幕尺寸、硬件功能等)。
其它特征
系统可以使用与模板表格相同的方法作为“列表项模板(list item template)”。例如,可以创建“list(列表)”的页面类型,其中输入和输出将与“details(明细)”页面类型相同,除了不要求用户选择行来查看其明细,所有行记录将以列表形式一个接一个地显示,其中列表中的每个记录根据项目模板显示。例如,这允许向访问者显示行记录列表,其中每个记录需要几行信息但不足以保证完整的明细页面,或者因为不希望重复地导航到明细页面。
在整个界面中,可以向设计者呈现缩略图,该缩略图描绘了目标页面对于访问者看起来的样子。缩略图可以在用户界面中内联(例如,如图28所示)和/或在悬停在屏幕的某些部分或特定控件上时被描绘为弹出窗口(例如,如图11所示)。如本文包括的许多附图(至少包括图28和图11)所示,缩略图可以从图中描绘的电子表格定义描绘目标页面结果。
根据一些方面,页面类型可以具有在一段时间内指定的自动刷新选项,其将自动地使客户端应用程序或浏览器周期性地为访问者刷新该目标页面(图48)。或者,可以将相同的通知和日志记录方法用于推送打开页面或页面的一部分具有新信息的客户端会话的通知,并且通知将向客户端提供更新页面的必要信息或者客户端将发送刷新页面的新请求。使用任一种方法都可以有益于无人墙式仪表板的使用场景,诸如由可以访问web页面并满足刷新请求的浏览器提供的那些,使得新信息在不影响观看者交互性的情况下总是可见的。
根据一些方面,目标系统的许可系统还可以具有限制设计者权限的规则,而不仅仅是访问者或页面许可。设计者权限可以包括访问类型,诸如只读、读取和共享,或读取和共享和更新,(图21)其具有每个应用程序、每个页面或每页级别的粒度。例如,应用程序ExampleApp上的只读权限将禁止设计者修改ExampleApp中使用的任何表格的电子表格定义,禁止改变ExampleApp中页面的页面配置,但允许设计者查看电子表格定义及其基础公式和设置。
根据一些方面,目标系统可以像许多电子表格工具那样支持使一个或多个单元格成为指定URL的可点击超链接的单元格格式。这可以使用指定URL的单元格文本上的属性来完成,其中URL的存在可以暗示其它格式改变,诸如下划线和蓝色。
说明性使用案例情景。
根据说明性使用案例,设计可以打开电子表格应用程序的Windows桌面版本,例如MICROSOFT EXCEL,其中已安装了webifier附加组件。附加组件可以包括“Sidebar(侧边栏)”作为嵌入到电子表格应用程序中的主要附加组件用户界面。可能要求设计者登录(图13)。成功登录将设计者带到图12中,其具有先前制作的web应用程序列表。该设计可以以电子表格应用程序可用的通常方式创建新的电子表格文件,并然后可以点击上传箭头(上传到服务器),如图12所示。设计者可以为应用程序设置名称(图23),并且将几乎空的电子表格(在此示例中)发送到服务器,使得成为几乎空的web应用程序。设计者接下来在图18中看到空的页面列表,并点击web应用程序动作菜单以查看图69中的菜单或点击web应用程序选项卡的动作菜单以查看图55中的菜单。用户点击该菜单中的添加页面并转到如图51中的表单,该表单可以显示对所有页面类型共有的属性,诸如页面“Title(标题)”,并且还可以显示下拉框以选择期望的目标页面类型。接下来,设计者将会看到主要空白的表单,其要求根据设计者的页面类型选择定义页面类型设置和配置,其可能类似于图26(API)、27(日历)、29(容器)、33(CSV导入)、35(明细报告)、38(编辑单元格)、41(编辑记录)、43(插入)、45(链接)、46(PDF)、47(报告)、49(选项卡容器)。设计者可以重复该过程以根据需要创建尽可能多的页面,每个页面包含本文描述的一个或多个特征。
上述任何特征可以与本发明的任何特定方面或实施例一起使用。对于本领域技术人员来说,对上述方面和实施例的特征的许多组合、修改或改变将是显而易见的,并且旨在形成本发明的一部分。与一个实施例或示例相关的具体描述的任何特征可以用在任何其它实施例或示例中。另外,尽管已经以结构特征和/或方法动作专用的语言描述了本主题,但应理解的是,所附权利要求书中定义的主题不必限于上述具体特征或动作。例如,特定软件应用程序、公式和函数名称的使用不旨在限制可以使用的替代应用程序、公式和/或函数名称,除非权利要求叙述此种特异性。相反,公开了上述具体特征和动作作为实现权利要求的说明性形式。

Claims (30)

1.一种用于生成交互式web应用程序的计算机实现的方法,所述交互式web应用程序包括至少一个web页面,所述方法包括:
确定电子表格内的一个或多个数据源,每个数据源具有零个或多个数据记录,其中所述数据源包括所述电子表格的第一部分;
从所述电子表格内确定一个或多个用户界面模板,每个用户界面模板包括用于所述数据源中的一者或多者的数据格式,其中所述用户界面模板包括所述电子表格的第二部分;
生成web数据存储,所述web数据存储包括来自在所述电子表格内标识的所述数据源的数据记录;
基于一个或多个用户界面模板生成所述交互式web应用程序的特定web页面,所述一个或多个用户界面模板对应于所述特定web页面,其中所述特定web页面引用基于与所述特定web页面相对应的所述一个或多个用户界面模板而标识的一个或多个数据源;
响应于对呈现所述交互式web应用程序的所述特定web页面的请求,生成所述特定web页面的呈现,所述特定web页面的所述呈现包括由与所述特定web页面相对应的所述一个或多个用户界面模板标识的且根据与所述特定web页面相对应的所述一个或多个用户界面模板进行格式化的一个或多个数据记录;以及
响应于经由基于所述电子表格生成的所述交互式web应用程序的输入页面接收用户输入,更新所述web数据存储。
2.如权利要求1所述的方法,其中基于所述电子表格生成的所述交互式web应用程序的所述输入页面是所述特定web页面。
3.如权利要求1所述的方法,其中所述电子表格包括多个工作表,并且其中所述电子表格的所述第一部分位于与所述电子表格的所述第二部分不同的工作表上。
4.如权利要求1所述的方法,其中所述用户界面模板的至少一种数据格式包括相应数据源的颜色、字体格式和单元格大小。
5.如权利要求1所述的方法,还包括响应于更新所述web数据存储,自动地更新所述电子表格。
6.如权利要求1所述的方法,还包括:
分析所述电子表格以标识对与所述一个或多个用户界面模板相关联的至少一种数据格式的一个或多个改变;以及
基于所改变的数据格式更新所述交互式web应用程序,而不影响所述web数据存储。
7.如权利要求1所述的方法,还包括:
分析所述电子表格以标识对所述一个或多个数据源的所述数据记录所做的一个或多个改变;以及
基于所改变的数据记录更新所述web数据存储。
8.如权利要求7所述的方法,其中分析所述电子表格以标识对所述至少一个数据记录做出的一个或多个改变包括:响应于自动检测对所述至少一个数据记录做出的所述一个或多个改变而自动更新所述web数据存储。
9.如权利要求1所述的方法,还包括:
防止具有第一安全许可的第一用户修改所述web数据存储;以及
响应于从具有第二安全许可的第二用户接收的输入,修改所述web数据存储。
10.如权利要求9所述的方法,其中基于所述一个或多个用户界面模板确定所述第一安全许可和所述第二安全许可。
11.如权利要求10所述的方法,其中所述第一安全许可由生成所述电子表格的电子表格应用程序原生的公式定义。
12.如权利要求1所述的方法,其中所述web数据存储包括所述电子表格。
13.如权利要求1所述的方法,其中所述电子表格符合MS-XLS二进制数据格式或MS-XLSB二进制数据格式,并且所述确定步骤和生成步骤由集成在电子表格应用程序内的附加组件执行。
14.如权利要求1所述的方法,其中至少一个用户界面模板标识与数据源相关联的一个或多个数据限制,并且其中生成所述特定web页面的所述呈现基于选择满足所述一个或多个数据限制的数据记录。
15.如权利要求14所述的方法,其中所述一个或多个数据限制包括在所述电子表格中标识的用户级安全性限制。
16.如权利要求14所述的方法,其中所述一个或多个数据限制中的至少一者由与所述电子表格相关联的电子表格应用程序原生的公式定义。
17.如权利要求1所述的方法,其中至少一个用户界面模板标识与特定数据源相关联的一个或多个输入验证规则,并且其中所述方法还包括针对所述一个或多个输入验证规则评估所述用户输入。
18.如权利要求1所述的方法,其中所述web数据存储标识与所述特定web页面相关联的一个或多个输入验证规则,并且其中所述方法还包括针对所述一个或多个输入验证规则评估所述用户输入。
19.如权利要求1所述的方法,还包括:
通过所述交互式web应用程序生成数据输出web页面,以用于基于第一用户界面模板从所述web数据存储输出数据;以及
通过所述交互式web应用程序生成可用于基于第二用户界面模板编辑所述web数据存储中的数据的数据编辑web页面。
20.如权利要求1所述的方法,其中生成所述特定web页面包括:选择与客户端设备特性相对应的用户界面模板,所述客户端设备特性与所述特定web页面相关联。
21.一种系统,包括:
一个或多个处理器;以及
存储器,所述存储器存储指令,所述指令在由所述一个或多个处理器执行时使所述系统:
基于评估电子表格获得所述电子表格内的一个或多个数据源,每个数据源具有一个或多个数据记录,其中所述数据源包括所述电子表格的第一工作表的至少一部分;
基于评估所述电子表格获得所述电子表格内的一个或多个用户界面模板,每个用户界面模板包括用于所述数据源中的一者或多者的数据格式,其中所述用户界面模板包括所述电子表格的第二工作表的至少一部分;
通过从所述电子表格内标识的所述数据源提取数据记录并将所述数据记录存储在web数据存储中来生成web数据存储;
基于所述web数据存储的所提取的数据记录生成所述交互式web应用程序的特定web页面,其中所述特定web页面包括对基于与所述特定web页面对应的一个或多个用户界面模板标识的且根据与所述特定web页面对应的一个或多个用户界面模板进行格式化的数据记录的引用;
响应于对呈现所述交互式web应用程序的所述特定web页面的请求,生成所述特定web页面的呈现;以及
响应于经由所述交互式web应用程序接收用户输入来更新所述web数据存储。
22.如权利要求21所述的系统,其中至少一个用户界面模板标识与数据源相关联的一个或多个数据限制,并且其中所述指令在由所述一个或多个处理器执行时还使所述系统基于选择满足所述一个或多个数据限制的数据记录而生成所述特定web页面的所述呈现。
23.一种用于生成交互式web应用程序的计算机实现的方法,所述交互式web应用程序包括至少一个web页面,所述方法包括:
基于评估一个或多个电子表格确定所述一个或多个电子表格内的一个或多个数据源,每个数据源具有一个或多个数据记录,其中所述数据源包括所述电子表格的第一工作表的至少一部分;
基于评估所述一个或多个电子表格确定所述电子表格内的一个或多个用户界面模板,每个模板包括用于所述数据源中的一者或多者的数据格式,其中所述用户界面模板包括所述电子表格的所述第一工作表的至少一部分;
基于一个或多个用户界面模板生成所述交互式web应用程序的特定web页面,所述一个或多个用户界面模板对应于所述特定web页面,其中所述特定web页面引用基于与所述特定web页面相对应的所述一个或多个用户界面模板标识的一个或多个数据源;
响应于对所述交互式web应用程序的所述特定web页面的请求,生成所述特定web页面的呈现,所述特定web页面的呈现包括由与所述特定web页面相对应的所述一个或多个用户界面模板标识的且根据与所述特定web页面相对应的所述一个或多个用户界面模板进行格式化的一个或多个数据记录;以及
响应于经由所述交互式web应用程序接收第一用户输入,更新包括来自所述数据源的数据记录的web数据存储。
24.如权利要求23所述的方法,其中所述web数据存储是所述电子表格。
25.如权利要求23所述的方法,还包括:
生成呈现所述一个或多个电子表格的至少一部分的电子表格用户界面,其中所述电子表格用户界面包括一个或多个控件,所述一个或多个控件允许用户标识所述一个或多个电子表格内的所述一个或多个数据源以及标识所述一个或多个电子表格内的所述一个或多个用户界面模板。
26.如权利要求25所述的方法,其中:
所述电子表格用户界面包括二维排列的单元格;
所述电子表格用户界面的单元格支持数值、文本值和公式;
所述电子表格用户界面中的单元格公式允许所述用户指定数学计算;
所述电子表格用户界面中的单元格公式允许引用多个其它单元格;
所述电子表格用户界面中的单元格公式支持对命名函数的引用;
所述电子表格用户界面中的单元格公式支持数学和字符串操作函数。
27.如权利要求23所述的方法,其中生成所述特定web页面的所述呈现还包括基于请求设备的设备特征从与所述特定web页面相对应的多个用户界面模板中进行选择,其中,第一用户界面模板对应于用于小屏幕设备的特定web页面格式内容,以及第二用户界面模板对应于用于大屏幕设备的特定web页面格式内容。
28.一种用于生成交互式web应用程序的计算机实现的方法,包括:
基于电子表格内容确定一个或多个数据源,每个数据源具有零个或多个数据记录;
基于所述电子表格内容确定一个或多个用户界面模板,每个用户界面模板包括用于所述数据源中的一者或多者的数据格式;
标识web数据存储,所述web数据存储包括来自所述电子表格内容中的所述数据源的数据记录;
响应于对特定web页面的第一请求,使用来自所述web数据存储的所述数据记录组成所述特定web页面,其中所述数据记录由与所述特定web页面对应的一个或多个用户界面模板标识并根据与所述特定web页面对应的一个或多个用户界面模板进行格式化;
在生成所述web数据存储之后确定所述电子表格内容已改变;
根据对所述电子表格内容所做的改变来更新所述交互式web应用程序;以及
响应于对所述特定web页面的第二请求,组成所述特定web页面,所述特定web页面包含对所述电子表格内容所做的所述改变。
29.如权利要求28所述的方法,其中对所述电子表格内容所做的一个或多个改变包括对用户界面模板的编辑,并且其中组成包含对所述电子表格内容所做的所述改变的所述特定web页面包括生成包含对所述用户界面模板的所述编辑的所述特定web页面,而不改变所述数据记录。
30.如权利要求29所述的方法,其中对所述电子表格所做的所述一个或多个改变包括对所述数据记录的编辑,并且其中组成包含对所述电子表格所做的所述一个或多个改变的所述特定web页面包括生成包含对所述数据记录的所述编辑的所述特定web页面,而不改变所述用户界面模板。
CN201780082312.3A 2016-12-03 2017-12-01 基于电子表格的软件应用程序开发 Active CN110325961B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310128491.7A CN116225399A (zh) 2016-12-03 2017-12-01 基于电子表格的软件应用程序开发

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662429749P 2016-12-03 2016-12-03
US62/429,749 2016-12-03
US15/455,909 2017-03-10
US15/455,909 US10216494B2 (en) 2016-12-03 2017-03-10 Spreadsheet-based software application development
PCT/CA2017/051457 WO2018098596A1 (en) 2016-12-03 2017-12-01 Spreadsheet-based software application development

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310128491.7A Division CN116225399A (zh) 2016-12-03 2017-12-01 基于电子表格的软件应用程序开发

Publications (2)

Publication Number Publication Date
CN110325961A true CN110325961A (zh) 2019-10-11
CN110325961B CN110325961B (zh) 2023-02-28

Family

ID=62241146

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202310128491.7A Pending CN116225399A (zh) 2016-12-03 2017-12-01 基于电子表格的软件应用程序开发
CN201780082312.3A Active CN110325961B (zh) 2016-12-03 2017-12-01 基于电子表格的软件应用程序开发

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202310128491.7A Pending CN116225399A (zh) 2016-12-03 2017-12-01 基于电子表格的软件应用程序开发

Country Status (6)

Country Link
US (4) US10216494B2 (zh)
EP (2) EP3549013B1 (zh)
JP (3) JP6770653B2 (zh)
CN (2) CN116225399A (zh)
CA (1) CA3045735A1 (zh)
WO (1) WO2018098596A1 (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110782234A (zh) * 2019-11-07 2020-02-11 殷步九 一种基于事务逻辑的信息管理方法及系统
CN111124385A (zh) * 2019-12-02 2020-05-08 深圳航天科技创新研究院 一种基于数据库的电源设计软件的自动生成方法及系统
CN111142735A (zh) * 2019-12-10 2020-05-12 深圳市优必选科技股份有限公司 一种软件页面的创建方法、装置、终端设备和存储介质
CN111159988A (zh) * 2019-12-31 2020-05-15 软通动力信息技术(集团)有限公司 一种模型处理方法、装置、计算机设备及存储介质
CN111222310A (zh) * 2019-12-23 2020-06-02 福建亿能达信息技术股份有限公司 一种不规则表单的录入和展示的方法及系统
CN111353272A (zh) * 2019-12-24 2020-06-30 浙江明度智控科技有限公司 一种web表格的信息显示方法和装置
CN111596607A (zh) * 2020-04-14 2020-08-28 宝鸡石油机械有限责任公司 一种可配置文本和操作命令的上位机通用hmi界面设计方法
CN111813282A (zh) * 2020-05-29 2020-10-23 北京金山云网络技术有限公司 一种数据表单的展示方法和装置
CN111984170A (zh) * 2020-07-14 2020-11-24 维沃移动通信有限公司 表格输出方法、装置及电子设备
CN112527387A (zh) * 2020-11-20 2021-03-19 杭州大搜车汽车服务有限公司 应用处理方法和装置
CN112785249A (zh) * 2020-12-31 2021-05-11 山东师范大学 一种基于vba的日程管理方法及系统
CN112800736A (zh) * 2021-02-04 2021-05-14 杉数科技(北京)有限公司 生成单元格编辑组件的方法、装置、介质及计算机设备
CN113011128A (zh) * 2021-03-05 2021-06-22 北京百度网讯科技有限公司 文档在线预览方法、装置、电子设备及存储介质
CN117034886A (zh) * 2023-08-10 2023-11-10 北京字跳网络技术有限公司 信息处理方法、装置、电子设备和存储介质

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11410129B2 (en) 2010-05-01 2022-08-09 Monday.com Ltd. Digital processing systems and methods for two-way syncing with third party applications in collaborative work systems
WO2021220058A1 (en) 2020-05-01 2021-11-04 Monday.com Ltd. Digital processing systems and methods for enhanced collaborative workflow and networking systems, methods, and devices
WO2021161104A1 (en) 2020-02-12 2021-08-19 Monday.Com Enhanced display features in collaborative network systems, methods, and devices
US9696967B2 (en) * 2015-11-09 2017-07-04 Microsoft Technology Licensing, Llc Generation of an application from data
US11210459B1 (en) 2016-09-23 2021-12-28 Massachusetts Mutual Life Insurance Company Systems, devices, and methods for software coding
US11138370B1 (en) 2016-09-23 2021-10-05 Massachusetts Mututal Life Insurance Company Modifying and using spreadsheets to create a GUI on another device
US10540152B1 (en) 2016-09-23 2020-01-21 Massachusetts Mutual Life Insurance Company Systems, devices, and methods for software coding
US10496737B1 (en) * 2017-01-05 2019-12-03 Massachusetts Mutual Life Insurance Company Systems, devices, and methods for software coding
US20180260461A1 (en) * 2017-03-10 2018-09-13 David Stephens Multi-platform data mining software
CN108804483B (zh) * 2017-05-05 2020-01-07 平安科技(深圳)有限公司 单元格页面的渲染方法、服务器和计算机可读存储介质
US10713370B2 (en) * 2017-06-24 2020-07-14 Seclore Technology Private Limited Information rights management through editors implemented in a browser
US10510438B2 (en) * 2017-07-07 2019-12-17 Definitive Media Corp. System and method for building intuitive clinical trial applications
US11048695B2 (en) * 2017-09-12 2021-06-29 Sap Se Context-aware data commenting system
US11138371B2 (en) * 2017-09-28 2021-10-05 Oracle International Corporation Editable table in a spreadsheet integrated with a web service
US11087080B1 (en) 2017-12-06 2021-08-10 Palantir Technologies Inc. Systems and methods for collaborative data entry and integration
US10705805B1 (en) * 2017-12-12 2020-07-07 Amazon Technologies, Inc. Application authoring using web-of-sheets data model
US10592225B2 (en) * 2018-05-11 2020-03-17 Slack Technologies, Inc. Method, apparatus, and computer program product for installing third party applications requiring variable host address identification in a group-based communication system
US11586603B1 (en) 2018-05-23 2023-02-21 Amazon Technologies, Inc. Index sheets for robust spreadsheet-based applications
US11436359B2 (en) 2018-07-04 2022-09-06 Monday.com Ltd. System and method for managing permissions of users for a single data type column-oriented data structure
US11698890B2 (en) 2018-07-04 2023-07-11 Monday.com Ltd. System and method for generating a column-oriented data structure repository for columns of single data types
US11388171B2 (en) 2018-07-25 2022-07-12 SlackTechnologies, LLC Method, apparatus, and computer program product for installing and updating third party applications requiring variable host address identification in a group-based communication system
US11113447B2 (en) 2018-08-01 2021-09-07 Microsoft Technology Licensing, Llc Cross-application ingestion and restructuring of slide presentation content
US11295073B2 (en) * 2018-08-01 2022-04-05 Microsoft Technology Licensing, Llc Cross-application ingestion and restructuring of spreadsheet content
US11681760B2 (en) 2018-08-01 2023-06-20 Microsoft Technology Licensing, Llc Cross-application ingestion and restructuring of content
US11182538B2 (en) 2018-08-01 2021-11-23 Microsoft Technology Licensing, Llc Conversational user interface logic for cross-application ingestion and restructuring of content
US10657321B2 (en) * 2018-09-11 2020-05-19 Apple Inc. Exploded-range references
US10977211B2 (en) 2018-10-11 2021-04-13 Dealvector, Inc. Effective deployment of spreadsheets in browser environments
US11429557B2 (en) 2018-10-11 2022-08-30 Dealvector, Inc. Templatization of spreadsheets in browser environments
US11429558B2 (en) 2018-10-11 2022-08-30 Dealvector, Inc. Mapping tests of spreadsheets in server-browser environments
US10917233B2 (en) * 2018-10-16 2021-02-09 International Business Machines Corporation Selective exchange of transaction data
US11270017B2 (en) 2018-10-16 2022-03-08 International Business Machines Corporation Selective exchange of transaction data
US11010536B2 (en) * 2018-12-20 2021-05-18 AINS, Inc. Systems and methods for dynamic web user interface generation
CN109871523A (zh) * 2019-01-31 2019-06-11 成都摹客科技有限公司 一种基于原型设计工具的单元格子的快速创建方法及系统
CN109871254A (zh) * 2019-01-31 2019-06-11 成都摹客科技有限公司 一种可分离的原型工具的单元格子的创建方法及系统
US20200287947A1 (en) * 2019-03-04 2020-09-10 Metatellus Oü System and method for selective communication
US10902146B2 (en) 2019-03-19 2021-01-26 Workiva Inc. Method and computing device for gating data between workspaces
WO2020190931A1 (en) * 2019-03-19 2020-09-24 Sigma Computing, Inc. Cross-organization worksheet sharing
US11120211B2 (en) * 2019-04-23 2021-09-14 Microsoft Technology Licensing, Llc Combining spreadsheet recorded operations
US11681504B1 (en) 2019-04-26 2023-06-20 Opturo, Inc. Automated application builder using configuration files
US11636088B2 (en) * 2019-06-24 2023-04-25 Jnd Holdings Llc Systems and methods to facilitate rapid data entry for document review
US11194793B1 (en) 2019-06-25 2021-12-07 Amazon Technologies, Inc. Dynamically materialized views for sheets based data
US11086894B1 (en) 2019-06-25 2021-08-10 Amazon Technologies, Inc. Dynamically updated data sheets using row links
US10942709B2 (en) * 2019-07-02 2021-03-09 Holtworks, LLC Hyperpiler
CN110516028B (zh) * 2019-07-29 2022-04-29 贝壳技术有限公司 一种基于react实现复杂编辑器的方法及装置
CN110705243A (zh) * 2019-10-10 2020-01-17 深圳前海微众银行股份有限公司 web页面表格设置方法、装置、设备及计算机存储介质
US20210112130A1 (en) * 2019-10-15 2021-04-15 UiPath, Inc. Mobile push notification for robotic process automation (rpa)
CN114730256A (zh) * 2019-11-11 2022-07-08 阿韦瓦软件有限责任公司 用于分布式低代码/无代码计算环境的计算机化的系统和方法
EP4062313A1 (en) 2019-11-18 2022-09-28 Monday.com Ltd. Collaborative networking systems, methods, and devices
US20210150135A1 (en) 2019-11-18 2021-05-20 Monday.Com Digital processing systems and methods for integrated graphs in cells of collaborative work system tables
US11397519B2 (en) * 2019-11-27 2022-07-26 Sap Se Interface controller and overlay
US11290531B2 (en) * 2019-12-04 2022-03-29 Dropbox, Inc. Immediate cloud content item creation from local file system interface
CN111090975B (zh) * 2019-12-10 2024-04-19 金蝶软件(中国)有限公司 数据打印方法、数据处理系统及计算机存储介质
CN113010588B (zh) * 2019-12-20 2023-07-04 北京国基科技股份有限公司 一种数据表格的处理方法
CN111178022A (zh) * 2019-12-23 2020-05-19 北京航天云路有限公司 一种二维图表数据标准化格式定义与实现方法
US11150955B2 (en) 2020-01-16 2021-10-19 Fujitsu Limited Generation and usage of a task-based programming platform
CN111338625B (zh) * 2020-02-20 2023-04-18 广东小天才科技有限公司 一种数据处理方法、系统、终端设备以及存储介质
CN113377367B (zh) * 2020-03-10 2024-04-30 腾讯科技(深圳)有限公司 数据收集方法、装置、计算机设备和存储介质
US11829953B1 (en) 2020-05-01 2023-11-28 Monday.com Ltd. Digital processing systems and methods for managing sprints using linked electronic boards
US11277361B2 (en) 2020-05-03 2022-03-15 Monday.com Ltd. Digital processing systems and methods for variable hang-time for social layer messages in collaborative work systems
CN111723138B (zh) * 2020-06-10 2023-12-19 山东浪潮新世纪科技有限公司 一种模拟人工方式自动获取数据的系统及方法
CN112015408A (zh) * 2020-07-08 2020-12-01 广州乐摇摇信息科技有限公司 组件渲染方法、装置、存储介质及电子装置
US11556702B2 (en) * 2020-08-31 2023-01-17 Oracle International Corporation Orchestration of crud operations for a hierarchical web service data model in a spreadsheet
CN111984238A (zh) * 2020-09-22 2020-11-24 吴政静 一种跨平台桥接数据信息处理的软件
USD993277S1 (en) * 2020-12-10 2023-07-25 Yokogawa Electric Corporation Display screen or portion thereof with graphical user interface
US11397847B1 (en) 2021-01-14 2022-07-26 Monday.com Ltd. Digital processing systems and methods for display pane scroll locking during collaborative document editing in collaborative work systems
US11716381B2 (en) 2021-04-13 2023-08-01 Capital One Services, Llc Exporting data to a cloud-based service
CN113362018A (zh) * 2021-05-25 2021-09-07 北京明略软件系统有限公司 一种会议时长的处理方法及系统
CN113297311B (zh) * 2021-06-16 2023-12-19 北京有竹居网络技术有限公司 一种数据转换方法及装置
CN113721901A (zh) * 2021-06-25 2021-11-30 国网安徽省电力有限公司 一种低代码的财务数据分析可视化引擎
CN113468400B (zh) * 2021-07-23 2023-11-28 平安国际智慧城市科技股份有限公司 可视化网页的列表渲染方法、装置、设备及存储介质
US11868711B2 (en) * 2021-08-16 2024-01-09 Google Llc Creating dynamic data-bound container hosted views and editable forms
CN114385150B (zh) * 2021-09-18 2022-09-02 北京能科瑞元数字技术有限公司 基于智能引擎的低代码开发方法
US11960864B2 (en) * 2021-09-27 2024-04-16 Microsoft Technology Licensing, Llc. Creating applications and templates based on different types of input content
KR102397494B1 (ko) * 2021-11-17 2022-05-13 (주)에스엠시스템 로우(Low) 코드 웹 개발 및 운영 시스템 및 이를 이용한 서비스 방법
WO2024010567A1 (en) * 2022-07-05 2024-01-11 Rakuten Symphony Singapore Pte. Ltd. Method and apparatus for management and validation of data
US11741071B1 (en) 2022-12-28 2023-08-29 Monday.com Ltd. Digital processing systems and methods for navigating and viewing displayed content
US11886683B1 (en) 2022-12-30 2024-01-30 Monday.com Ltd Digital processing systems and methods for presenting board graphics
US11893381B1 (en) 2023-02-21 2024-02-06 Monday.com Ltd Digital processing systems and methods for reducing file bundle sizes
CN116382659B (zh) * 2023-05-29 2023-09-01 珠海乐图软件有限公司 一种无代码开发平台的数据定义方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0028434D0 (en) * 2000-11-22 2001-01-10 Decision Curve Ltd Methods and apparatus for automatically producing spreadsheet-based models
US20050268215A1 (en) * 2004-06-01 2005-12-01 Microsoft Corporation Method and apparatus for viewing and interacting with a spreadsheet from within a web browser
CN1841362A (zh) * 2005-03-31 2006-10-04 国际商业机器公司 用于处理电子表格的方法和系统
US8510266B1 (en) * 2011-03-03 2013-08-13 Google Inc. System and method for providing online data management services
US20130290822A1 (en) * 2011-12-29 2013-10-31 Bibo Labs, Inc. Spreadsheet-based programming language adapted for report generation
US20160224536A1 (en) * 2015-02-03 2016-08-04 Intuit Inc. Systems, methods and articles for a web-based spreadsheet application

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4989141A (en) 1987-06-01 1991-01-29 Corporate Class Software Computer system for financial analyses and reporting
GB9800427D0 (en) 1998-01-10 1998-03-04 Ibm Probabilistic data clustering
US7421648B1 (en) 1999-05-21 2008-09-02 E-Numerate Solutions, Inc. Reusable data markup language
WO2002005065A2 (en) 2000-07-11 2002-01-17 Juice Software, Inc. A method and system for integrating network-based functionality into productivity applications and documents
US7251776B2 (en) 2001-07-13 2007-07-31 Netview Technologies, Inc. System and method for efficiently and flexibly utilizing spreadsheet information
WO2003098500A1 (en) 2002-05-16 2003-11-27 Decision Curve Limited Method and apparatus for automatically producing spreadsheet-based models
US20040205468A1 (en) * 2002-05-17 2004-10-14 Thomas Lightner Web page author
US7702636B1 (en) 2002-07-31 2010-04-20 Cadence Design Systems, Inc. Federated system and methods and mechanisms of implementing and using such a system
US20040103365A1 (en) 2002-11-27 2004-05-27 Alan Cox System, method, and computer program product for an integrated spreadsheet and database
US20040111666A1 (en) 2002-12-05 2004-06-10 Hollcraft James G. Software replicator functions for generating reports
AU2002953555A0 (en) 2002-12-23 2003-01-16 Canon Kabushiki Kaisha Method for presenting hierarchical data
US20040221233A1 (en) 2003-04-29 2004-11-04 David Thielen Systems and methods for report design and generation
US7523395B1 (en) 2003-05-30 2009-04-21 Oracle International Corporation Web application generator for spreadsheet calculators
US20090132347A1 (en) 2003-08-12 2009-05-21 Russell Wayne Anderson Systems And Methods For Aggregating And Utilizing Retail Transaction Records At The Customer Level
US7225189B1 (en) 2004-02-19 2007-05-29 Microsoft Corporation Data source write back and offline data editing and storage in a spreadsheet
JP2005352634A (ja) 2004-06-09 2005-12-22 Hidenori So Xmlを用いた分散データ処理システム
US20090235087A1 (en) * 2004-06-24 2009-09-17 Geoffrey David Bird Security for Computer Software
JP2006024021A (ja) * 2004-07-08 2006-01-26 Nec Corp 帳票自動作成システム、帳票自動作成方法、帳票自動作成サーバ、および帳票自動作成装置
US7779431B2 (en) 2004-07-16 2010-08-17 Wallace Robert G Networked spreadsheet template designer
US7213199B2 (en) 2004-07-16 2007-05-01 Cognos Incorporated Spreadsheet user-interface for an enterprise planning system having multi-dimensional data store
US9009582B2 (en) * 2004-11-19 2015-04-14 Google Inc. Converting spreadsheet applications to web-based applications
US7533420B2 (en) * 2004-12-09 2009-05-12 Microsoft Corporation System and method for restricting user access to a network document
US7752536B2 (en) * 2005-09-09 2010-07-06 Microsoft Corporation Designating, setting and discovering parameters for spreadsheet documents
JP4140919B2 (ja) 2006-03-14 2008-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 表計算などの処理を行うシステムおよびその方法
US20080104542A1 (en) 2006-10-27 2008-05-01 Information Builders, Inc. Apparatus and Method for Conducting Searches with a Search Engine for Unstructured Data to Retrieve Records Enriched with Structured Data and Generate Reports Based Thereon
JP4767828B2 (ja) 2006-12-01 2011-09-07 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ用アプリケーション・プログラムの作成システム、方法、及びプログラム
US8190987B2 (en) 2007-10-25 2012-05-29 Microsoft Corporation Private views of data and local calculations during real time collaboration
US8145725B2 (en) * 2007-10-31 2012-03-27 International Business Machines Corporation Updating data stores of virtual worlds based on data stores external to the virtual worlds
US20140006913A1 (en) 2007-12-21 2014-01-02 Adobe Systems Incorporated Visual template extraction
US7406200B1 (en) 2008-01-08 2008-07-29 International Business Machines Corporation Method and system for finding structures in multi-dimensional spaces using image-guided clustering
US20090327339A1 (en) 2008-06-27 2009-12-31 Microsoft Corporation Partition templates for multidimensional databases
US9389840B2 (en) * 2009-02-11 2016-07-12 Johnathan Mun Compiled and executable method
US20100211862A1 (en) 2009-02-18 2010-08-19 Microsoft Corporation Facilitating spreadsheet and database views on common data store
US20110066933A1 (en) * 2009-09-02 2011-03-17 Ludwig Lester F Value-driven visualization primitives for spreadsheets, tabular data, and advanced spreadsheet visualization
WO2011091388A2 (en) * 2010-01-22 2011-07-28 The Regents Of The University Of California Web application development framework
US8843814B2 (en) 2010-05-26 2014-09-23 Content Catalyst Limited Automated report service tracking system and method
US9952893B2 (en) 2010-11-03 2018-04-24 Microsoft Technology Licensing, Llc Spreadsheet model for distributed computations
US9721030B2 (en) * 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects
US9053083B2 (en) 2011-11-04 2015-06-09 Microsoft Technology Licensing, Llc Interaction between web gadgets and spreadsheets
US20130145244A1 (en) 2011-12-05 2013-06-06 Microsoft Corporation Quick analysis tool for spreadsheet application programs
US20130166498A1 (en) 2011-12-25 2013-06-27 Microsoft Corporation Model Based OLAP Cube Framework
US9361656B2 (en) 2012-01-09 2016-06-07 W. C. Taylor, III Data mining and logic checking tools
US20140108971A1 (en) * 2012-08-31 2014-04-17 Salesforce.Com.Inc. Application builder
US20140136936A1 (en) 2012-11-09 2014-05-15 Microsoft Corporation Spreadsheet functions to call rest api sources
US9575950B2 (en) * 2012-12-11 2017-02-21 Smartorg, Inc. Systems and methods for managing spreadsheet models
US10210151B2 (en) * 2012-12-17 2019-02-19 Thomson Reuters (Grc) Llc Dynamic function builder
JP2014153751A (ja) 2013-02-05 2014-08-25 Shuichi Kuroki データの抽出・編集・出力装置及びそのプログラム
US20140236860A1 (en) 2013-02-19 2014-08-21 Ray Camrass system allowing banks to diversify their loan portfolios via exchanging loans
JP6045393B2 (ja) * 2013-02-26 2016-12-14 三菱電機株式会社 情報処理システム
DE202014010948U1 (de) 2013-05-22 2017-01-27 Google Inc. Nicht-kollaborative Filter in einem kollaborativen Dokument
US9298454B2 (en) 2013-10-16 2016-03-29 Microsoft Technology Licensing, Llc Using spreadsheets as a basis for enhanced application development
US9367597B2 (en) 2013-11-18 2016-06-14 International Business Machines Corporation Automatically managing mapping and transform rules when synchronizing systems
US9348561B2 (en) 2014-05-21 2016-05-24 InvestCloud, Inc Tabular format transaction editor
US20160026616A1 (en) * 2014-07-28 2016-01-28 Microsoft Corporation Presenting dataset of spreadsheet in form based view
US20160092424A1 (en) * 2014-09-25 2016-03-31 Oracle International Corporation Client side calculations
JP2016091244A (ja) * 2014-10-31 2016-05-23 富士通エフ・アイ・ピー株式会社 情報処理装置、プログラム
US20160173541A1 (en) * 2014-12-12 2016-06-16 Microsoft Technology Licensing, Llc Presentation of content from within spreadsheet application
US9959098B1 (en) 2015-03-15 2018-05-01 Sigma Sciences Limited Data processing systems and methods
US20170098008A1 (en) 2015-10-06 2017-04-06 Squawqr LLC Mobile application manager system and method
US20170124043A1 (en) * 2015-11-02 2017-05-04 Microsoft Technology Licensing, Llc Sound associated with cells in spreadsheets
KR101769857B1 (ko) 2015-12-28 2017-08-22 (주)비아이매트릭스 스프레드시트 인터페이스를 이용한 데이터베이스 갱신 시스템
EP3465470A1 (en) 2016-06-07 2019-04-10 Open As App GmbH Method and device for generating an electronic document specification based on a n-dimensional data source
US10929339B2 (en) 2016-10-17 2021-02-23 Yokogawa Electric Corporation Generation of multiple worksheet exportation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0028434D0 (en) * 2000-11-22 2001-01-10 Decision Curve Ltd Methods and apparatus for automatically producing spreadsheet-based models
US20050268215A1 (en) * 2004-06-01 2005-12-01 Microsoft Corporation Method and apparatus for viewing and interacting with a spreadsheet from within a web browser
CN1841362A (zh) * 2005-03-31 2006-10-04 国际商业机器公司 用于处理电子表格的方法和系统
US8510266B1 (en) * 2011-03-03 2013-08-13 Google Inc. System and method for providing online data management services
US20130290822A1 (en) * 2011-12-29 2013-10-31 Bibo Labs, Inc. Spreadsheet-based programming language adapted for report generation
US20160224536A1 (en) * 2015-02-03 2016-08-04 Intuit Inc. Systems, methods and articles for a web-based spreadsheet application

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
EDWARD BENSON,ET AL: "spreadsheet driven web applications", 《PROCEEDINGS OF THE 27TH ANNUAL ACM SYMPOSIUM ON USER INTERFACE SOFTWARE AND TECHNOLOGY》 *
KERRY SHIH-PING CHANG,ET AL: "Creating interactive web data application with apreadsheets", 《PROCEEDINGS OF THE 27TH ANNUAL ACM SYMPOSIUM ON USER INTERFACE SOFTWARE AND TECHNOLOGY》 *
沈才梁: "Web页面动态表格数据导入Excel的JavaScript实现", 《电脑开发与应用》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110782234B (zh) * 2019-11-07 2020-10-02 殷步九 一种基于事务逻辑的信息管理方法及系统
CN110782234A (zh) * 2019-11-07 2020-02-11 殷步九 一种基于事务逻辑的信息管理方法及系统
CN111124385A (zh) * 2019-12-02 2020-05-08 深圳航天科技创新研究院 一种基于数据库的电源设计软件的自动生成方法及系统
CN111124385B (zh) * 2019-12-02 2022-05-20 深圳航天科技创新研究院 一种基于数据库的电源设计软件的自动生成方法及系统
CN111142735A (zh) * 2019-12-10 2020-05-12 深圳市优必选科技股份有限公司 一种软件页面的创建方法、装置、终端设备和存储介质
CN111222310A (zh) * 2019-12-23 2020-06-02 福建亿能达信息技术股份有限公司 一种不规则表单的录入和展示的方法及系统
CN111353272A (zh) * 2019-12-24 2020-06-30 浙江明度智控科技有限公司 一种web表格的信息显示方法和装置
CN111353272B (zh) * 2019-12-24 2023-10-20 明度智云(浙江)科技有限公司 一种web表格的信息显示方法和装置
CN111159988A (zh) * 2019-12-31 2020-05-15 软通动力信息技术(集团)有限公司 一种模型处理方法、装置、计算机设备及存储介质
CN111159988B (zh) * 2019-12-31 2023-09-08 软通动力信息技术(集团)股份有限公司 一种模型处理方法、装置、计算机设备及存储介质
CN111596607A (zh) * 2020-04-14 2020-08-28 宝鸡石油机械有限责任公司 一种可配置文本和操作命令的上位机通用hmi界面设计方法
CN111596607B (zh) * 2020-04-14 2021-07-13 宝鸡石油机械有限责任公司 一种可配置文本和操作命令的上位机通用hmi界面设计方法
CN111813282A (zh) * 2020-05-29 2020-10-23 北京金山云网络技术有限公司 一种数据表单的展示方法和装置
CN111984170A (zh) * 2020-07-14 2020-11-24 维沃移动通信有限公司 表格输出方法、装置及电子设备
CN111984170B (zh) * 2020-07-14 2022-06-10 维沃移动通信有限公司 表格输出方法、装置及电子设备
CN112527387A (zh) * 2020-11-20 2021-03-19 杭州大搜车汽车服务有限公司 应用处理方法和装置
CN112527387B (zh) * 2020-11-20 2024-03-01 杭州大搜车汽车服务有限公司 应用处理方法和装置
CN112785249A (zh) * 2020-12-31 2021-05-11 山东师范大学 一种基于vba的日程管理方法及系统
CN112800736A (zh) * 2021-02-04 2021-05-14 杉数科技(北京)有限公司 生成单元格编辑组件的方法、装置、介质及计算机设备
CN113011128A (zh) * 2021-03-05 2021-06-22 北京百度网讯科技有限公司 文档在线预览方法、装置、电子设备及存储介质
CN117034886A (zh) * 2023-08-10 2023-11-10 北京字跳网络技术有限公司 信息处理方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
US20180157467A1 (en) 2018-06-07
US11442707B2 (en) 2022-09-13
JP7460689B2 (ja) 2024-04-02
US20220374213A1 (en) 2022-11-24
JP2021028828A (ja) 2021-02-25
US10216494B2 (en) 2019-02-26
CN116225399A (zh) 2023-06-06
US10877736B2 (en) 2020-12-29
US11893366B2 (en) 2024-02-06
WO2018098596A1 (en) 2018-06-07
EP3549013A1 (en) 2019-10-09
JP2022130503A (ja) 2022-09-06
US20210081183A1 (en) 2021-03-18
JP2020504889A (ja) 2020-02-13
EP3549013B1 (en) 2024-03-20
EP3549013A4 (en) 2020-08-05
JP6770653B2 (ja) 2020-10-14
JP7093387B2 (ja) 2022-06-29
US20190187962A1 (en) 2019-06-20
CN110325961B (zh) 2023-02-28
EP4343613A2 (en) 2024-03-27
CA3045735A1 (en) 2018-06-07

Similar Documents

Publication Publication Date Title
JP7093387B2 (ja) スプレッドシートに基づくソフトウェアアプリケーション開発
US11113041B2 (en) Spreadsheet-based software application development
JP2021028828A6 (ja) スプレッドシートに基づくソフトウェアアプリケーション開発
EP3718000B1 (en) Spreadsheet-based software application development
US10810361B1 (en) Role-agnostic interaction management and real time workflow sequence generation from a live document
US20200042143A1 (en) Unified document surface
CA2528583C (en) An automated publishing system that facilitates collaborative editing and accountability through virtual document architecture
US11726753B2 (en) Spreadsheet-based software application development
US11120200B1 (en) Capturing unstructured information in application pages
JP4976083B2 (ja) 情報共有システムの情報連携プログラム
Barresse et al. Excel Tables: A Complete Guide for Creating, Using and Automating Lists and Tables
Hughes SharePoint Designer 2010 Unleashed
de Freitas Alves Declarative Approach to Data Extraction of Web pages

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
GR01 Patent grant
GR01 Patent grant