MICROSOFT ATTEMPTS TO INVALIDATE EXCEL PATENT: Back in June of this year, Microsoft was hit with a $8.96 million judgment for infringing on a 1994 patent (US 5,293,615) held by a Guatemalan inventor, Carlos Amado. Amado's patent covered technology that linked Microsoft's widely used Excel program with its Accel database. This was one of those cases where Microsoft - while losing the judgement - could still claim some sense of victory, as Amado originally was asking for $500 million in damages.
Not taking the judgment lying down, Microsoft filed an appeal with the Federal Circuit (docket 05-1531) in August, and had their reexamination request granted last month at the USPTO for the '615 patent. In the request, Microsoft is seeking only to invalidate claim 21, which is the broadest of the independent claims:
21. An apparatus for carrying out spreadsheet calculations using data imported from a database via a point and shoot user interface to select a database record for loading into a specified range of the spreadsheet, comprising:
a computer having a display and a memory having one or more storage locations;
a spreadsheet program, having a spreadsheet data format, in execution on said computer for displaying a plurality of cells which define a spreadsheet, each of said cells having a unique identification code indicative of the location of said cell on said display and each said cell being associated with one or more of said storage locations in said memory, and wherein any one or more of said cells can be selected by a user as part of a selected range using a cursor, and wherein said spreadsheet program includes program code to control said computer to receive data from said user and to store said data in the storage locations associated with user designated cells wherein said data can be text, numbers, or formulas including mathematical or logical operators relating contents of the storage locations associated with one or more of said cells to the contents of the storage locations of one or more other ones of said cells mathematically or logically, and wherein said computer is controlled by said spreadsheet program to display on said display the contents of said storage locations associated with each said cell, except where the contents of the storage locations associated with a particular one of said cells are a formula, in which case the computer is caused to display the results of the mathematical or logical operations defined by said formula at the corresponding location for said cell on said display, and wherein said spreadsheet program includes a recalculation routine for controlling said computer so as to perform a recalculation upon receipt of a recalculation command where all formulas associated with all cells of said spreadsheet are recalculated using whatever the current values are for each said cell stored in the associated storage locations in said memory at the time the recalculation command is received and any new results stemming from recalculation of said formulas where new contents since a previous recalculation exist in the storage locations associated with said cells mathematically or logically related by said formulas are displayed on said display at the location of the corresponding cells;
a database file stored in said memory and containing one or more records, each said record is comprised of one or more fields, each said field contains data;
first means in execution on said computer for controlling said computer so as to display on said display one or more of said records of said database file within a window while said spreadsheet program is in execution;
second means in execution on said computer and coupled to said recalculation routine and to said database file and to said first means, for controlling said computer to display a cursor in said window in which said records from said database file are displayed, said cursor being movable within said window under control of said user and controlling said computer to recognize a select command entered by said user such that any said data record pointed to by said cursor at the time said select command is given by said user is selected, and for controlling said computer so as to automatically load said selected database record into said selected range of said spreadsheet when said recalculation command is given, said loading including automatically reformatting data of said selected database record to said spreadsheet data format prior to the recalculation of said spreadsheet, such that when said recalculation is performed by said spreadsheet program, the contents of the storage locations associated with the cells in said selected range will be set equal to the contents of the selected database record before the recalculation starts thereby forcing the storage locations associated with the cells of said selected range to be loaded with the contents of said fields of said selected database record before the recalculation starts.
I'm not kidding - that is the broadest claim in the patent. Anyways, Microsoft is relying primarily on documents and disclosures pertaining to SuperCalc, which was a spreadsheet program available in the 1980's that permitted the linking of a spreadsheet and a SuperCalc window displaying data from a database file. Also, Microsoft is citing the Q+E program, which also was available in the 1980's, that allowed linkage of an Excel spreadsheet to a Q+E window displaying data from a database file. Neither of these documents were considered by the Examiner during the original prosecution of the '615 patent.
At this point, it is likely that the USPTO will issue a non-final rejection in the coming months. Once the rejection is mailed, the stage will be set for another reexamination showdown for Microsoft . . .