IP Library Granted Patent US 10,095,680
Granted Patent B1
US 10,095,680 · App. 15/138,369 · Granted Oct 9, 2018

Systems and methods for reduced memory usage when processing spreadsheet files

Inventor: Azfar Kazmi (San Diego, CA)
Assignee: ServiceNow, Inc.
G06F17/246G06F17/30321G06F17/30923
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 10,095,680
App. No.
15/138,369
Granted
Oct 9, 2018
Kind
B1
Abstract

A method and associated apparatus provide for accessing contents of a worksheet file comprising a worksheet structure file and a shared strings table file. The method comprises processing the shared strings table file by opening the shared strings table file, and identifying a plurality of shared strings within the opened shared strings table file, and, for each shared string, creating an access record in an access table comprising a shared string identifier, a starting offset into a shared string text file, and a length, and retrieving data for a requested cell by obtaining a requested cell shared string identifier from the worksheet structure file, locating a requested cell access record in the access table, retrieving a requested cell string from the shared string text file at a position indicated by the starting offset and for a length indicated by the record length, and outputting the retrieved string.

Claims (60)

1. An apparatus for accessing contents of a worksheet file, comprising:

a processor;

a non-volatile hardware disk device accessible by the processor and storing the worksheet file; and

a memory accessible by the processor and comprising a worksheet processing module;

wherein:

the worksheet file comprises:

a worksheet structure file that includes shared string identifiers for one or more cells of the worksheet file; and

a shared strings table file that contains a plurality of shared strings associated with the one or more cells of the worksheet file; and

the worksheet processing module comprises instructions that:

process the shared strings table file by executing instructions that:

open the shared strings table file;

write each of the plurality of shared strings of the shared strings table file to an indexed shared string text file on the non-volatile hardware disk device; and

for each of the plurality of shared strings, create an access record in an access table in memory, wherein each access record comprises: a shared string identifier, a starting offset into the indexed shared string text file, and a length; and

retrieve data for a requested cell by executing instructions that:

obtain a requested cell shared string identifier for the requested cell from the worksheet structure file;

locate a requested cell access record in the access table based on the requested cell shared string identifier; and

retrieve a requested cell string from the indexed shared string text file at a position indicated by the starting offset of the requested cell access record and for the length indicated by the requested cell access record; and

output the retrieved requested cell string as the data for the requested cell.

2. The apparatus of claim 1 , wherein the worksheet file is an XML-formatted spreadsheet file.

3. The apparatus of claim 2 , wherein the formatted spreadsheet file is an Office Open eXtensible Markup Language (OOXML) formatted file.

4. The apparatus of claim 1 , wherein data from the indexed shared string text file is streamed by making a plurality of sequential requests to retrieve data for a plurality of requested cells after processing the shared strings table file.

5. The apparatus of claim 1 , wherein, to output the retrieved requested cell string, the worksheet processing module comprises instructions that format the retrieved requested cell string into a form that is displayable on a display device.

6. The apparatus of claim 1 , wherein the non-volatile hardware disk device comprises a hard disk drive, a flash drive, or a solid-state disk drive.

7. A method for accessing contents of a worksheet file stored on a non-volatile hardware disk device,

wherein the worksheet file comprises:

a worksheet structure file that includes shared string identifiers for one or more cells of the worksheet file;

a shared strings table file that contains a plurality of shared strings associated with the one or more cells of the worksheet file; and

the method comprising:

processing the shared strings table file by:

opening the shared strings table file;

writing each of the plurality of shared strings of the share string table file to an indexed shared string text file on the non-volatile hardware disk device; and

for each of the plurality of shared strings, creating an access record in an access table in a volatile memory, wherein each access record comprises: a shared string identifier, a starting offset into the indexed shared string text file, and a length; and

retrieving data for a requested cell by:

obtaining a requested cell shared string identifier from the worksheet structure file for the requested cell;

locating a requested cell access record in the access table based on the requested cell shared string identifier;

retrieving a requested cell string from the indexed shared string text file at a position indicated by the starting offset of the requested cell access record and for the length indicated by the requested cell access record; and

outputting the retrieved requested cell string as the data for the requested cell.

8. The method of claim 7 , wherein the workbook file is an XML-formatted spreadsheet file.

9. The method of claim 8 , wherein the workbook file is an Office Open eXtensible Markup Language (OOXML) formatted file.

10. The method of claim 7 , wherein data from the indexed shared string text file is streamed by making a plurality of sequential requests to retrieve data for a plurality of requested cells after processing the shared strings table file.

11. The method of claim 7 , wherein outputting the retrieved requested cell string comprises formatting the retrieved requested cell string into a form that is displayable on a display device.

12. The method of claim 7 , wherein the non-volatile hardware disk device comprises a hard disk drive, a flash drive, or a solid-state disk drive.

13. A non-transitory computer-readable storage medium, comprising executable instructions that, when executed by a processor, facilitate performance of operations for accessing contents of a worksheet file stored on a non-volatile hardware disk device, wherein the worksheet file comprises:

a worksheet structure file that includes shared string identifiers for one or more cells of the worksheet file;

a shared strings table file that contains a plurality of shared strings associated with the one or more cells of the worksheet file; and

the operations comprising:

processing the shared strings table file by:

opening the shared strings table file;

writing each of the plurality of shared strings to an indexed shared string text file on the non-volatile hardware disk device; and

for each of the plurality of shared strings, creating an access record in an access table in a volatile memory, wherein each access record comprises: a shared string identifier, a starting offset into the indexed shared string text file, and a length; and

retrieving data for a requested cell by:

obtaining a requested cell shared string identifier from the worksheet structure file for the requested cell;

locating a requested cell access record in the access table based on the requested cell shared string identifier;

retrieving a requested cell string from the indexed shared string text file at a position indicated by the starting offset of the requested cell access record and for the length indicated by the requested cell access record; and

outputting the retrieved requested cell string as the data for the requested cell.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the worksheet file is an XML-formatted spreadsheet file.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the worksheet file is an Office Open eXtensible Markup Language (OOXML) formatted file.

16. The non-transitory computer-readable storage medium of claim 13 , wherein data from the indexed shared string text file is streamed by making a plurality of sequential requests to retrieve data for a plurality of requested cells after processing the shared strings table file.

17. The non-transitory computer-readable storage medium of claim 13 , wherein each of the plurality of share strings is written sequentially to the indexed shared string text file while processing the shared strings table file.

18. The non-transitory computer-readable storage medium of claim 13 , wherein the non-volatile hardware disk device comprises a hard disk drive, a flash drive, or a solid-state disk drive.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2016
From: KAZMI, AZFAR
To: SERVICENOW, INC.
Reel/Frame 038380/0885 →