You could also use Resolver One[1], which sadly is no longer in development[2]. It is a commercial spreadsheet written in IronPython that uses (almost?) vanilla python files as documents. Needless to say it is extremely scriptable.
I'd love to take a stab at making a lite version in QT or wxPython running in CPython... Sadly, I've gotten too used to Google Spreadsheets to really need a desktop version
Also, of course, LibreOffice has support for Python macros.