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.
  • Once duplicated, changes to the spreadsheet would require changes to the web application.

Instead of re-implementing the logic, we ported the spreadsheet from Excel to OpenOffice Calc, and operated on it from a web application. Revisions to the spreadsheet are as easy as dropping the new spreadsheet in place.

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

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.