IP Library › Granted Patent US 11,630,947
Granted Patent B2
US 11,630,947 · App. 15/340,201 · Granted Apr 18, 2023

Compound data objects

Inventors: John Campbell (Woodinville, WA); Carlos Augusto Otero (Seattle, WA); Benjamin Edward Rampson (Woodinville, WA); Allison Rutherford (Seattle, WA); Steven Kraynak (Sammamish, WA); Christian Canton (Bellevue, WA); Samuel C. Radakovitz (Seattle, WA); Simon Peyton Jones (Cambridge, GB); Andrew Becker (Duvall, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F40/18G06F3/0482G06F3/04817G06F3/04842G06F3/04845G06F3/04847G06F3/04883G06F3/162G06F3/165G06F40/106G06F40/177G06F40/197G06K9/00G06T11/206G06T11/60G06V30/40G06V30/412G06V30/414G10L13/033G10L15/26G11B27/00G06T1/0007G06T2200/24
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,630,947
App. No.
15/340,201
Granted
Apr 18, 2023
Kind
B2
Abstract

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.

Claims (71)

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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2017
From: CAMPBELL, JOHN; OTERO, CARLOS AUGUSTO; RAMPSON, BENJAMIN EDWARD; RUTHERFORD, ALLISON; KRAYNAK, STEVEN; CANTON, CHRISTIAN; RADAKOVITZ, SAMUEL C.; PEYTON JONES, SIMON; BECKER, ANDREW
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 043160/0676 →
Continuity (5)
Provisional Application 62357284 · Jun 30, 2016
Provisional Application 62357292 · Jun 30, 2016
Provisional Application 62249869 · Nov 2, 2015
Provisional Application 62249884 · Nov 2, 2015
Related Publication 20170124050A1 · May 4, 2017
Cited By (2)
US 12,596,534 US 12,717,558