Change Log
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[3.1.3] 2023-09-22
Fixed
- Improved the performance of list arguments.
- Optional arguments dependent on function calls are now supported, for example def f(x=date(2023,9,22))...
Changed
- Lists of doubles are now passed into Python functions as native Python lists, previously they were passed as wrapped .Net sequences.
- Updated Python.Net to 3.0.2
[3.1.2] 2023-09-14
Added
- When loaded the addin checks if a newer version is available and displays a popup window with details. This can be disabled by setting HKEY_CURRENT_USER\xlslim\skipVersionCheck to Y
- When loaded the addin checks if a premium license is within 14 days of expiry and displays a popup window with details. This can be disabled by setting HKEY_CURRENT_USER\xlslim\skipExpiryCheck to Y
[3.1.1] 2023-08-12
Fixed
- Python function registrations can be added to the named range XLSLIM_RUN_AT_START. They will be run when workbooks are opened.
[3.1.0] 2023-07-22
Added
- Python functions expecting lists of lists can now be passed a range from Excel. Previously only the first row was being passed from Excel.
- Pandas NaT values are recognised and a #NA error is returned
Fixed
- Python datetime.date and datetime.time instances are correctly handled when returned from functions
- Lists of strings are not unpacked into list of lists of characters when returned to Excel
- Optional lists now work correctly when not passed from Excel, previously the mapped function was not being called
- Removed unused sections in the xlSlim License Manager application
- The utility function ViewPyObject() has been improved
Changed
- nan and inf doubles are now returned as #NUM errors
- nulls and None are now returned as #NA errors
- Lists of strings are not unpacked into list of lists of characters when returned to Excel
- Updated LicenseSpring SDK to 7.20.0
- The digital signature used for code signing has been updated as the previous certificate expired in June 2023.
[3.0.0] 2023-06-02
Added
- New interactive mode where cells starting with "#py" are treated as Python code and are run in the worksheet
- New Python editor to edit Python code contained within cells.
- Cells in the named range XLSLIM_RUN_AT_START are calculated when workbooks are opened.
Fixed
- Fixed displaying pandas dataframes that contain timezone aware datetime64 values
- Extra Python and DLL paths are now cached in the Windows registry along with the previously cached Python executable path.
Changed
- Python module analysis is now much faster
- Updated Excel DNA to 1.7.0-rc4
- Updated LicenseSpring SDK to 7.17.1
- Updated NLog to 5.1.4
- Updated MessagePack to 2.5.108
[2.1.0] 2023-04-14
Added
- Added simple context and ribbon menus.
[2.0.10] 2023-03-22
Added
- Added a new CreatePyModule() Excel function to create modules from text.
Fixed
- Fixed a missing acquisition of the GIL while analyzing modules (part of the function registration process).
- Include the function name in the object cache keys generated by RTD functions.
[2.0.9] 2023-02-16
Added
- Added support for remote module imports
[2.0.8] 2022-12-01
Added
- Added support for VBA event handling, Application.OnTime and Application.OnKey methods.
- Added a new function ClearCacheItem() to remove an item from the object cache.
[2.0.7] 2022-11-09
Added
- Added support for Python 3.11
Changed
- Updated Python.Net to 3.0.1
- Updated LicenseSpring SDK to 7.10
- Updated NLog to 5.0.5
[2.0.6] 2022-10-12
Fixed
- Fixed a problem initialising Python 3.7, this was a result of the platform module patch added in 2.0.4.
Changed
- pandas timestamps and numpy datetime64 types are now treated as dates when returned from functions.
[2.0.5] 2022-10-06
Fixed
- Null values are filtered out of ranges of cached objects.
Changed
- The CreateRange() utility function now works with 2d ranges. The results can be passed as dictionary inputs.
[2.0.4] 2022-10-02
Added
- Added support for Python dictionaries. Dictionaries can be passed as function arguments and returned as function results. Dictionaries can be created from two columns in Excel.
- Python classes are now registered as Excel functions. Objects can be created directly within Excel.
- Python data classes are also supported and can be created directly within Excel.
- Python enums have limited support, enums defined within registered modules are recognised and the enum text can be passed to functions that expect enums.
- Added new utility functions: GetAttr and GetItem
Fixed
- Fixed a reference counting bug when passing lists of cached objects
- The utility function ViewPyObject() supports more data types including datetimes and lists.
- Fixed a bug introduced in 2.0.1 where boolean results were returned as doubles.
- Patched the Python platform module's use of cmd as this is seen as an exploit by some antivirus vendors.
Changed
- Lists of datetimes can now be passed from Excel, they are correctly parsed.
[2.0.3] 2022-09-07
Fixed
- Fixed a bug so the Excel COM object functionality is only imported when used. This was causing the bundled Python to fail as it does not contain pythoncom.
[2.0.2] 2022-09-01
Added
- Enable access to the Excel COM object via the new XLSLIM_COMAPPFUNC global. Any functions accessing the global are registered as macro functions.
- New utility function XlSlimVersion() to return the xlSlim version to Excel
Fixed
- Fixed a bug with type hinted functions returning lists with numpy floats.
- Fixed the setting of sys.prefix and sys.exec_prefix so the site module is correctly processed.
[2.0.1] 2022-08-25
Added
- Support for numpy floats (np.float16, np.float32, np.float64). These can now be returned from Python functions and used in type hints.
Fixed
- Load user modules from file rather than text, this enables debugging.
[2.0.0] 2022-08-12
Added
- Python iterator classes and generator functions (async and regular) can be registered and then stream data to Excel via the RTD(..) internals
Changed
- Refactored the Python object cacheing
- Updated MessagePack to 2.4.35
- Updated LicenseSpring SDK to 7.8
- Updated Python.Net to 3.0.0rc4
Fixed
- Python functions that return None are handled better, an empty string is sent to Excel
- Add the current Python module location to the sys.path
- Python logs use the correct module name
- Fixed the log sizing
[1.0.3] 2022-07-17
Fixed
- Reverted removal of binding redirects in the app.config files from v.1.0.2
[1.0.2] 2022-07-01
Added
- Can specify additional Python module search paths when registering modules
- Can specify additional Windows DLL search paths when registering modules
- Can control which functions are imported from a module and have a different function name in Excel
- Can add PrefixBuiltInFunctions to the appSettings in xlSlim64.xll.config file to prefix builtin function names
Changed
- Cleaned up the app.config files
- Removed unnecessary XML and config files from installation
[1.0.1] - 2022-06-23
Added
- Added 3rd party software licenses file.
- Added this change log
Changed
- Lowered the default logging levels to be INFO, was DEBUG
- Configured all logs to be rolling logs
- Renamed the background process log from addinlog.txt to xlslim-subproc.log
- Renamed the Excel add-in log from addinlog.txt to xlslim-addin.log
[1.0.0] - 2022-06-16
Added
- Initial public release made available at https://www.xlslim.com