Saturday, February 23rd, 2013

Pyspread: the non-traditional spreadsheet

Looking for a spreadsheet that is fully Python enabled? Look no further than Pyspread. This spreadsheet software, although lacking some major features found in other spreadsheet software such as Gnumeric and OpenOffice.org Calc, it is fully programmable in Python!

Unlike traditional spreadsheet programs, in Pyspread each cell is evaluated as a Python expression. You are even able to import Python modules into a cell, such as Numpy and many others. I highly recommend looking over their website to get a feel on what this application can do. The application is no longer compatible with MS-Windows, but an older version is offered which is still compatible. It should however work on all UNIX-like operating systems, such as your favorite Linux distro. Currently OS X support is not available in version 0.2.3(latest stable as of this writing), but should work again in version 0.2.4. It is based on the wxWindows toolkit, so it should fit in just fine with all your GTK+ applications, if you use a GTK+ desktop environment such as GNOME. It should work just fine in a Qt3/4/5 environment as well, but you will need a GTK+ engine for Qt to make it fit in nicely.

As mentioned earlier, each cell in Pyspread is evaluated as a Python expression, so in order to display a string in a cell, you must encapsulate the string in quotes. Unlike a normal spreadsheet, there is no = sign, just enter in your expression and your good to go. To reference other cells, you need to use a special list called S. It is in the format of S[X,Y,Z]. Which is S[row, col, sheet]. Some standard spreadsheet functions like sum() exist in Pyspread as well, and it accepts a range, such as S[1:15,2,0], which will return a range of cells that can be used as a parameter to sum().

Pyspread by default signs all of your spreadsheets using PGP, this ensures that you can only open a spreadsheet for which you have approved(A spreadsheet can for example, erase your files). The hugely unfortunately part about Pyspread is it's lack of import and export options. Currently, it can only import/export CSV files. There is no option for OpenDocument format or Excel, despite Python modules existing to work easily with these formats. Another feature which is missing, which Python also supports via modules is database sources. It would be really nice to see a configuration option to use an external data source to fill cells using Python, say using a DB variable. However, since this spreadsheet is fully Python, it can be done manually within the spreadsheet itself. There is a Macro menu which can be used to load external Python modules, which can in turn access external data sources and create new import/export facilities.

All in all, if you are looking for a Python based spreadsheet software, which can evaluate Python expressions with ease, then this is a good option to look into. I'd also recommend following it's development, as it may turn into something wonderful in the future.

UPDATED with new information from the project author.

About Me

My Photo
Names Kevin, hugely into UNIX technologies, not just Linux. I've dabbled with the demons, played with the Sun, and now with the Penguins.




Kevin Veroneau Consulting Services
Do you require the services of a Django contractor? Do you need both a website and hosting services? Perhaps I can help.

If you like what you read, please consider donating to help with hosting costs, and to fund future books to review.

Python Powered | © 2012-2013 Kevin Veroneau