Connecting a Spreadsheet to the Web

Our client had an advanced set of algorithms implemented in a Microsoft Excel™️ spreadsheet.

They needed a low-traffic web-site demonstrating their technology to potential clients.

Re-implementing the logic as a web application was the obvious approach, but had serious drawbacks:

  • Implementing and verifying its correctness were both significant efforts, a strain on their budget.
  • Once the logic was duplicated, every change to the spreadsheet would require changes to the application.

Instead of re-implementing the logic, we ported the spreadsheet from Excel to OpenOffice Calc, and operated on it programmatically from a web server back-end, plugging in the inputs and fetching back its generated results. With this approach, revisions to the spreadsheet are as easy as dropping the new spreadsheet in place.

They were able to keep tinkering with their algorithms without us in the loop.

A server process loads the spreadsheet (which takes significant time), then operates on it. The web application is a FastCGI process interacting with OpenOffice and formatting the results for the client.

All components were written in Python, using the OpenOffice Py-UNO bridge.

The algorithms transform some twenty inputs into dozens of outputs.

We used OpenOffice Calc instead of Excel™️ for both technical and licensing reasons.