IP Library › Granted Patent US 12,333,241
Granted Patent B2
US 12,333,241 · App. 18/450,887 · Granted Jun 17, 2025

Integrating non-native dependencies in spreadsheet applications

Inventors: Joseph John McDaid (Seattle, WA); Su-Piao Wu (Sammamish, WA); Alexander Yuryevich Novokhodko (Redmond, WA); Guido Van Rossum (Belmont, CA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F40/18
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 12,333,241
App. No.
18/450,887
Granted
Jun 17, 2025
Kind
B2
Abstract

Technology is disclosed herein for integrating native and non-native dependencies in a spreadsheet hosted by a spreadsheet application. In an implementation, a computing apparatus identifies a formula in a first cell of a spreadsheet which includes a non-native argument. The computing apparatus identifies a dependency between the first cell and a second cell created by the non-native argument. The computing apparatus limits recalculations of the spreadsheet based at least on the dependency. In an implementation, absent any other dependencies between the first cell and other cells, the first cell is excluded from recalculations triggered by changes to the other cells and included in recalculations triggered by the second cell. In an implementation, a direct or indirect dependency is created by, respectively, an explicit or implicit reference to the second cell in the non-native argument. In some implementations, the formula is native to the spreadsheet application hosting the spreadsheet.

Claims (47)

1. A computing apparatus comprising:

one or more computer readable storage media;

one or more processors operatively coupled with the one or more computer readable storage media; and

program instructions stored on the one or more computer readable storage media that, when executed by the one or more processors, direct the computing apparatus to at least:

identify a formula in a first cell of a spreadsheet, at least a portion of which includes a non-native argument;

identify an indirect dependency between the first cell and a second cell in the spreadsheet created by an implicit reference in the non-native argument to the second cell, wherein to identify the indirect dependency, the program instructions direct the computing apparatus to identify the second cell based on a translated dependency for the implicit reference in a dependency datastore associated with the spreadsheet; and

limit recalculations of the spreadsheet based at least on the indirect dependency.

2. The computing apparatus of claim 1 , wherein, to limit the recalculations of the spreadsheet based at least on the indirect dependency, the program instructions direct the computing apparatus to:

absent any other dependencies between the first cell and any other cells of the spreadsheet, exclude the first cell from recalculations triggered by changes to the other cells of the spreadsheet; and

include the first cell in recalculations triggered by changes to the second cell.

3. The computing apparatus of claim 2 , wherein the program instructions further direct the computing apparatus to:

parse the non-native argument for the implicit reference to the second cell;

translate the implicit reference to a native format, resulting in the translated dependency; and

register the translated dependency in the dependency datastore associated with the spreadsheet.

4. The computing apparatus of claim 3 , wherein the formula in the first cell comprises a name of a function native to a spreadsheet application hosting the spreadsheet and wherein the function comprises the non-native argument.

5. The computing apparatus of claim 4 , wherein when a recalculation of the recalculations is triggered that includes the first cell, the program instructions direct the computing apparatus to send a request for an external resource to evaluate the non-native argument of the first cell.

6. The computing apparatus of claim 5 , wherein to send the request for the external resource to evaluate the non-native argument of the first cell, the program instructions direct the computing apparatus to evaluate the second cell prior to sending the request for the external resource to evaluate the non-native argument of the first cell.

7. The computing apparatus of claim 6 , wherein to evaluate the second cell, the program instructions direct the computing apparatus to send a first request to the external resource to evaluate a non-native expression in the second cell.

8. The computing apparatus of claim 7 , wherein the formula in the first cell of the spreadsheet comprises a formula native to the spreadsheet application hosting the spreadsheet.

9. One or more computer-readable storage media having program instructions stored thereon that, when executed by one or more processors of a computing device, direct the computing device to at least:

identify a formula in a first cell of a spreadsheet, at least a portion of which includes a non-native argument;

identify an indirect dependency between the first cell and a second cell in the spreadsheet created by an implicit reference in the non-native argument to the second cell, wherein to identify the indirect dependency, the program instructions direct the computing device to identify the second cell based on a translated dependency for the implicit reference in a dependency datastore associated with the spreadsheet; and

limit recalculations of the spreadsheet based at least on the indirect dependency.

10. The one or more computer-readable storage media of claim 9 , wherein, to limit the recalculations of the spreadsheet based at least on the indirect dependency, the program instructions direct the computing device to:

absent any other dependencies between the first cell and any other cells of the spreadsheet, exclude the first cell from recalculations triggered by changes to the other cells of the spreadsheet; and

include the first cell in recalculations triggered by changes to the second cell.

11. The one or more computer-readable storage media of claim 10 , wherein the program instructions further direct the computing device to:

parse the non-native argument for the implicit reference to the second cell;

translate the implicit reference to a native format, resulting in the translated dependency; and

register the translated dependency in the dependency datastore associated with the spreadsheet.

12. The one or more computer-readable storage media of claim 11 , wherein the formula in the first cell comprises a name of a function native to a spreadsheet application hosting the spreadsheet and wherein the function comprises the non-native argument.

13. The one or more computer-readable storage media of claim 12 , wherein when a recalculation of the recalculations is triggered that includes the first cell, the program instructions direct the computing device to send a request for an external resource to evaluate the non-native argument of the first cell.

14. The one or more computer-readable storage media of claim 13 , wherein to send the request for the external resource to evaluate the non-native argument of the first cell, the program instructions direct the computing device to evaluate the second cell prior to sending the request for the external resource to evaluate the non-native argument of the first cell.

15. The one or more computer-readable storage media of claim 14 , wherein to evaluate the second cell, the program instructions direct the computing device to send a first request to the external resource to evaluate a non-native expression in the second cell.

16. The one or more computer-readable storage media of claim 15 , wherein the formula in the first cell of the spreadsheet comprises a formula native to the spreadsheet application hosting the spreadsheet.

17. A method of operating a spreadsheet application, the method comprising:

identifying a formula in a first cell of a spreadsheet, at least a portion of which includes a non-native argument;

identifying an indirect dependency between the first cell and a second cell in the spreadsheet created by an implicit reference in the non-native argument to the second cell, wherein identifying the indirect dependency, comprises identifying the second cell based on a translated dependency for the implicit reference in a dependency datastore associated with the spreadsheet; and

limiting recalculations of the spreadsheet based at least on the indirect dependency.

18. The method of claim 17 , wherein limiting the recalculations of the spreadsheet based at least on the indirect dependency comprises:

absent any other dependencies between the first cell and any other cells of the spreadsheet, excluding the first cell from recalculations triggered by changes to the other cells of the spreadsheet; and

including the first cell in recalculations triggered by changes to the second cell.

19. The method of claim 18 , further comprising:

parsing the non-native argument for the implicit reference to the second cell;

translating the implicit reference to a native format, resulting in the translated dependency; and

registering the translated dependency in the dependency datastore associated with the spreadsheet.

20. The method of claim 19 , wherein the formula in the first cell comprises a name of a function native to a spreadsheet application hosting the spreadsheet and wherein the function comprises the non-native argument.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2023
From: MCDAID, JOSEPH JOHN; WU, SU-PIAO; NOVOKHODKO, ALEXANDER YURYEVICH; VAN ROSSUM, GUIDO
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 064634/0570 →
Continuity (1)
Related Publication 20250061271A1 · Feb 20, 2025
References Cited (63)
US 7099890B2 · Cahill · 2006 [cited by examiner]
US 7475082B1 · De et al. · 2009 [cited by applicant]
US 7523395B1 · Namait · 2009 [cited by examiner]
US 9875226B1 · Gundrum · 2018 [cited by examiner]
US 11170165B1 · Smith Devine · 2021 [cited by examiner]
US 11537785B1 · Goyal et al. · 2022 [cited by applicant]
US 11625527B1 · Von Tish · 2023 [cited by examiner]
US 11848976B2 · Logan · 2023 [cited by examiner]
US 11966690B2 · Patel · 2024 [cited by applicant]
US 11966796B2 · Patel · 2024 [cited by applicant]
US 12026560B2 · Patel · 2024 [cited by applicant]
US 12045239B1 · Takahashi · 2024 [cited by examiner]
US 12229502B2 · Smith · 2025 [cited by examiner]
US 20020091871A1 · Cahill et al. · 2002 [cited by applicant]
US 20040210822A1 · Kotler · 2004 [cited by examiner]
US 20050015714A1 · Cahill et al. · 2005 [cited by applicant]
US 20050044497A1 · Kotler · 2005 [cited by examiner]
US 20060161844A1 · Simkhay · 2006 [cited by examiner]
US 20060224946A1 · Barrett et al. · 2006 [cited by applicant]
US 20070136652A1 · Ellis · 2007 [cited by applicant]
US 20130055058A1 · Leong · 2013 [cited by examiner]
US 20130086064A1 · Salch et al. · 2013 [cited by applicant]
US 20140136936A1 · Patel et al. · 2014 [cited by applicant]
US 20150309980A1 · Glass · 2015 [cited by examiner]
US 20190095226A1 · Saunders et al. · 2019 [cited by applicant]
US 20200004811A1 · Gross · 2020 [cited by examiner]
US 20200278850A1 · Couillard et al. · 2020 [cited by applicant]
US 20200285694A1 · Nield · 2020 [cited by examiner]
US 20200302013A1 · Stegmaier · 2020 [cited by examiner]
US 20210081405A1 · Zarras · 2021 [cited by applicant]
US 20210357241A1 · Srinivasan · 2021 [cited by examiner]
US 20220121654A1 · Zarras · 2022 [cited by examiner]
US 20220188505A1 · Keslin · 2022 [cited by examiner]
US 20220229974A1 · Murphy et al. · 2022 [cited by applicant]
US 20230088670A1 · Isner · 2023 [cited by applicant]
US 20240069988A1 · Patel · 2024 [cited by examiner]
US 20240069989A1 · Patel · 2024 [cited by applicant]
US 20240070383A1 · Patel · 2024 [cited by examiner]
US 20240211684A1 · Patel · 2024 [cited by examiner]
AU 2005202721B2 · 2010 [cited by examiner]
CN 114936027A · 2022 [cited by examiner]
TW 202103074A · 2021 [cited by examiner]
WO 2005043406A2 · 2005 [cited by applicant]
WO 2020005603A1 · 2020 [cited by applicant]
Notice of Allowance mailed on Feb. 23, 2024, in U.S. Appl. No. 17/945,417, 2 pages. [cited by applicant]
“Non Final Office Action Issued in U.S. Appl. No. 17/945,472”, Mailed Date: Jul. 31, 2023, 37 Pages. [cited by applicant]
“Non Final Office Action Issued in U.S. Appl. No. 17/898,321”, Mailed Date: Jul. 7, 2023, 34 Pages. [cited by applicant]
“Non Final Office Action Issued in U.S. Appl. No. 17/945,417”, Mailed Date: Jul. 20, 2023, 40 Pages. [cited by applicant]
Roberts Tony, “Python Jupyter Notebooks in Excel-Towards Data Science”, Retrieved from: https://towardsdatascience.com/python-jupyter-notebooks-in-excel-5ab34fc6439#:-:text=First%20off/o2C%2oto%20run%JOPython%20code%20i… [cited by applicant]
Notice of Allowance mailed on Mar. 1, 2024, in U.S. Appl. No. 17/945,417, 02 pages. [cited by applicant]
Notice of Allowance mailed on Mar. 13, 2024, in U.S. Appl. No. 17/898,321, 2 pages. [cited by applicant]
Ragavan, et al.; “GridBook: Natural Language Formulas for the Spreadsheet Grid”; IUI '22; Mar. 22-25, 2022; pp. 345-368; Helsinki, Finland. [cited by applicant]
Notice of Allowance mailed on Dec. 11, 2023, in U.S. Appl. No. 17/898,321, 6 pages. [cited by applicant]
Notice of Allowance mailed on Dec. 12, 2023, in U.S. Appl. No. 17/945,472, 14 pages. [cited by applicant]
Notice of Allowance mailed on Dec. 13, 2023, in U.S. Appl. No. 17/945,417, 7 pages. [cited by applicant]
Corrected Notice of Allowability mailed on Jan. 26, 2024, in U.S. Appl. No. 17/898,321, 2 pages. [cited by applicant]
Notice of Allowance mailed on Feb. 20, 2024, in U.S. Appl. No. 17/945,472, 05 pages. [cited by applicant]
“International Search Report and Written Opinion issued in PCT Application No. PCT/US2023/027694”, Mailed Date: Sep. 18, 2023, 11 Pages. [cited by applicant]
Notice of Allowance mailed on Mar. 6, 2024, in U.S. Appl. No. 17/898,321, 02 pages. [cited by applicant]
Notice of Allowance mailed on Mar. 20, 2024, in U.S. Appl. No. 17/945,472, 2 pages. [cited by applicant]
“Evaluating text and calling Python functions from Excel with xlwings”, Retrieved from https://newtonexcelbach.com/2017/08/23/evaluating-text-and-calling-python-functions-from-excel-with-xlwings/, Retrieved on Oct. 29, … [cited by applicant]
Non-Final Office Action mailed on Oct. 28, 2024, in U.S. Appl. No. 18/600,118, 51 pages. [cited by applicant]
Zumstein Felix, et al., “A New Way to Automate Google Sheets with Python” May 20, 2022, 7 pages. [cited by applicant]