IP Library Granted Patent US 9,063,920
Granted Patent B2
US 9,063,920 · App. 13/897,971 · Granted Jun 23, 2015

Collaborative online spreadsheet application

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 9,063,920
App. No.
13/897,971
Granted
Jun 23, 2015
Kind
B2
Abstract

A distributed spreadsheet application executes at a server and a client in a network. The networked spreadsheet application can generally be used without requiring a user to install any specific spreadsheet software prior to using the application. In one implementation, the spreadsheet application may include a client engine that executes within browser programs of a plurality of client computing devices and server logic. The server logic may be configured to distribute the client engines to the plurality of client computing devices of the spreadsheet application when requested through the browser programs of each of the plurality of client computing devices. The server logic synchronizes a single spreadsheet document that is simultaneously open at the plurality of client computing devices.

Claims (95)

1. A method comprising:

receiving, by a server and from a first device, a request to perform an operation associated with a spreadsheet;

identifying, by the server and based on receiving the request, a client engine associated with the operation;

transmitting, by the server and based on identifying the client engine and determining that one or more first portions of the client engine were transmitted to the first device at a first time, one or more second portions of the client engine to the first device at a second time,

the one or more first portions of the client engine being associated with a core function, and

the one or more second portions of the client engine being associated with a function that is transmitted on an as-needed basis;

receiving, by the server and from the client engine, the spreadsheet;

publishing, by the server, the spreadsheet to a web page;

receiving, by the server, a request for the spreadsheet from a second device,

the second device being different than the first device; and

providing, by the server and based on receiving the request, the web page including the spreadsheet to the second device.

2. The method of claim 1 , further comprising:

providing the web page to the first device,

where, when publishing the spreadsheet to the web page, the method includes:

receiving a command from the first device to embed the spreadsheet in the web page; and

embedding, based on the command, the spreadsheet in the web page.

3. The method of claim 1 , further comprising:

providing an online spreadsheet application to the first device,

where, when receiving the spreadsheet from the first device, the method includes:

receiving the spreadsheet from the first device using the online spreadsheet application.

4. The method of claim 1 , where, when receiving the spreadsheet from the first device, the method includes:

providing, to the first device, an identification associated with the spreadsheet; and

receiving, from the first device, a selection of the identification associated with the spreadsheet.

5. The method of claim 4 , where the identification is a link to the spreadsheet.

6. The method of claim 1 , where, when providing the web page including the spreadsheet to the second device, the method includes:

receiving a selection of a link from the second device,

the link being associated with an identifier that identifies the spreadsheet;

obtaining, based on receiving the selection, the spreadsheet; and

providing, to the second device, the obtained spreadsheet.

7. The method of claim 6 , where, when providing the obtained spreadsheet, the method includes:

providing the obtained spreadsheet using the client engine.

8. A device comprising:

a memory to store instructions; and

a processor to execute the instructions to:

receive, from a first device, a request to perform an operation associated with a spreadsheet;

identify, based on receiving the request, a client engine associated with the operation;

transmit, based on identifying the client engine and determining that one or more first portions of the client engine were transmitted to the first device at a first time, one or more second portions of the client engine to the first device at a second time,

the one or more first portions of the client engine being associated with a core function, and

the one or more second portions of the client engine being associated with a function that is transmitted on an as-needed basis;

receive, via the client engine, the spreadsheet;

publish the spreadsheet to a web page;

receive a request for the spreadsheet from a second device,

the second device being different than the first device; and

provide, based on receiving the request, the web page including the spreadsheet to the second device.

9. The device of claim 8 , where the processor is further to:

provide the web page to the first device,

where, when publishing the spreadsheet to the web page, the processor is further to:

receive a command from the first device to embed the spreadsheet in the web page; and

embed, based on the command, the spreadsheet in the web page.

10. The device of claim 8 , where the processor is further to:

provide an online spreadsheet application to the first device,

where, when receiving the spreadsheet from the first device, the processor is further to:

receive the spreadsheet from the first device using the online spreadsheet application.

11. The device of claim 8 , where, when receiving the spreadsheet from the first device, the processor is further to:

provide, to the first device, an identification associated with the spreadsheet; and

receive, from the first device, a selection of the identification associated with the spreadsheet.

12. The device of claim 11 , where the identification is a link to the spreadsheet.

13. The device of claim 8 , where, when providing the web page including the spreadsheet to the second device, the processor is further to:

receive a selection of a link from the second device,

the link being associated with an identifier that identifies the spreadsheet;

obtain, based on receiving the selection, the spreadsheet; and

provide, to the second device, the obtained spreadsheet.

14. The device of claim 13 , where, when providing the obtained spreadsheet, the processor is further to:

provide the obtained spreadsheet using the client engine.

15. A non-transitory computer-readable storage medium storing instructions, the instructions comprising:

one or more instructions which, when executed by at least one processor, cause the at least one processor to:

receive, from a first device, a request to perform an operation associated with a spreadsheet;

identify, based on receiving the request, a client engine associated with the operation;

transmit, based on identifying the client engine and determining that one or more first portions of the client engine were transmitted to the first device at a first time, one or more second portions of the client engine to the first device at a second time,

the one or more first portions of the client engine being associated with a core function, and

the one or more second portions of the client engine being associated with a function that is transmitted on an as-needed basis;

receive, from the client engine, the spreadsheet;

publish the spreadsheet to a web page;

receive a request for the spreadsheet from a second device,

the second device being different than the first device; and

provide, based on receiving the request, the web page including the spreadsheet to the second device.

16. The medium of claim 15 , where the instructions further include:

one or more instructions to provide the web page to the first device,

where the one or more instructions to publish the spreadsheet to the web page include:

one or more instructions to receive a command from the first device to embed the spreadsheet in the web page; and

one or more instructions to embed, based on the command, the spreadsheet in the web page.

17. The medium of claim 15 , where the instructions further include:

one or more instructions to provide an online spreadsheet application to the first device,

where the one or more instructions to receive the spreadsheet from the first device include:

one or more instructions to receive the spreadsheet from the first device using the online spreadsheet application.

18. The medium of claim 15 , where the one or more instructions to receive spreadsheet from the first device include:

one or more instructions to provide, to the first device, an identification associated with the spreadsheet; and

one or more instructions to receive, from the first device, a selection of the identification associated with the spreadsheet.

19. The medium of claim 15 , where the one or more instructions to provide the web page including the spreadsheet to the second device include:

one or more instructions to receive a selection of a link from the second device,

the link being associated with an identifier that identifies the spreadsheet;

one or more instructions to obtain, based on receiving the selection, the spreadsheet; and

one or more instructions to provide, to the second device, the obtained spreadsheet.

20. The medium claim 19 , where the one or more instructions to provide the obtained spreadsheet include:

one or more instructions to provide the obtained spreadsheet using the client engine.

Assignments (1)
CHANGE OF NAME Recorded Dec 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044695/0115 →