US 11,853,692 B1
Performing server-side and client-side operations on spreadsheets
Daniel Gundrum, New York, NY (US); Zachary Erik Lloyd, Brooklyn, NY (US); Joshua Ari Danziger, Metuchen, NJ (US); and Amod Karve, Clifton, NJ (US)
Assigned to Google LLC, Mountain View, CA (US)
Filed by Google LLC, Mountain View, CA (US)
Filed on May 13, 2019, as Appl. No. 16/411,118.
Application 16/411,118 is a continuation of application No. 15/841,139, filed on Dec. 13, 2017, granted, now 10,289,673.
Application 15/841,139 is a continuation of application No. 14/135,854, filed on Dec. 20, 2013, granted, now 9,875,226, issued on Jan. 23, 2018.
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 40/18 (2020.01)
CPC G06F 40/18 (2020.01) 20 Claims
OG exemplary drawing
 
1. A method comprising:
launching, on a client computer, a document editing application associated with a cloud storage system, wherein the document editing application has a client calculation engine for performing spreadsheet calculations on the client computer;
presenting, via the document editing application on the client computer, a web-based collaborative spreadsheet stored on the cloud storage system, wherein the web-based collaborative spreadsheet comprises a plurality of cells, wherein calculations for one or more of the plurality of cells in the web-based collaborative spreadsheet are to be performed by at least one of the client calculation engine on the client computer or a server calculation engine on the cloud storage system;
receiving an input for a first cell of the plurality of cells in the web-based collaborative spreadsheet, wherein the input for the first cell of the plurality of cells in the web-based collaborative spreadsheet causes a calculation that involves at least one or more second cells of the plurality of cells in the web-based collaborative spreadsheet; and
upon receiving the input that causes the calculation involving at least the one or more second cells of the plurality of cells in the web-based collaborative spreadsheet:
determining to perform the calculation, caused by the input for the first cell of the plurality of cells and involving at least the one or more second cells of the plurality of cells, by the client calculation engine on the client computer or the server calculation engine of the cloud storage system,
wherein determining to perform the calculation by the client calculation engine or the server calculation engine is based on a network connection between the client computer and the cloud storage system, and one or more factors defining a speed of the calculation, the one or more factors comprising at least one of computing resources available at the client computer and the cloud storage system, or a type of the calculation;
responsive to determining to perform the calculation by the client calculation engine on the client computer,
performing the calculation, caused by the input for the first cell of the plurality of cells in the web-based collaborative spreadsheet and involving at least the one or more second cells of the plurality of cells in the web-based collaborative spreadsheet, by the client calculation engine on the client computer,
wherein responsive to determining to perform the calculation by the server calculation engine of the cloud storage system, the input is sent to the cloud storage system to perform the calculation by the server calculation engine of the cloud storage system;
obtaining a first result from the calculation performed by the client calculation engine on the client computer or a second result from the calculation performed by the server calculation engine of the cloud storage system; and
presenting, via the document editing application on the client computer, the obtained first result or second result in the web-based collaborative spreadsheet to a user.