IP Library Granted Patent US 11,461,544
Granted Patent B2
US 11,461,544 · App. 16/848,753 · Granted Oct 4, 2022

Spreadsheet with reuse functionality

Inventors: Advait Sarkar (Cambridge, GB); Andrew Donald Gordon (Cambridge, GB); John Herbert Martin Williams (Cambridge, GB)
Assignee: Microsoft Technology Licensing, LLC
G06F40/18G06F3/0482G06F3/04817G06F40/174
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,461,544
App. No.
16/848,753
Granted
Oct 4, 2022
Kind
B2
Abstract

A spreadsheet application displays a spreadsheet of cells in tabular form. User input is received specifying an input range of cells of the spreadsheet, a destination range of cells of the spreadsheet and a local modification. A memory stores a representation of the spreadsheet indicating formatting, values and formulas. An update of the representation is computed by applying the local modifications to the representation. Values of cells of the input range of the spreadsheet are calculated by using the updated representation and the calculated values are displayed at the destination range.

Claims (63)

1. A computer-implemented method comprising:

executing a spreadsheet application so as to display a spreadsheet of cells in tabular form;

receiving user input specifying

an input range of cells that is a first area of the spreadsheet,

a destination range of cells that is a second area of the spreadsheet in which a copy of the input range of cells is to be placed, and

a local modification,

wherein the local modification includes an edit to at least one cell of the destination range of cells;

creating, at a memory, a representation of the spreadsheet,

wherein the representation of the spreadsheet indicates formatting, values and formulas of the spreadsheet;

computing an updated representation at least by applying the local modification to the input range of cells of the representation;

calculating values of cells of the input range of cells of the spreadsheet by using the updated representation;

displaying the calculated values of cells at the destination range of cells;

after displaying the calculated values of cells at the destination range of cells, receiving an edit made within the input range of cells; and

propagating the edit made within the input range of cells to the calculated values of cells displayed at the destination range of cells including overwriting, by the local modification at the destination range of cells, the edit upon the edit being in a location that corresponds to the local modification.

2. The method of claim 1 wherein the representation of the spreadsheet includes an association between the input range of cells, the destination range of cells and the local modification.

3. The method of claim 1 wherein propagating the edit made within the input range of cells comprises and repeating said computing an updated representation, said calculating values of cells of the input range of cells, and said displaying the calculated values of cells at the destination range of cells, such that the edit made within the input range of cells is propagated to the destination range of cells.

4. The method of claim 3 wherein the edit made within the input range of cells is an edit to formatting in the input range of cells.

5. The method of claim 1 wherein the user input is a formula.

6. The method of claim 1 wherein the user input is a plurality of selections at a graphical user interface.

7. The method of claim 1 wherein the destination range of cells comprises a single cell and the spreadsheet application comprises array spilling functionality.

8. The method of claim 1 further comprising receiving a plurality of different destination ranges of cells and, if an edit is received at a cell of the input range of cells, computing a decision as to whether the edit is to be applied to each of the plurality of different destination ranges of cells.

9. The method of claim 1 wherein receiving the user input comprises receiving a selection of a gridlet icon from a menu of available gridlets and receiving a selection of a cell onto which the gridlet icon is dragged.

10. The method of claim 1 wherein the spreadsheet application is configured to generate at least one representation of the spreadsheet wherein all cells of the at least one representation are occupied by the destination range of cells.

11. The method of claim 1 wherein the spreadsheet application comprises at least one spreadsheet being a gridlet-only sheet comprising only one or more gridlet instances.

12. The method of claim 1 wherein displaying the calculated values of the cells at the destination range of cells comprises, if a conflict exists where the destination range of cells already comprises at least one value, then generating an error message.

13. An apparatus comprising:

a processor executing a spreadsheet application so as to display a spreadsheet of cells in tabular form;

a memory;

a user interface which receives user input specifying

an input range of cells that is a first area of the spreadsheet,

a destination range of cells that is a second area of the spreadsheet in which a copy of the input range of cells is to be placed, and

a local modification,

wherein the local modification includes an edit to at least one cell of the destination range of cells;

creating, at the memory, a representation of the spreadsheet,

wherein the representation of the spreadsheet indicates formatting, values and formulas of the spreadsheet; and

the processor configured to:

compute an updated representation at least by applying the local modification to the input range of cells of the representation;

calculate values of cells of the input range of cells of the spreadsheet by using the updated representation;

display the calculated values of cells at the destination range of cells;

after the display of the calculated values of cells at the destination range of cells, receive an edit made within the input range of cells; and

propagate the edit made within the input range of cells to the calculated values of cells displayed at the destination range of cells including overwriting, by the local modification at the destination range of cells, the edit upon the edit being in a location that corresponds to the local modification.

14. A computer storage medium storing instructions which when executed on a computer implement the following operations:

executing a spreadsheet application so as to display a spreadsheet of cells in tabular form;

receiving user input specifying

an input range of cells that is a first area of the spreadsheet,

a destination range of cells that is a second area of the spreadsheet in which a copy of the input range of cells is to be placed, and

a local modification,

wherein the local modification includes an edit to at least one cell of the destination range of cells;

creating, at a memory, a representation of the spreadsheet,

wherein the representation of the spreadsheet indicates formatting, values and formulas of the spreadsheet;

computing an updated representation at least by applying the local modification to the input range of cells of the representation;

calculating values of cells of the input range of cells of the spreadsheet by using the updated representation;

displaying the calculated values of cells at the destination range of cells using array spilling;

after displaying the calculated values of cells at the destination range of cells, receiving an edit made within the input range of cells; and

propagating the edit made within the input range of cells to the calculated values of cells displayed at the destination range of cells including overwriting, by the local modification at the destination range of cells, the edit upon the edit being in a location that corresponds to the local modification.

15. The computer storage medium of claim 14 wherein the representation of the spreadsheet includes an association between the input range of cells, the destination range of cells, and the local modification.

16. The computer storage medium of claim 14 wherein propagating the edit made within the input range of cells comprises repeating the operations of computing an updated representation, calculating values of cells of the input range of cells, and displaying the calculated values of cells at the destination range of cells, such that the edit made within the input range of cells is propagated to the destination range of cells.

17. The method of claim 1 , further comprising receiving user input selecting at least one cell of the destination range of cells as editable.

18. The method of claim 1 , further comprising receiving user input selecting at least one cell of the destination range of cells as not editable.

19. The method of claim 1 , further comprising:

receiving an edit at a cell of the input range of cells; and

computing a decision as to whether the edit is to be globally applied to all of a plurality of different destination ranges of cells, wherein computing the decision comprises at least one of asking a user or automatically globally applying the edit to all of the plurality of different destination ranges of cells according to at least one of a user profile, configuration settings, or historical data.

20. The apparatus of claim 13 , wherein the representation of the spreadsheet includes an association between the input range of cells, the destination range of cells, and the local modification.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2020
From: SARKAR, ADVAIT; GORDON, ANDREW DONALD; WILLIAMS, JOHN HERBERT MARTIN
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 052396/0477 →
Priority Claims (1)
GB 2002163 · Feb 17, 2020 · national
Continuity (1)
Related Publication 20210256205A1 · Aug 19, 2021
Cited By (1)
US 12,437,148