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.
[4.0.2] 2024-11-22
Changed
- The latest available version is now fetched from AWS rather than Shopify
- Updated Excel DNA to 1.8.0
- Updated Python.Net to 3.0.4
- Updated LicenseSpring SDK to 7.30.0
- Updated NLog to 5.3.15
- Updated MessagePack to 2.5.192
- Updated DuckDB.Net to 1.1.3
[4.0.1] 2024-10-24
Fixed
- Fixed a problem with nested functions returning cached objects. Amended the object cache key generation so multiple functions run within the same cell will generate unique keys.
[4.0.0] 2024-10-11
Added
- New DuckDbQuery() function allows DuckDB SQL to be run in Excel.
Fixed
- Adjusted the license checks so expired licenses do not request product details.
- Remote module imports now work for Python 3.12
[3.3.2] 2024-06-27
Fixed
- Type hinted functions with optional parameters were not picking up the defaults correctly when the function was not hinted with Optional
Changed
- A more user-friendly error messge is returned if a cache key is passed when an Excel range is expected.
[3.3.1] 2024-05-24
Fixed
- The ViewPyObject() function now displays numpy vectors
Changed
- The digital signature used for code signing has been updated as the previous certificate expired in May 2024.
[3.3.0] 2024-05-16
Added
- Added support for Python 3.12, note that the remote module imports do not yet work for Python 3.12
Updated
- The bundled Python is now Python 3.11
- Updated Excel DNA to 1.7.0
- Updated Python.Net to 3.0.3
- Updated Python.Included to 3.11.6
- Updated LicenseSpring SDK to 7.26.0
- Updated NLog to 5.3.2
- Updated MessagePack to 2.5.140
[3.2.0] 2024-03-14
Fixed
- Missing string arguments are correctly detected and passed to Python as None not ""
- Python 3.11 introduced slightly different handling of type hints with a None default, this is now handled so all Python versions have the same behaviour in xlSlim
Added
- Streaming (RTD) functions can now accept cached Python objects.
[3.1.5] 2023-11-29
Fixed
- Fixed a bug in the ActivatePremiumLicense() function introduced in Release 3.1.2.
[3.1.4] 2023-11-16
Fixed
- Context and ribbon menus can now have spaces in the labels
[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