Comparison of Spreadsheet Software

1 week ago 4

In late June 2024, we did a survey of the capabilities of the spreadsheet software available. This is an overview of our findings.

The ultimate goal was to determine how sophisticated each engine is. While this may be subjective, we've tried to quantify this as a combination of a few factors:

  • Feature set support

  • Formula and function support

  • Exactness of calculations

  • Speed of calculations

We are aware that we cannot be unbiased in this endavour. We are also actively trying to work against it, as we hope our learnings expose where we can improve.

Comparison of features

A spreadsheet engine feature set is perhaps the best indicator of how sophisticated it is. Features are selected based on whether they create a divergence.


Comparison of function support

Function support varies from engine to engine. We've found that 90% of the usefulness is sitting in about 350 most commonly used functions.

Exactness of calculations

Generally speaking we can say that spreadsheet applications are reliable. Given some set of inputs and functions that an engine supports, the output will be correct or acceptable to a user.

However, when moving those inputs to a different engine the results may be different. So exactness really means similarity of calculations to "some standard". That standard is usually desktop Excel, but could be Sheets or some other engine. In fact, Excel has maintained several quirks and bugs from its predecessors for decades.

So what really matters is how well an engine does with a model originating in another engine. The feature set as shown above is obviously a large factor but other things also matter:

  1. Correctly implemented functions. – Calculated output should be close or identical to an ideal standard, and a quirky function should maintain a "standard" quirk.

  2. Correct traversal of dependent cells. – Formulas in a spreadsheet model depend on other cells. When a change happens in one cell, it's vital that dependent cells are calculated in the right order.

Excel and Excel Online

Excel is the de-facto standard. It is one of the most important and widely used software in the world. It has, for all its quirks, done an amazing job at staying consistent and backwards compatible for decades.

Excel doesn't support everything the other engines have implemented but it also has little incentive to as it is the market leader by a wide margin.

The online Excel engine is separate from the desktop one. It is very consistent with its older sibling, but does not have all its capabilities yet. Our testing found that there are some minor incompatibilities in dependency handling, esp. with circular references. Largely though, desktop Excel compatibility is near perfect.

Google Sheets

Sheets does not have a fully compatible cell-model to Excel. Unlike Excel, when a cell references another, the cell picks up the meta-data (such as formatting) from the referenced cell.

Sheets pioneered the spilling of cells, but limited to only a few functions. Sheets' spilling model is less mature than what Excel eventually did and it may be difficult for Google to move to the newer behavior.

Our testing has found that multiple functions in Sheets are quirky, esp. when it comes to error output. But by-and-large Sheets has high compatibility to Excel with the exception of the recent advancements Excel has done with spilling and dynamic arrays.

Sheets also lacks the ability to cross-reference workbooks as well as very advanced reference features (multi-area, 3D).

GRID

GRID's engine is a headless JavaScript engine which is capable of running in a browser as well as on a server. It has been built with the aim of having perfect compatibility to desktop Excel as well as Sheets.

It thus supports both modes of cell meta-data handling and spilling, running workbooks in corresponding modes. It will even allow Excel and Sheets workbooks to coexist in the same environment and theoretically could allow cross-references between them (if authoring this were possible). Workbooks authored in GRID can reference any flavor of workbook.

GRID's compatibility to both Excel and Sheets is very high, missing only a few statistics and finance functions.

SpreadJS

SpreadJS is a browser-only spreadsheet engine. Judging by the engine's tight coupling to its UI, its primary focus seems to be to allow in-browser spreadsheet viewing and editing. It has broad support for Excel features such as charts and images that do not have to do with calculations.

SpreadJS compatibility with Excel is very high, but it lacks all support for Sheets-specific features. It also lacks the capability to cross-reference workbooks.

Other engines

HyperFormula is a headless JavaScript engine capable of running in a browser and on a server. It is quite limited in its features. Its data input/output is basic and it has next to no support for newer and advanced features. Its compatibility with both Excel and Sheets workbooks is low as there are some fundamentals missing like correct/dynamic dependency calculations and anything beyond the most basic number formatting.

jSpreadsheet is a JavaScript engine capable of running in a browser. Its compatibility with Excel is high, but it lacks all support for Sheets specific features. It supports cross-referencing workbooks, but does not support iterative calculation. Its numeric precision is limited so models that require exactness may break.

PhpSpreadsheet is a server based spreadsheet runner. Its compatibility with Excel is low as it lacks nearly all new and advanced features, and does not even respect correct formula operator order.

Rows is a server based spreadsheet runner. Its compatibility with Excel is very low as it lacks most things beyond the absolute basics. Interoperability does not seem to be its focus.

Calc is the open source answer to Excel. It's been around for a long time so it has very high compatibility with Excel except for newer features (like spilling or LAMBDA).

Gnumeric is an open source spreadsheet application that focuses on statistics. Its compatibility with Excel/Sheets is very low, but interoperability has never been its goal.

Numbers is Apple's offering. It takes a very different approach to many paradigms, aiming to innovate in its UI rather than keeping compatibility. It has very low compatibility to Excel and Sheets.

POI is a limited headless Java engine that aims to be a programmatic interface on top of Excel workbooks. Its development seems inert, and it looks to have only limited support for older Excel files and features. Its compatibility with Excel/Sheets is very low.



The interactive charts and calculators in this post were built with Calculator Studio—a standalone, no-code product powered by the GRID spreadsheet engine.

Read Entire Article