Compound data objects
The present disclosure describes a value referred to as a compound object that stores multiple values in a single cell, wherein those multiple values are organized according to a defined structure. The compound object may store multiple values according to a known defined data structure such as, for example, a record, vector, matrix, table, or array. In other embodiments, the compound object may store multiple values as any nested combination of any one of the known or user-defined data structures. Each of the values stored in the compound object are individually referenceable and can fully participate with spreadsheet functionality including calculations, referencing, and formatting.
1. A computer-implemented method of a spreadsheet, comprising:
receiving a selection to create a compound object for storing multiple values in a spreadsheet cell, the multiple values organized according to a data structure;
identifying the data structure for the multiple values based on determining a first data structure type for a first set of values and a second data structure type for a second subset of values in the first set;
receiving, via a first user interface in a card view, properties defining the data structure for the compound object based on the first and second data structure types;
creating the compound object for storing the multiple values in the spreadsheet cell based on the properties defining the data structure;
populating the compound object with the multiple values via a second user interface in the card view;
associating the compound object with the spreadsheet cell;
receiving a first signal to expand the compound object across multiple cells of the spreadsheet;
determining that there are no value-storing spreadsheet cells proximate to the spreadsheet cell that would be overwritten by expanding the compound object across the multiple cells of the spreadsheet; and
storing values from the compound object across the multiple spreadsheet cells responsive to determining that there are not value-storing spreadsheet cells that would be overwritten.
2. The method of claim 1 , further comprising:
receiving a selection of the first or second data structure type; and
displaying an input field for receiving the selection of the first or second data structure type.
3. The method of claim 2 , wherein receiving the selection of the first or second data structure type comprises receiving a partial entry corresponding to the first or second data structure type.
4. The method of claim 3 , wherein the second user interface includes a guide display that prompts a user to provide the multiple values according to a schema of a structural definition of the first or second data structure type.
5. The method of claim 1 , wherein the multiple values comprise one or more of:
a string;
a number;
a graph;
a chart; or
an error.
6. The method of claim 1 , further comprising receiving the multiple values in one of:
a formula bar; and
the user interface.
7. The method of claim 1 , wherein the first data structure type and the second data structure type are mutually different.
8. The method of claim 1 , wherein the first or second data structure type includes at least one of a record, a vector, a matrix, a table, or an array.
9. The method of claim 1 , further comprising:
receiving a second signal to collapse values from the multiple cells back into an instance of the compound object;
creating the instance of the compound object responsive to receiving the second signal;
storing values from the multiple spreadsheet cells in the instance of the compound object;
storing the instance of the compound object in the spreadsheet cell of the spreadsheet; and
clearing the values associated with the instance of the compound object from the multiple spreadsheet cells.
10. The method of claim 1 , further comprising:
determining that there is a first value-storing spreadsheet cell proximate to the spreadsheet cell that would be overwritten by expanding the compound across the multiple cells of the spreadsheet;
shifting a value of the first value-storing spreadsheet cell to an open spreadsheet cell that does not include a value; and
storing values from the compound object across the multiple spreadsheet cells after shifting the values of the first value-storing spreadsheet cell to the open spreadsheet cell.
11. A system comprising:
at least one processing unit; and
at least one memory storing computer executable instructions that, when executed by the at least one processing unit, cause the system to perform operations comprising:
receiving a selection to create a compound object for storing multiple values in a spreadsheet cell, the multiple values organized according to a data structure;
identifying the data structure for the multiple values based on determining a first data structure type for a first set of values and a second data structure type for a second subset of values in the first set;
receiving, via a first user interface in a card view, properties defining the data structure for the compound object based on the first and second data structure types;
creating the compound object for storing the multiple values in the spreadsheet cell based on the properties defining the data structure;
populating the compound object with the multiple values via a second user interface in the card view;
associating the compound object with the spreadsheet cell;
receiving a first signal to expand the compound object across multiple coils of the spreadsheet;
determining that there are no value-storing spreadsheet cells proximate to the spreadsheet cell that would be overwritten by expanding the compound object across the multiple cells of the spreadsheet; and
storing values from the compound object across the multiple spreadsheet cells responsive to determining that there are not value-storing spreadsheet cells that would de overwritten.
12. The system of claim 11 , further comprising:
determining that a value in the first set of values is a nested value based at least in part on a schema defining the value.
13. The system of claim 12 , wherein the schema has a syntax indicating that the value is a nested value.
14. The system of claim 12 , further comprising:
determining that the nested value comprises a first nested value and a second nested value.
15. The system of claim 14 , wherein the first nested value and the second nested value are organized according to a structural definition of the first data structure type and the second data structure type.
16. The system of claim 15 , wherein the structural definition is one of predefined and user defined.
17. The system of claim 11 , wherein the compound object is created based on a schema associated with a structural definition of the first data structure type and the second data structure type.
18. A computer implemented method of a spreadsheet, comprising:
receiving a selection of a spreadsheet cell associated with a compound object having a data structure of a first data structure type and a second data structure type, wherein the compound object stores multiple values in the spreadsheet cell, and the first data structure type is associated with a first set of values of the multiple values and the second data structure is associated with a second subset of values in the first set;
launching a card view of the compound object based on the first and second data structure types, the card view providing a first user interface for manipulating one or more properties of the first and second data structure types and a second user interface for receiving the multiple values associated with the compound object;
receiving a change to a value provided in the card view via the second user interface;
storing the changed value in the compound object;
receiving a first signal to expand the compound object across multiple cells of the spreadsheet;
determining that there are no value-storing spreadsheet cells proximate to the spreadsheet cell that would be overwritten by expanding the compound object across the multiple cells of the spreadsheet; and
storing values from the compound object across the multiple spreadsheet cells responsive to determining that there are not value-storing spreadsheet cells that would be overwritten.
19. The method of claim 18 , wherein the card view is launched in response to receiving the selection of the spreadsheet cell.
20. The method of claim 18 , further comprising:
in response to receiving the change, changing a formula definition of the compound object corresponding to the change.
21. The method of claim 18 , further comprising:
receiving a new field and a new value corresponding to the new field; and
storing the new field and the new value in the compound object.
22. The method of claim 21 , wherein receiving the new field and the new value changes a formula definition of the compound object.