Abstract:
Systems and methods are disclosed herein for editing a collaborative spreadsheets hosted on a server. Multiple users may edit the spreadsheet, resulting in situations of intersecting or conflicting edits. A change provided by one user may intersect the cells affected by a change provided by another user. In these cases, one user's change is transformed against the other user's change. In this manner, the conflict is resolved and both changes can be applied to the spreadsheet. Each user device may perform these transforms, and the server may also perform these transforms. This can result in transmission of a reduced volume of data over a network between the devices and the server, in comparison with other methods.
Abstract:
Mutations representing spreadsheet edit operations are received at a server from client computers of collaborators and also at a collaborator's client computer from other collaborators and the server. Different mutations may conflict, i.e., provide contradictory instructions on how a spreadsheet is to be edited. Techniques for representing sort operations, cut-and-paste operations, and operations to change cell properties as mutations, and operational transform techniques that can be used to resolve conflicts between such mutations, are disclosed herein. Further disclosed herein are techniques for identifying and processing computationally intensive types of mutations in a calculation thread which operates asynchronously with respect to a UI thread at a collaborator's client computer. The processing may include performing an operational transform on results of the calculation thread based on results obtained in the UI thread.
Abstract:
Mutations representing spreadsheet edit operations are received at a server from client computers of collaborators and also at a collaborator's client computer from other collaborators and the server. Different mutations may conflict, i.e., provide contradictory instructions on how a spreadsheet is to be edited. Techniques for representing sort operations, cut-and-paste operations, and operations to change cell properties as mutations, and operational transform techniques that can be used to resolve conflicts between such mutations, are disclosed herein. Further disclosed herein are techniques for identifying and processing computationally intensive types of mutations in a calculation thread which operates asynchronously with respect to a UI thread at a collaborator's client computer. The processing may include performing an operational transform on results of the calculation thread based on results obtained in the UI thread.
Abstract:
Systems and methods for viewing filters on a collaborative spreadsheet stored on a cloud computing service include accessing, from each of a plurality of client computers, a first sheet of a spreadsheet stored on a cloud computing service, where a plurality of filters is associated with the first sheet. A first client computer in the plurality of client computers receives a command by a first user to apply a first filter in the plurality of filters to the first sheet, and applies the first filter to the first sheet on the first client computer. The filtered first sheet is displayed to the first user, and a second client computer in the plurality of client computers concurrently displays an unfiltered first sheet.
Abstract:
Systems and methods are disclosed herein for editing a collaborative spreadsheets hosted on a server. Multiple users may edit the spreadsheet, resulting in situations of intersecting or conflicting edits. A change provided by one user may intersect the cells affected by a change provided by another user. In these cases, one user's change is transformed against the other user's change. In this manner, the conflict is resolved and both changes can be applied to the spreadsheet. Each user device may perform these transforms, and the server may also perform these transforms. This can result in transmission of a reduced volume of data over a network between the devices and the server, in comparison with other methods.
Abstract:
Systems and methods for viewing filters on a collaborative spreadsheet stored on a cloud computing service include accessing, from each of a plurality of client computers, a first sheet of a spreadsheet stored on a cloud computing service, where a plurality of filters is associated with the first sheet. A first client computer in the plurality of client computers receives a command by a first user to apply a first filter in the plurality of filters to the first sheet, and applies the first filter to the first sheet on the first client computer. The filtered first sheet is displayed to the first user, and a second client computer in the plurality of client computers concurrently displays an unfiltered first sheet.
Abstract:
Mutations representing spreadsheet edit operations are received at a server from client computers of collaborators and also at a collaborator's client computer from other collaborators and the server. Different mutations may conflict, i.e., provide contradictory instructions on how a spreadsheet is to be edited. Techniques for representing sort operations, cut-and-paste operations, and operations to change cell properties as mutations, and operational transform techniques that can be used to resolve conflicts between such mutations, are disclosed herein. Further disclosed herein are techniques for identifying and processing computationally intensive types of mutations in a calculation thread which operates asynchronously with respect to a UI thread at a collaborator's client computer. The processing may include performing an operational transform on results of the calculation thread based on results obtained in the UI thread.
Abstract:
Systems and methods are provided for determining mutation regions for a spreadsheet. Mutation regions are iteratively assigned to a first region of cells in the spreadsheet. To assign a mutation region, a column is selected from the first region. A first row in the first region of cells is associated with the selected column that is not assigned to a mutation region and that is not included in a second region of the spreadsheet is determined. A largest region contained within the first region that does not overlap with the second region for which the cell in the selected column and the first row is in a designated position is determined. The largest region is assigned as a mutation region for the spreadsheet.
Abstract:
Systems and methods for providing filters for collaborative spreadsheets include storing a spreadsheet on a server, where the spreadsheet comprises a plurality of sheets, granting a plurality of client computers concurrent access to the spreadsheet, and receiving from the plurality of client computers a plurality of filters to be applied to a first sheet in the plurality of sheets. The plurality of filters are stored on the server, and the plurality of filters is associated with the first sheet. The plurality of filters are provided to each client computer. When a user on a first client computer in the plurality of client computers applies a first filter in the plurality of filters to the first sheet, the display of the first sheet on a second client computer in the plurality of client computers is independent of the filter application on the first client computer.
Abstract:
Systems and methods for viewing filters on a collaborative spreadsheet stored on a cloud computing service include accessing, from each of a plurality of client computers, a first sheet of a spreadsheet stored on a cloud computing service, where a plurality of filters is associated with the first sheet. A first client computer in the plurality of client computers receives a command by a first user to apply a first filter in the plurality of filters to the first sheet, and applies the first filter to the first sheet on the first client computer. The filtered first sheet is displayed to the first user, and a second client computer in the plurality of client computers concurrently displays an unfiltered first sheet.