PyXLL The Python Excel Add-In
  • Product
    • Features
    • Get Started
    • Request Demo
    • Download
  • Pricing
  • Resources
    • Documentation
    • Blog
    • Videos
    • FAQ
    • Learn Python
    • Customer Portal
    • About Us
  • Support
    • Documentation
    • Videos
    • FAQ
    • Contact Us
  • Contact Us
Table of Contents
  • PyXLL Documentation
  • Introduction to PyXLL
  • User Guide
  • Video Guides and Tutorials
  • API Reference
  • What’s new in PyXLL 5
    • New Features and Improvements
    • Important notes for upgrading from previous versions
  • Changelog
Close

What’s new in PyXLL 5¶

Looking for an earlier version?

See What’s new in PyXLL 4 for a detailed overview of the features added in PyXLL 4.

  • New Features and Improvements

    • Excel Tables

    • RTD Generators

    • Polars Types

    • Easier Installation

    • Custom Task Panes

    • Plotting Integrations

    • Serialized Cached Objects

    • Entry Points

    • Composite Ribbon Toolbars

    • Auto-Rebinding

    • Improved Cell Formatting

    • Log Rolling

  • Important notes for upgrading from previous versions

    • Updated Software License Agreement

    • Deep reloading is now enabled by default

    • RTD functions no longer recalculate on open by default

    • async_func has been replaced with schedule_call

New Features and Improvements¶

Excel Tables¶

New in PyXLL 5.8

Read and write Excel tables from Python.

See Working with Tables for details.

Working with Excel Tables in Python

RTD Generators¶

New in PyXLL 5.6

Writing an Excel RTD (Real Time Data) function is now as simple as writing a Python generator.

See RTD Generators for more details.

Polars Types¶

New in PyXLL 5.6

Polars DataFrames can be used as argument and return types, in the same way as pandas DataFrames.

See Polars DataFrames for more details.

Easier Installation¶

The PyXLL Excel add-in can now be installed and uninstalled via a new command line tool.

To install the PyXLL Excel add-in first use pip install to install the PyXLL wheel, eg

> pip install "pyxll >= 5.0.0"

Once the PyXLL wheel is installed the new pyxll command line tool can be used to install, configure and uninstall the PyXLL Excel add-in, eg

> pyxll install

See PyXLL Command Line Tool.

Custom Task Panes¶

Task Panes are Excel windows that can be floating or docked as part of the Excel user interface.

PyXLL 5 adds the capability to write custom task panes in Python using any of the following Python UI toolkits:

  • PySide2 and PySide6

  • PyQt5 and PyQt5

  • wxWindows

  • tkinter

See Custom Task Panes.

Plotting Integrations¶

PyXLL 5 adds integration with the following Python plotting and charting packages:

  • matplotlib

  • plotly

  • bokeh

  • altair

See Charts and Plotting.

Serialized Cached Objects¶

Cached objects can be serialized and saved as part of the Excel workbook. When a workbook containing saved objects is opened they are deserialized and loaded into PyXLL’s object cache.

To specify that an object should be saved use the save parameter to the object return type.

See Saving Objects in the Workbook.

Entry Points¶

Python packages can now be loaded by PyXLL via setuptools’ entry-points.

This allows package developers to distribute functionality to other PyXLL users more easily as no additional PyXLL configuration is required when installing a package with PyXLL entry points.

See Setuptools Entry Points.

Composite Ribbon Toolbars¶

The ribbon toolbar can now be composed of multiple xml files instead of a single file.

The ribbon setting can now be a list of files, which PyXLL will merge into a single ribbon.

This can be used by package authors who want to add a ribbon to their package via an entry point without needing changes to be made to the main PyXLL configuration or ribbon xml file.

Images specified in the ribbon xml can now also be package resources as well as files.

Auto-Rebinding¶

When using the xl_func, xl_macro or xl_menu decorators outside of the usual module imports as PyXLL is starting, PyXLL will automatically reflect these functions in Excel without needing to call rebind.

This simplifies working with adhoc worksheet functions from an interactive Python prompt in Excel, such as a Jupyter notebook.

Improved Cell Formatting¶

  • Cell formatting can now be applied to RTD functions as well as standard worksheet functions.

  • The DataFrameFormatter can now do conditional formatting based on the values in the returned DataFrame.

See Conditional Formatting.

Log Rolling¶

New in PyXLL 5.2

PyXLL can now automatically roll its log file when it reaches a certain size or after a specific interval has elapsed. This avoids long running Excel processes from generating huge log files. Old log files can be kept for a while and then later automatically cleaned up to avoid using excessive disk space.

See Logging for more details.

Important notes for upgrading from previous versions¶

PyXLL 5.0 contains some changes that may require you to make changes to your code and/or config before upgrading from previous versions.

Updated Software License Agreement¶

The PyXLL software license agreement has been updated.

See PyXLL Terms and Conditions or the software license agreement PDF file included in the PyXLL download for details.

Deep reloading is now enabled by default¶

This can be disabled for backwards compatibility

Deep reloading is now enabled by default. See Reloading and Rebinding for details about how PyXLL reloads modules.

To disable deep reloading set the following in your PyXLL config file.

[PYXLL]
deep_reload = 0

RTD functions no longer recalculate on open by default¶

This can be disabled for backwards compatibility

In previous versions of PyXLL RTD functions were implicitly marked as needed to be recalulated when opening a workbook. This was done to be consistent with earlier behaviour where RTD functions were registered as volatile.

As of PyXLL 5 RTD and standard functions behave in the same consistent way. That is, unless the recalc_on_open=True is passed to xl_func, or defaulted via the config, RTD functions will not recalculate and start ticking when a workbook is opened automatically.

To enable recalculation on open as the default for all RTD functions you may set the following in your config file.

[PYXLL]
recalc_rtd_on_open = 1

async_func has been replaced with schedule_call¶

If your code uses async_call you should replace it with the new schedule_call. The old async_call is still available but has been deprecated and will log a warning if used.

« Excel C API Functions
PyXLL 5 Changelog »
  • Home
  • Product
  • Features
  • Documentation
  • Download
  • Pricing
  • Support
  • Documentation
  • Videos
  • FAQ
  • Learn Python
  • Contact Us
  • About
  • About Us
  • Legal
  • Blog
© Copyright PyXLL Ltd