Changelog¶
1.0.0.98 (Aug 2, 2026)¶
Custom functions can now appear under a different name in Excel than the Python function name via
@func(name="myName"), see Custom function name.A custom-function namespace can now be set for an entire Python module via
__xlwings_func_namespace__, see Namespace.
1.0.0.97 (Jul 31, 2026)¶
Scripts now support arguments. In App Mode, they will be rendered into a form, using appropriate form elements such as a text box, a dropdown menu, a checkbox or a date/time picker, see Script arguments.
1.0.0.96 (Jul 29, 2026)¶
Notebooks: added support for the following plotting libraries: Bokeh, Altair, xy, and Plotnine.
The Output pane can now optionally be shown in App Mode (under Settings > Workbook > App Mode).
The Output pane now supports colors, e.g., by using Colorama or Rich.
1.0.0.95 (Jul 28, 2026)¶
This release introduces support for multiple source files:
Note
This release will trigger the trust screen (“Do you trust the Authors of this workbook?”) for any existing workbook.
You can now create, rename, delete, open, and close source files via the new Source files menu (on the left of the editor tabs).
File system layout: source files now live under
/src, and the working directory is/data. Files that your code writes with a relative path (e.g.,open("output.json", "w")) therefore persist and appear under Files > Import/Export. To read a source file from code, usePath(__file__).parent / "config.json", see Files.Notebooks: Notebooks now have the
.nb.pyfile extension; create them with New Notebook… from the Source files menu. New workbooks ship asample.nb.pyinstead of the legacynotebook.py. Legacynotebook.pykeep working unchanged.pytest: The test runner now collects multiple test files following pytest’s convention: any
test_*.pyor*_test.pyfile. Create them with New File…. See Testing with Pytest. Breaking: the legacytests.pyfile is no longer auto-created, and is no longer collected by the runner. A legacytests.pyhas to be renamed into e.g.test_main.py.pytestis also no longer included in the defaultrequirements.txt. Addpytestmanually and restart to use the test runner.
Other changes:
Scripts: you can now additionally run any script directly from its play button in the editor gutter.
1.0.0.93 (Jul 16, 2026)¶
Improved notebook experience:
Cell status (running, success, error) is now shown to the left of the line numbers.
Right-click a variable > View in Excel (new sheet) to view its data in a new sheet.
New cell actions: Run Above and Delete Cell.
Before running a cell, the current workbook state is now loaded automatically so that
book.sheets.activeetc. resolve correctly.Shift+Enteron the last cell now adds an empty cell at the end, in line with how it works in Jupyter notebooks.Notebooks now recommend the Async API for better performance with large workbooks.
For more details, see Notebooks.
1.0.0.91 (Jul 13, 2026)¶
Fixed a regression that restricted the available Pyodide versions to only one.
1.0.0.89 (Jul 10, 2026)¶
[Self-hosted]: New workbooks now default to Pyodide 314.0.1.
1.0.0.88 (Jul 1, 2026)¶
Custom functions that return Matplotlib figures are now officially supported. Note that this requires xlwings>=0.36.8 in
requirements.txt. See Plots for the details.
1.0.0.0-82 (Jun 18, 2026)¶
Pyodide 314.0.0 (Python 3.14.2) is now the default version for new workbooks.
Various bug fixes for streaming functions, object handles, and Pyodide 314.0.0.
1.0.0.0-80 (Jun 12, 2026)¶
Added support for object handles, see Object handles.
1.0.0.0-78 (Jun 9, 2026)¶
Added support for Pyodide 314.0.0. It’s not the default Pyodide version yet, but you can select it under Settings > Workbook.
1.0.0.0-77 (Jun 6, 2026)¶
[Self-hosted]: added support for Azure Artifacts.
1.0.0.0-76 (Jun 3, 2026)¶
Support streaming functions, see Streaming functions ("RTD functions")
1.0.0.0-74 (May 28, 2026)¶
Fix occasional hanging during startup.
Fix scroll direction of the editor tabs.
1.0.0.0-69 (May 21, 2026)¶
Fix Paste in the context menu (right-click) of the editor.
1.0.0.0-65 (May 6, 2026)¶
Custom functions: if a string parameter only accepts a fixed set of values, you can declare it with
typing.Literalso that Excel will show a dropdown of those values as the user types the function:, see Enum parameters.
1.0.0.0-64 (May 5, 2026)¶
[Self-hosted]: Bug Fix for “convert from cloud add-in” functionality.
1.0.0.0-63 (May 4, 2026)¶
[Self-hosted]: default to
XLWINGS_ENABLE_PYPI=true.
1.0.0.0-62 (May 3, 2026)¶
Removed the Python REPL (use
notebook.pyinstead).
1.0.0.0-61 (May 2, 2026)¶
Dark mode is here!
1.0.0.0-60 (May 1, 2026)¶
[Self-hosted]: added “convert from cloud add-in” functionality.
1.0.0.0-58 (Apr 30, 2026)¶
[Self-hosted]: show icons in the Office 365 admin center.
Bug Fix: all files are now stored in the workbook, even if they contain the default content. This prevents e.g., silent version upgrades in
requirements.txt.
1.0.0.0-57 (Apr 27, 2026)¶
Added a new
test.pyfile to run pytest tests, see Testing with Pytest.
1.0.0.0-52 (Apr 16, 2026)¶
Introduced a menu item to Import Python in Excel code into
notebook.py.
1.0.0.0-50 (Apr 13, 2026)¶
Plotly plots are now supported in
notebook.py.
1.0.0.0-49 (Apr 10, 2026)¶
Bug Fix: Calling
await book.flush()could result inPropertyNotLoadederrors.Show previously hidden errors in the Problems pane.
New workbooks now default to xlwings 0.35.1.
1.0.0.0-46 (Apr 6, 2026)¶
Introduced
notebook.py, similar to a Jupyter notebookDeprecated
await Book.sync()in favor ofawait Book.flush()to make it clearer what it does.Introduced a new async API, see Async API.
New workbooks now default to xlwings 0.35.0.
1.0.0.0-45 (Mar 27, 2026)¶
Better autocomplete.
Code issues are now shown with red squiggly lines via Ty and listed in the Problems pane.
Enabled Go to Definition and Rename Symbol (right-click in the editor).
New workbooks now default to xlwings 0.34.0.
1.0.0.0-43 (Mar 22, 2026)¶
Added support for
Range.to_png().Use Ruff instead of Black for code formatting via
Shift+Alt+F, configurable viapyproject.toml.New method
await book.sync(): Use this inasyncfunctions to process the xlwings commands instantly and to flushprint()to the Output pane. This is required if an xlwings command produces a file that you need before the end of thescript, e.g., if you want to use the PNG file produced byRange.to_png().New workbooks now default to xlwings 0.33.22.
1.0.0.0-39 (Mar 12, 2026)¶
App Mode now shows exceptions in an alert.
Bug Fix: always show scripts in order of appearance from the top.
1.0.0.0-38 (Mar 11, 2026)¶
Output pane: new
Clearbutton and various bug fixes.
1.0.0.0-37 (Mar 9, 2026)¶
New App mode, allowing for deployment to end-users without showing the editor with the Python code, see App Mode.
@scriptdecorators now accept anameargument to label the button differently from the function name:@script(name="My Button").Wingman chat sessions aren’t automatically resumed after starting the add-in, only within the same add-in session.
1.0.0.0-36 (Mar 7, 2026)¶
The Pyodide version can now be changed under
Settings>Workbook. For now, there’s just one version, but going forward, new Pyodide versions will be added.The sample code can now be switched off under
Settings>Localso the editor starts with a blank file and without the optional dependencies like pandas, etc.Changed the autostart default under
Settings>WorkbooktoAutostart and open task pane.Improved Wingman response quality.
1.0.0.0-35 (Feb 23, 2026)¶
Added Wingman Chat in the Output pane. Use it to write or explain your code. It supports Claude, Gemini, and OpenAI out of the box (bring your own API key) plus any OpenAI API compatible API that runs on https and supports CORS.
1.0.0.0-34 (Feb 21, 2026)¶
Wingman: added provider support for Claude by Anthropic.
Personal modules: automatically load scripts and custom functions across all workbooks from local files similar to how
Personal.xlsbworks with VBA, see Personal Modules.
1.0.0.0-30 (Feb 13, 2026)¶
Added the built-in custom function
=WINGMAN(prompt1, [prompt2], ...), equivalent to Microsoft’sCOPILOT.WINGMANis a bring-your-own-model solution: connect it with your OpenAI, Gemini, or other models via xlwings Lite menu > Settings > Local > Wingman.
1.0.0.0-29 (Feb 10, 2026)¶
xlwings Lite now has a Python Console (REPL). It automatically installs the packages from
requirements.txtbut currently doesn’t support the imported files or mounted local folders.
1.0.0.0-28 (Feb 3, 2026)¶
Trusted workbooks: To keep your environment variables and files secure from attacks, you must now trust a workbook when you run it for the first time if you didn’t author it yourself. You’ll need to do this for existing workbooks, even if you wrote them yourself. You’ll also need to re-trust them whenever the Office cache is cleared, which happens occasionally.
Autostart: The add-in now starts automatically in the background. You can change this in the workbook settings to disable autostart or to start the add-in and show the task pane. Note that existing workbooks will only autostart after you open the add-in manually once more and then save the workbook.
Local Files: Via menu >
Files, You can now import/export files to access them under/data, all handled locally. On Windows Desktop, you can additionally mount a local directory to read from and write to your local disk directly.
1.0.0.0-27 (Jan 31, 2026)¶
Bug Fix: The content of
main.pywas sometimes replaced with the default code samples or content fromrequirements.txt.
1.0.0.0-24 (Jan 22, 2026)¶
Fixed an issue with xlwings 0.33.20.
New workbooks now default to xlwings 0.33.20.
1.0.0.0-21 (Jan 18, 2026)¶
When using sheet buttons, you can now select a specific cell in your script without it being overridden anymore.
New workbooks now default to xlwings 0.33.19.
1.0.0.0-18 (Jul 11, 2025)¶
Show a security warning with regard to using environment variables with scope “Add-in”.
New workbooks now default to xlwings 0.33.15.
1.0.0.0-17 (Jun 23, 2025)¶
If you are self-hosting xlwings Lite, you can now build your own Docker image to include custom packages.
1.0.0.0-16 (May 27, 2025)¶
xlwings Lite is now available as Docker image for self-hosting.
1.0.0.0-15 (May 3, 2025)¶
Added support for sheet buttons.
Added support for scripts configuration via
includeandexcludearguments to prevent sending over the full workbook data to Python.New workbooks now default to xlwings 0.33.14.
If you want to use these new features with an existing workbook, you need to upgrade to xlwings 0.33.14 or later via requirements.txt tab, followed by a restart.
1.0.0.0-14 (Apr 25, 2025)¶
Added support for environment variables.
1.0.0.0-13 (Apr 18, 2025)¶
Range.fontproperties can now be set (bold,italic,color,size,name).Polars DataFrame and Series are now supported via native converter.
Images aren’t selected anymore after inserting/updating.
Bug fix: Scripts wouldn’t run if e.g., a shape was selected.
Bug fix:
Range.expand()was stopping at0values.New workbooks now default to xlwings 0.33.12.
If you want to use these new features with an existing workbook, you need to upgrade to xlwings 0.33.12 or later via requirements.txt tab, followed by a restart.
1.0.0.0-12 (Apr 6, 2025)¶
Upgraded to Pyodide 0.27.5, giving access to the
openaiandosqppackages amongst others.Made the dependency
pyodide-httpoptional.
1.0.0.0-11 (Mar 25, 2025)¶
Show full error tracebacks in the output pane instead of just the error message in an alert.
1.0.0.0-10 (Mar 23, 2025)¶
Bug fix: Fixed an occasional bug with loading Pyodide.
1.0.0.0-9 (Mar 22, 2025)¶
Bug fix: Show errors in the output pane whenever changes are saved and prevent running a previously working version of the script/function.
1.0.0.0-8 (Mar 21, 2025)¶
First public release.