IP Library Granted Patent US 9,864,812
Granted Patent B2
US 9,864,812 · App. 14/681,820 · Granted Jan 9, 2018

Converting spreadsheet applications to web-based applications

Inventors: Jonathan P. Rochelle (Chester, NJ); Micah G. Lemonik (New York, NY); Farzad Khosrowshahi (Pleasantville, NY); John Stephen Danaher (Brooklyn, NY)
Assignee: GOOGLE LLC
G06F17/30893G06F17/211G06F17/227G06F17/2247G06F17/246
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,864,812
App. No.
14/681,820
Filed
Apr 8, 2015
Granted
Jan 9, 2018
Kind
B2
Art Unit
2176
USPC
715/523
Abstract

A networked version of a spreadsheet application can be automatically created from an existing “conventional” spreadsheet. In one implementation, a server may obtain a data file, where the data file represents a networked version of a spreadsheet application that was converted from the “conventional” application and the data file defines characteristics of the networked version of the spreadsheet application including logic and interactivity attributes of cells in the networked version of the spreadsheet application. A remote request may be received from a client to access the networked version of the spreadsheet application. In response, the server may transmit a document to the client that represents a portion of the networked version of the spreadsheet application that the interactivity attributes specify as being displayable to the client.

Claims (55)

1. A method comprising:

receiving a spreadsheet application designed to execute using a spreadsheet program; converting the spreadsheet application into a data file, wherein the spreadsheet application includes one or more cells and wherein at least some of the cells implement logical functions,

the data file defining characteristics of a networked version of the spreadsheet application that was converted from the spreadsheet application, wherein the networked version of the spreadsheet application is converted from the spreadsheet application by applying permissions that are set in the spreadsheet application, the permissions not being applied in the spreadsheet application, wherein the characteristics defined by the data file are defined based on the permissions,

the characteristics including information defining cells of the networked version of the spreadsheet application that are to be displayable to a user of the networked version of the spreadsheet application;

transmitting the data file to a server to make the data file available to network users as the networked version of the spreadsheet application;

executing, by the server, a computer program that includes an engine component;

converting, by the engine component, the data file into a spreadsheet application component and a data component, wherein the spreadsheet application component and the data component include information defining logical functions implemented by at least some of cells included in the spreadsheet application;

constructing, by the engine component, at least one abstract syntax tree using the spreadsheet application component and the data component, wherein the at least one abstract syntax tree includes, based on the information included in the spreadsheet application component and the data component, at least one of a constant, a function, or a pointer; and

generating, by the computer program, an HTML document using the at least one abstract syntax tree, wherein the HTML document includes information that represents the defined characteristics of the networked version of the spreadsheet application.

2. The method of claim 1 , wherein the networked version of the spreadsheet application is a web-based version of the spreadsheet application.

3. The method of claim 1 , wherein the data file is an extensible markup language (XML) data file.

4. The method of claim 1 , wherein the data file further includes information defining interactivity attributes of each of the displayable cells.

5. The method of claim 4 , wherein the information regarding the interactivity attributes of the displayable cells is abbreviated.

6. The method of claim 1 , wherein the data file further includes information defining logical functions implemented by cells in the spreadsheet application.

7. The method of claim 6 , wherein the logical functions include information defining formulas stored in the cells.

8. The method of claim 6 , wherein the logical functions include information defining data filtering functions.

9. The method of claim 6 , wherein the logical functions include information defining a data interface between the spreadsheet application and other applications.

10. The method of claim 6 , wherein the logical functions are abbreviated in the data file.

11. The method of claim 1 , wherein the networked version of the spreadsheet application comprises the same logic as the spreadsheet application.

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

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

receive a spreadsheet application designed to execute using a spreadsheet program, wherein the spreadsheet application includes one or more cells and wherein at least some of the cells implement logical functions;

convert the spreadsheet application into a data file, the data file defining characteristics of a networked version of the spreadsheet application that was converted from the spreadsheet application, wherein the networked version of the spreadsheet application is converted from the spreadsheet application by applying permissions that are set in the spreadsheet application, the permissions not being applied in the spreadsheet application, wherein the characteristics defined by the data file are defined based on the permissions,

the characteristics including logic and interactive attributes of cells of the networked version of the spreadsheet application;

transmit the data file to a server configured to make the data file available to network users as the networked version of the spreadsheet application;

convert the data file into a spreadsheet application component and a data component, wherein the spreadsheet application component and the data component include information defining logical functions implemented by at least some of cells included in the spreadsheet application;

construct at least one abstract syntax tree using the spreadsheet application component and the data component, wherein the at least one abstract syntax tree includes, based on the information included in the spreadsheet application component and the data component, at least one of a constant, a function, or a pointer; and

generate an HTML document using the at least one abstract syntax tree, wherein the HTML document includes information that represents the defined characteristics of the networked version of the spreadsheet application.

13. The computer-readable medium of claim 12 , wherein the data file is an extensible markup language (XML) data file.

14. The computer-readable medium of claim 12 , wherein the data file further includes information defining interactivity attributes of each of the displayable cells,

the information regarding the interactivity attributes of the displayable cells being abbreviated.

15. The computer-readable medium of claim 12 , wherein the data file further includes information defining logical functions implemented by cells in the spreadsheet application,

the logical functions including at least one of:

information defining formulas stored in the cells, information defining data filtering functions, or

information defining a data interface between the spreadsheet application and other applications.

16. A device comprising:

a memory to store instructions; and

a processor to execute the instructions to:

receive a spreadsheet application designed to execute using a spreadsheet program, wherein the spreadsheet application includes one or more cells and wherein at least some of the cells implement logical functions;

convert the spreadsheet application into a data file,

the data file defining characteristics of a networked version of the spreadsheet application that was converted from the spreadsheet application, wherein the networked version of the spreadsheet application is converted from the spreadsheet application by applying permissions that are set in the spreadsheet application, the permissions not being applied in the spreadsheet application, wherein the characteristics defined by the data file are defined based on the permissions,

the characteristics including information defining cells of the networked version of the spreadsheet application that are to be displayable to a user of the networked version of the spreadsheet application;

transmit the data file to a server to make the data file available to network users as the networked version of the spreadsheet application;

convert the data file into a spreadsheet application component and a data component, wherein the spreadsheet application component and the data component include information defining logical functions implemented by at least some of cells included in the spreadsheet application;

construct at least one abstract syntax tree using the spreadsheet application component and the data component, wherein the at least one abstract syntax tree includes, based on the information included in the spreadsheet application component and the data component, at least one of a constant, a function, or a pointer; and

generate an HTML document using the at least one abstract syntax tree, wherein the HTML document includes information that represents the defined characteristics of the networked version of the spreadsheet application.

17. The device of claim 16 , wherein

the networked version of the spreadsheet application is a web-based version of the spreadsheet application, and

the data file is an extensible markup language (XML) data file.

18. The device of claim 16 , wherein the data file further includes information defining interactivity attributes of each of the displayable cells,

the information regarding the interactivity attributes of the displayable cells being abbreviated.

19. The device of claim 16 , wherein the data file further includes information defining logical functions implemented by cells in the spreadsheet application,

the logical functions including at least one of: information defining formulas stored in the cells, information defining data filtering functions, or

information defining a data interface between the spreadsheet application and other applications.

20. The device of claim 16 , wherein the networked version of the spreadsheet application comprises the same logic as the spreadsheet application.

Assignments (2)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2015
From: ROCHELLE, JONATHAN P.; LEMONIK, MICAH G.; KHOSROWSHAHI, FARZAD; DANAHER, JOHN
To: GOOGLE INC.
Reel/Frame 035371/0150 →
Continuity (3)
Division 11281898 · Nov 18, 2005
Provisional Application 60629577 · Nov 19, 2004
Related Publication 20150212980A1 · Jul 30, 2015