U.S. Pat. No. 9,824,081 November 2017 Lehmann, et al.
U.S. Pat. No. 9,805,080 October 2017 Joshi, et al.
U.S. Pat. No. 9,805,017 October 2017 Krueger
A spreadsheet is a document, physical or electronic, that represents a collection of cells. Cells contain data items such as numbers, strings, and or dates; they may also contain additional computational instructions, such as formulas, functions, snippets of code, as well as pointers and references to other cells. Cells in a spreadsheet may be arranged in a geometric fashion; typically rows and columns. Rows and columns have unique names. These rows and columns can also be grouped; typically these groups are called worksheets. A cell's location in the spreadsheet is usually specified using a combination of the worksheet name, row and column in which the cell resides. Cell's may also contain other types of information such as data formatting and presentation; form widgets; and descriptive notes or comments.
Cell generation describes the creation of a new cell that is added to the worksheet. Cell generation also refers to other methods of creating cells such as copying existing cells or moving a cell from one location to another. Cells may be generated singly or in groups.
Cell manipulation describes the replacement of an existing cell with a new cell, or updating the contents of an existing cell with new data or computational instructions. Cell manipulation also includes removing a cell from the spreadsheet. Cells may be manipulated singly or in groups.
Cell arrangement refers to the spatial association of cells in columns or rows. This includes specifying or changing the ordering, grouping, or dependencies of cells. Cells may be arranged singly or in groups.
Most spreadsheet applications provide cell generation, manipulation, and arrangement functionality via a user interface. Using Excel for instance, users may create new cells by using a mouse to click on a visual representation of a cell, usually a box, then using their keyboard enter new information into the cell. The user may also choose to later copy, update or remove the cell via Excel's user interface. The user may also choose to sort or group existing cells using Excel's user interface. The user can specify how many cells are generated, manipulated, or arrangement, and makes decisions on starting or stopping generation, manipulation, or arrangement based on the visual feedback provided by the user interface. Other spreadsheet applications mimic Excel quite successfully. This functionality is well understood and has existed for a long time. A salient characteristic of this existing user interface is that the cell generation, manipulation, and arrangement instructions directed by the user via the application's user interface happens immediately and in the spreadsheet itself.
One of the drawbacks to using desktop or web based spreadsheets as a computational tool is that they require hands-on human based interaction to manipulate and generate data cells. This makes it extremely difficult to run spreadsheet computations at scale. In order to overcome this limitation, spreadsheet users often employ computer programmers to translate the calculations in a spreadsheet into another computing language and platform in order to achieve automation and scalability. Spreadsheet translation is time consuming; it is a manual process that, depending on the size of a spreadsheet, could take weeks, months, or even years to accomplish.
This invention describes a method for associating, attaching, or embedding directives within a spreadsheet for the generation, manipulation, and arrangement of cells in the spreadsheet, thereby relieving spreadsheets users of the need to manually perform cell generation, manipulation, or arrangements.
A directive indicates a specific action to be taken before, after, or during the generation, manipulation, or arrangement of cells in a spreadsheet. A user creates a spreadsheet, then associates one or more directives to the said spreadsheet. Each directive indicates an action a server module will perform on the spreadsheet on behalf of the user. The order of which the directives are performed is specified by convention, which is published and known to the user before submission.
Using a submission module, the spreadsheet and input data, along with the associated spreadsheet directives are submitted to an parser module. The parser module extracts the directives, and formulas from the spreadsheet. The directives and formulas along with the input are then passed to the execution module to be evaluated. The execution module processes the input data using the formulas extracted from the spreadsheet in the manner indicated by the associated directives per convention. The results are stored and made available to the user via a viewing module.
In
In
The present invention provides a method and a system for attaching and processing directives that indicate how a spreadsheet should be created or generated in the absence of a user. This alleviates the need for expensive translation in order to achieve spreadsheet computation at scale. It allows the end user to direct, via the use of attached computational directives, how a spreadsheet is to be computed at scale without requiring the presence of the user and without the need of a computer programmer to translate the spreadsheet into another language or platform. It allows the user to add computational directives using existing spreadsheet functionality.
In one embodiment, the user attaches one or more directives to one or more worksheets in a spreadsheet. One embodiment of associating, attaching, or embedding these cell generation, manipulation, or arrangement directives would be to use the comment or note creation facility available in most spreadsheets.
The advantage of this approach is that many spreadsheet application users are familiar with the art of associating, attaching, or embedding a comment in a cell. The exact mechanism for doing so varies from spreadsheet application to application. As an example, a user may wish to specify in a cell or in a column of cells that cell generation should halt. The directive added to a comment in that cell would indicate that the value produced by this cell specifies whether or not cell generation should continue. As an example of one such directive, to be considered for explanation based purposes, the string “halt->true” embedded in the comment would indicate processing should halt if the value of this cell evaluates to “true”. This is illustrated in
One familiar with the art will appreciate that other methods for associating directives to cells or worksheets exist. One embodiment of associating these types of cell generation, manipulation, or arrangement directives may be to create a worksheet in the spreadsheet and use said worksheet to contain directives. Another embodiment may incorporate these directives in a separate file associated with the spreadsheet. Another embodiment may store this information in a datastore or database. Yet another embodiment is to provide a specialized widget or menu item that allows the user to associate to a cell its generation, manipulation, or arrangement directives. The use of the common spreadsheet construct called a “named reference” is another example of an embodiment that may also be used to hold cell generation, manipulation, and arrangement directives. Still another embodiment may be construed of a mechanism or apparatus for submitting cell generation, manipulation, or arrangement instructions sometime after the spreadsheet was created via a web browser. Another embodiment may store the directive directly in the cell as a value.
The following lists a subset of cell generation, manipulation, or arrangement directives a user may specify via cell association, attachment, or embedding: create cells; copy cells; stop creating cells; filter cells; sort cells after generation; flip cell order; label cells; remove cells; store cells; or discard cells. Other directives may indicate when cell generation may begin, for instance generate cells every weekday at 4 o'clock in the morning. More directives are possible; the presence of this list does not suggest that the set of directives is limited.
The spreadsheet along with its associated directives
The result
It is noted that the syntax or structure of the directives can take on different embodiments. One of the unique attributes of this claim is that a directive can be associated to cell or group of cells (such as a column, a row, or a worksheet) in a spreadsheet. A computing process could follow the associated directives to produce the desired result.
This invention is unique is that it specifies a method for associating with, attaching to or embedding within cells in the spreadsheet, one or more directives that specify the generation, manipulation, and arrangement of cells to be performed at a later time and place. In particular, it enables the user, whether human or computing process to instruct another computing process how to perform cell generation, manipulation, and arrangement on a computing platform at some other time. That future cell generation, manipulation, or arrangement may occur according to a schedule or in reaction to some predefined event, occurrence or incident and may take place on a same or different computing platform than the spreadsheet along with its associated cell generation, manipulation, or arrangement directives were created.
Number | Date | Country | |
---|---|---|---|
62427785 | Nov 2016 | US |