2010-03-15 - Version 0.6 released

Version 0.6 is now available to download.

This version incorporates the feedback I've gotten from the last couple of versions. It's very soon after 0.5, but I felt there were enough new features to warrant a new release.

Here's a list of the new features:

  • Selected Excel macro functions are now available to call from PyXLL. These are xlfGetDocument, xlfGetWorkspace, xlfGetWorkbook, xlfGetWindow, xlfWindows, xlfCaller. They all have the same signature as their C counterparts. If you're not sure what these functions are you probably don't need to. Full documentation will be added later.
  • Worksheet functions can now be registered as macro sheet equivalent functions using the keyword argument macro=True. Macro functions have access to the excel macro functions.
  • COM support is now built in. There's a new function GetActiveObject to get the Excel COM api corresponding to the Excel process that PyXLL is running in. This is different from calling win32com.client.GetActiveObject("Excel.Application") as that will return any of the running instances of Excel.
  • Volatile functions are now supported via the volatile keyword argument to xl_func. These functions are always recalculated regardless of whether their inputs have changed.
  • There's a new set of examples showing how you can call back from python to Excel from a menu callback and from a worksheet function.
  • A new user module called pyxll-startup is imported before anything else. By putting a file pyxll-startup.py alongside the addin you can run some python code before anything else. This allows you to set the pythonpath to a non-standard location, for example.

2010-03-07 - Version 0.5 released

Version 0.5 is now available to download.

The licensing of PyXLL has changed in this version. Now it is not necessary to obtain a license to use PyXLL for non-commercial or evaluation purposes. If you already have a licence key from a previous version it will continue to work with this version.

The dialog box that appeared when PyXLL was loaded no longer appears if you have a valid license key. If you are using PyXLL without a license or your license has expired you will still get a dialog that pops up. If you license expires you can now continue using PyXLL while you obtain a new license, but with the dialog box on load.

All bugs from the previous version that have been reported to me are fixed in this release. Of course if you come across any more, please do email me (tony@pyxll.com) so I can look into them.

There are a few new features as well. Here's a list of them:

  • The var type may now be used to pass errors from Excel to python as python exception objects and vice-versa.
  • There's a new type float_nan that behaves like float, but if the cell is an error the float passed to your function will be NaN. This new type can be used in arrays and numpy arrays (e.g. numpy_array<float_nan>).
  • 1d numpy arrays can be used as argument and return types using the new types numpy_row and numpy_column.
  • A new decorator xl_license_notifier has been added. You can use this to get license information when PyXLL is added, for example if you want to send an email if a user's license is about to expire.
  • When developer_mode is set in the config file a new 'about' menu item is available under the PyXLL addin menu. It shows you the current version as well as any license information.

2010-02-06 - Version 0.4 released

Version 0.4 is now available to download.

This new version includes a number of new features and a some bug fixes. Examples of all the new features are in the example files in the download package. Below is a summary of what's new.

  • Create custom menus via a new xl_menu decorator.
  • Reload PyXLL modules from a menu option, instead of having to unload and reload the addin. This new menu item is only avaiable if PyXLL:developer_mode is set to 1 in the config file.
  • NumPy array support for argument and return types.
  • Python isn't shutdown until you exit Excel, even if you un-load a PyXLL addin. This means PyXLL is doesn't conflict with other addins that also use Python (eg win32com).
  • Set the name of your addin in the config file (PyXLL:name) so it looks like any other addin instead of being called PyXLL.
  • Multi-threading support in Excel 2007 and 2010. Set the thread_safe keyword argument to the xl_func decorator to True to tell Excel it can call your function from another thread. In earlier versions of Excel it does nothing.
  • Allow win32com to be used inside a worksheet function or menu function to access the Excel object model. You can use this to do most things you might previously have done in VBA.

2010-02-03 - London Python Financial Users Group meeting

Thanks to Didrik for organizing another LFPUG meeting.

For those who couldn't make it, you can download a copy of the PyXLL presentation here.

2010-01-03 - Version 0.3 released

Here's a summary of what's new:

  • Better array handling; Arrays of any types can be used without resorting to using the var type.
  • Datetime support; Dates, time and datetimes are now standard types.
  • Custom type support; It's now possible to add your own type handling code for non-standard types.
  • Full well commented example code with a supporting example workbook.
  • Python 2.5 and 2.6 versions now available.
  • Stability fixes; Fixed a crash bug that would occasionally occur when un-loading the xll.