# PyXLL Documentation > PyXLL is the Python Excel Add-In — a native Excel add-in that lets you write Excel > worksheet functions, macros, menus, ribbon toolbars, and real-time data feeds entirely > in Python, with no VBA required. PyXLL runs Python in-process inside Microsoft Excel, giving direct access to the full Python ecosystem — numpy, pandas, SciPy, matplotlib, plotly, and more — from Excel formulas and macros. It is used in finance, engineering, data science, and research to extend Excel with Python without leaving the spreadsheet environment. Key capabilities: - **Worksheet functions (UDFs):** expose Python functions as Excel formulas using the `@xl_func` decorator, with full support for type hints, NumPy arrays, pandas/polars DataFrames, async functions, and the LRU cache. - **Macros:** define Excel macros in Python with `@xl_macro`; interact with the Excel Object Model, read/write cells, and assign keyboard shortcuts. - **Real-time data (RTD):** stream live data into Excel cells from Python using the `RTD` class or generator-based `rtd_func`. - **Plotting:** embed matplotlib, plotly, bokeh, altair, and seaborn charts directly in Excel worksheets via the `plot()` function. - **Custom task panes & ActiveX controls:** build side-panel or worksheet UIs using Qt (PySide/PyQt), tkinter, or wxPython. - **Ribbon & menus:** customise the Excel ribbon toolbar and Add-ins menu from Python. - **Configuration:** all behaviour is controlled via a plain-text `pyxll.cfg` file. This file is a structured index of the PyXLL documentation. Each entry links to a standalone Markdown (.md) file containing the full text of that page. For the entire documentation concatenated into one file see [llms-full.txt](https://www.pyxll.com/llms-full.txt). Navigation guide for AI assistants: - **Getting started / installation:** see the *Getting Started* entries at the top and the *Installing PyXLL* section. - **Writing worksheet functions or macros:** see *Worksheet Functions* and *Macro Functions* under the User Guide. - **Configuration questions:** see *Configuring PyXLL* and its subsections. - **API signatures and parameters:** see the *API Reference* section. - **Version history and release notes:** see the *Changelog* section. --- - [PyXLL Documentation - The Python Add-In for Microsoft Excel](https://www.pyxll.com/docs/index.md): Complete documentation for PyXLL, the Python add-in for Microsoft Excel. Covers worksheet functions, macros, real-time data, ribbon toolbars, and more. - [Getting Started with PyXLL](https://www.pyxll.com/docs/introduction.md): Step-by-step getting started guide for PyXLL — install the add-in with pip, write your first Python worksheet function, and call it directly from an Excel cell. - [What’s new in PyXLL 5](https://www.pyxll.com/docs/whatsnew.md): Overview of new features and improvements in PyXLL 5, including Excel tables, RTD generators, Polars support, custom task panes, plotting integrations, and the LRU cache. ## User Guide - [User Guide - The Python Add-In for Microsoft Excel](https://www.pyxll.com/docs/userguide/index.md): PyXLL user guide — complete documentation covering installation, configuration, worksheet functions, macros, real-time data, plotting, pandas, ribbon, and more. - [Real Time Data](https://www.pyxll.com/docs/userguide/rtd.md): How to use Real Time Data (RTD) with PyXLL — write streaming Python functions that push live data into Excel using the RTD class, async RTD, and generator functions. - [Using Pandas in Excel](https://www.pyxll.com/docs/userguide/pandas.md): How to use pandas DataFrames with PyXLL — pass DataFrames between Python and Excel as function arguments and return values, including formatting and polars support. - [Customizing the Ribbon](https://www.pyxll.com/docs/userguide/ribbon.md): How to customize the Excel ribbon toolbar using PyXLL — define ribbon buttons, groups, and callbacks in Python using a CustomUI XML file. - [Context Menu Functions](https://www.pyxll.com/docs/userguide/contextmenus.md): How to add Python functions to Excel right-click context menus using PyXLL and the CustomUI ribbon XML schema. - [Working with Tables](https://www.pyxll.com/docs/userguide/tables.md): How to read and write Excel Tables using PyXLL — create, update, and query Excel table objects from Python macros and worksheet functions. - [Python as a VBA Replacement](https://www.pyxll.com/docs/userguide/vba.md): Guide to using Python as a VBA replacement with PyXLL — interact with the Excel Object Model, access workbooks and worksheets, and migrate VBA code to Python. - [Menu Functions](https://www.pyxll.com/docs/userguide/menus.md): How to add custom menu items to Excel using the PyXLL xl_menu decorator — create menus, submenus, and keyboard shortcuts that call Python functions. - [Reloading and Rebinding](https://www.pyxll.com/docs/userguide/reloading.md): How to reload and rebind Python modules in PyXLL without restarting Excel — covers deep reloading, selective reloading, and rebinding worksheet functions. - [Error Handling](https://www.pyxll.com/docs/userguide/errors.md): How to handle errors and exceptions in PyXLL — display error messages in Excel cells, use the log file, and retrieve exception details with get_last_error. - [Deploying your add-in](https://www.pyxll.com/docs/userguide/distribution.md): How to deploy and distribute a PyXLL-based Excel add-in to end users — packaging Python code, managing dependencies, and configuring PyXLL for deployment. - [Workbook Metadata](https://www.pyxll.com/docs/userguide/metadata.md): How PyXLL stores workbook metadata as CustomXMLParts, used by features such as recalc-on-open, saved cached objects, and cell formatting. ### Installing PyXLL - [Installing PyXLL](https://www.pyxll.com/docs/userguide/installation/index.md): How to install the PyXLL Excel add-in using pip and the pyxll command line tool, including first-time setup, Anaconda, and manual installation options. - [First Time Users](https://www.pyxll.com/docs/userguide/installation/firsttime.md): First-time installation guide for PyXLL — redirects to the main Getting Started page with step-by-step setup instructions. - [PyXLL Command Line Tool](https://www.pyxll.com/docs/userguide/installation/cli.md): Reference guide for the PyXLL command line tool — install, update, uninstall, configure, and manage PyXLL Excel add-in versions from the command line. - [Manual Installation](https://www.pyxll.com/docs/userguide/installation/manual.md): How to manually download and install the PyXLL Excel add-in without using the command line tool — for corporate networks or offline environments. - [Using PyXLL with Anaconda](https://www.pyxll.com/docs/userguide/installation/anaconda.md): How to install and use PyXLL with the Anaconda Python distribution — activate a conda environment and configure PyXLL to use it. ### Configuring PyXLL - [Configuring PyXLL](https://www.pyxll.com/docs/userguide/config/index.md): Complete guide to configuring PyXLL using the pyxll.cfg config file — covers the PYXLL, PYTHON, LOG sections and all available settings. - [Python Settings](https://www.pyxll.com/docs/userguide/config/python.md): Reference for the [PYTHON] section of the PyXLL config file — configure the Python executable path, pythonpath, and other Python interpreter settings. - [PyXLL Settings](https://www.pyxll.com/docs/userguide/config/pyxll.md): Reference for the [PYXLL] section of the PyXLL config file — modules list, deep reload, ribbon, entry points, add-in name, and all core PyXLL settings. - [License Key](https://www.pyxll.com/docs/userguide/config/license.md): How to configure a PyXLL license key in the config file — set the key inline or reference a shared license file via the [LICENSE] section. - [Logging](https://www.pyxll.com/docs/userguide/config/logging.md): How to configure PyXLL logging — set the log file path, verbosity level, log rolling, and automatic cleanup using the [LOG] section of pyxll.cfg. - [Warnings](https://www.pyxll.com/docs/userguide/config/warnings.md): How to configure Python warnings in PyXLL — suppress, elevate, or log warnings using the Python warnings module via the pyxll.cfg config file. - [Config Variables](https://www.pyxll.com/docs/userguide/config/variables.md): Reference for PyXLL built-in config substitution variables — use %(date)s, %(pid)s, and other variables to create dynamic log file names and paths. - [Config Functions](https://www.pyxll.com/docs/userguide/config/functions.md): Reference for built-in config functions available in the PyXLL config file, used for variable substitution and dynamic configuration values. - [Environment Variables](https://www.pyxll.com/docs/userguide/config/envvars.md): How to reference environment variables in the PyXLL config file using %(VARNAME)s substitution syntax, including default values for unset variables. - [Startup Script](https://www.pyxll.com/docs/userguide/config/startup.md): How to use a PyXLL startup script to run Python code before modules are loaded — useful for environment setup, path manipulation, and early initialization. - [Menu Ordering](https://www.pyxll.com/docs/userguide/config/menus.md): How to configure menu item ordering in the PyXLL config file — control the sequence of xl_menu items and submenus in the Excel Add-ins menu. - [Shortcuts](https://www.pyxll.com/docs/userguide/config/macros.md): How to configure macro keyboard shortcuts in the PyXLL config file — assign or override Ctrl/Shift/Alt key combinations for xl_macro functions. - [Default Decorator Parameters](https://www.pyxll.com/docs/userguide/config/defaults.md): How to set default parameters for PyXLL decorators (xl_func, xl_macro, xl_menu) in the config file to avoid repeating them on every function. ### Worksheet Functions - [Worksheet Functions](https://www.pyxll.com/docs/userguide/udfs/index.md): User guide for writing Excel worksheet functions (UDFs) in Python using PyXLL — covers argument types, arrays, async, caching, numpy, pandas, and more. - [Introduction](https://www.pyxll.com/docs/userguide/udfs/introduction.md): Introduction to writing Excel worksheet functions in Python with PyXLL — use the xl_func decorator to expose Python functions to Excel cells and the function wizard. - [Argument and Return Types](https://www.pyxll.com/docs/userguide/udfs/argtypes.md): How to specify argument and return types for PyXLL worksheet functions — use type hints, signature strings, xl_arg, and xl_return to control Python-Excel type conversion. - [Cached Objects](https://www.pyxll.com/docs/userguide/udfs/cached-objects.md): How to use PyXLL's object cache to pass Python objects between worksheet functions — return an object handle from one function and pass it as an argument to another. - [Cached Functions](https://www.pyxll.com/docs/userguide/udfs/lrucache.md): How to use the PyXLL LRU cache to avoid recalculating expensive worksheet functions when their inputs haven't changed — configure per-function cache sizes. - [Array Functions](https://www.pyxll.com/docs/userguide/udfs/arrayfuncs.md): How to write array functions with PyXLL — return multiple values to a range of Excel cells from a Python worksheet function using dynamic or CSE arrays. - [NumPy Array Types](https://www.pyxll.com/docs/userguide/udfs/numpy.md): How to use NumPy arrays as argument and return types in PyXLL worksheet functions — pass 1D and 2D arrays between Excel ranges and Python numpy arrays. - [Pandas Types](https://www.pyxll.com/docs/userguide/udfs/pandas.md): How to use pandas DataFrames and Series as argument and return types in PyXLL worksheet functions — includes index handling and type hint syntax. - [Polars DataFrames](https://www.pyxll.com/docs/userguide/udfs/polars.md): How to use Polars DataFrames as argument and return types in PyXLL worksheet functions — similar to pandas but using the polars.dataframe type annotation. - [Asynchronous Functions](https://www.pyxll.com/docs/userguide/udfs/asyncfuncs.md): How to write asynchronous worksheet functions in Python with PyXLL — use async/await to run long-running calculations without blocking Excel. - [Function Documentation](https://www.pyxll.com/docs/userguide/udfs/funchelp.md): How to add documentation and help text to PyXLL worksheet functions — write docstrings and provide help topic links that appear in the Excel function wizard. - [Variable and Keyword Arguments](https://www.pyxll.com/docs/userguide/udfs/varargs.md): How to use variable (*args) and keyword (**kwargs) arguments in PyXLL worksheet functions to accept a flexible number of Excel cell inputs. - [Recalculating On Open](https://www.pyxll.com/docs/userguide/udfs/recalc-on-open.md): How to configure PyXLL worksheet functions to automatically recalculate when a workbook is opened, without making them fully volatile. - [Recalculating On Reload](https://www.pyxll.com/docs/userguide/udfs/recalc-on-reload.md): How to configure PyXLL worksheet functions to automatically recalculate when the PyXLL add-in is reloaded, useful during development. - [Interrupting Functions](https://www.pyxll.com/docs/userguide/udfs/allowabort.md): How to allow users to interrupt long-running PyXLL worksheet functions by pressing Escape — use the allow_abort parameter to raise a KeyboardInterrupt. ### Macro Functions - [Macro Functions](https://www.pyxll.com/docs/userguide/macros/index.md): User guide for writing Excel macro functions (Subs) in Python with PyXLL — covers xl_macro, accessing worksheet data, keyboard shortcuts, and calling macros from Excel. - [Introduction](https://www.pyxll.com/docs/userguide/macros/introduction.md): Introduction to writing Excel macros in Python with PyXLL — use xl_macro to create Python functions callable from Excel controls, VBA, and the Excel Object Model. - [Calling Macros From Excel](https://www.pyxll.com/docs/userguide/macros/calling-macros.md): How to call PyXLL Python macros from Excel — via ribbon buttons, keyboard shortcuts, VBA, context menus, and the Excel macro dialog. - [Accessing Worksheet Data](https://www.pyxll.com/docs/userguide/macros/accessing-data.md): How to read and write Excel worksheet data from PyXLL macro functions using the Excel Object Model, XLCell, and win32com or comtypes. - [Passing Python Objects](https://www.pyxll.com/docs/userguide/macros/cached-objects.md): How to pass Python objects between PyXLL macro functions using transient cached objects — useful when calling Python macros from VBA during a migration. - [Pausing Automatic Recalculation](https://www.pyxll.com/docs/userguide/macros/pausing-calcs.md): How to temporarily disable Excel screen updating and automatic recalculation during PyXLL macro functions using xl_disable to improve performance. - [Keyboard Shortcuts](https://www.pyxll.com/docs/userguide/macros/shortcuts.md): How to assign keyboard shortcuts to PyXLL macro functions using the shortcut parameter in the xl_macro decorator or via the config file. ### Using Type Hints - [Using Type Hints](https://www.pyxll.com/docs/userguide/typehints/index.md): How to use Python type hints with PyXLL to specify argument and return types for worksheet functions and macros — a more natural alternative to signature strings. ### Cell Formatting - [Cell Formatting](https://www.pyxll.com/docs/userguide/formatting/index.md): How to apply cell formatting to Excel values returned by PyXLL worksheet functions and macros using Formatter, DataFrameFormatter, and custom formatters. - [Formatting Worksheet Functions](https://www.pyxll.com/docs/userguide/formatting/udfformatters.md): How to apply cell formatting to PyXLL worksheet function results using the Formatter class and the formatter parameter of xl_func. - [Pandas DataFrame Formatting](https://www.pyxll.com/docs/userguide/formatting/pandasformatters.md): How to use PyXLL's DataFrameFormatter to style pandas DataFrames returned from Excel worksheet functions — apply colors, borders, and conditional formatting. - [Custom Formatters](https://www.pyxll.com/docs/userguide/formatting/customformatters.md): How to create custom PyXLL cell formatters by subclassing Formatter — apply any Excel cell style, color, or format to worksheet function results. - [Formatting in Macros Functions](https://www.pyxll.com/docs/userguide/formatting/macroformatters.md): How to apply cell formatting from PyXLL macro functions using XLCell.value with a Formatter or DataFrameFormatter option. ### Charts and Plotting - [Charts and Plotting](https://www.pyxll.com/docs/userguide/plotting/index.md): How to display Python charts and plots in Excel using PyXLL — supports matplotlib, plotly, bokeh, altair, seaborn, and custom plotting bridges. - [Matplotlib](https://www.pyxll.com/docs/userguide/plotting/matplotlib.md): How to display matplotlib charts in Excel using PyXLL — embed figures, pyplot plots, and subplots directly in Excel workbooks from Python. - [Plotting with Pandas](https://www.pyxll.com/docs/userguide/plotting/pandas.md): How to display pandas DataFrame plots in Excel using PyXLL — use pandas plotting methods (built on matplotlib) and embed the resulting figures in workbooks. - [Plotly](https://www.pyxll.com/docs/userguide/plotting/plotly.md): How to display interactive Plotly charts in Excel using PyXLL — embed Plotly figures as interactive web controls or static images in Excel workbooks. - [Seaborn](https://www.pyxll.com/docs/userguide/plotting/seaborn.md): How to display Seaborn statistical charts in Excel using PyXLL — Seaborn builds on matplotlib and works with PyXLL's plot function to embed figures in workbooks. - [Bokeh](https://www.pyxll.com/docs/userguide/plotting/bokeh.md): How to display interactive Bokeh charts in Excel using PyXLL — embed Bokeh figures as interactive web controls or static images in Excel workbooks. - [Altair](https://www.pyxll.com/docs/userguide/plotting/altair.md): How to display Altair charts in Excel using PyXLL — embed Altair/Vega-Lite figures as interactive web controls or static images in Excel workbooks. - [Other Plotting Packages](https://www.pyxll.com/docs/userguide/plotting/others.md): How to use other Python plotting packages with PyXLL by implementing a custom PlotBridgeBase class to export chart images into Excel. ### Excel Application Events - [Excel Application Events](https://www.pyxll.com/docs/userguide/events/index.md): How to handle Excel Application events in Python using PyXLL's xl_event decorator — register handlers for workbook open/close, worksheet change, and other Excel events. ### Custom Task Panes - [Custom Task Panes](https://www.pyxll.com/docs/userguide/ctps/index.md): How to create custom task panes in Excel using PyXLL — embed Python UI controls (Qt, tkinter, wxPython) as dockable panels in the Excel interface. - [PySide and PyQt](https://www.pyxll.com/docs/userguide/ctps/qt.md): How to use PySide2, PySide6, PyQt5, or PyQt6 Qt widgets as PyXLL custom task panes embedded in the Excel interface. - [wxPython](https://www.pyxll.com/docs/userguide/ctps/wxpython.md): How to use wxPython (wxWindows) widgets as PyXLL custom task panes embedded in the Excel interface. - [Tkinter](https://www.pyxll.com/docs/userguide/ctps/tkinter.md): How to use tkinter Toplevel widgets as PyXLL custom task panes embedded in the Excel interface — no extra packages required as tkinter ships with Python. - [Other UI Toolkits](https://www.pyxll.com/docs/userguide/ctps/others.md): How to use other Python UI toolkits as PyXLL custom task panes by implementing a custom CTPBridgeBase class. ### ActiveX Controls - [ActiveX Controls](https://www.pyxll.com/docs/userguide/activex/index.md): How to embed Python UI controls as ActiveX controls directly in Excel worksheets using PyXLL — create interactive dashboard controls with Qt, tkinter, or wxPython. - [PySide and PyQt](https://www.pyxll.com/docs/userguide/activex/qt.md): How to embed PySide or PyQt Qt widgets as ActiveX controls directly in Excel worksheets using PyXLL. - [wxPython](https://www.pyxll.com/docs/userguide/activex/wxpython.md): How to embed wxPython (wxWindows) widgets as ActiveX controls directly in Excel worksheets using PyXLL. - [Tkinter](https://www.pyxll.com/docs/userguide/activex/tkinter.md): How to embed tkinter widgets as ActiveX controls directly in Excel worksheets using PyXLL — tkinter is included with Python and requires no extra packages. - [Other UI Toolkits](https://www.pyxll.com/docs/userguide/activex/others.md): How to embed other Python UI toolkits as ActiveX controls in Excel worksheets using PyXLL by implementing a custom AtxBridgeBase class. ## Video Guides and Tutorials - [Video Guides and Tutorials](https://www.pyxll.com/docs/videos/index.md): Video tutorials and guides for PyXLL — step-by-step screencasts covering installation, worksheet functions, real-time data, plotting, deployment, and more. - [Installing the PyXLL Add-in](https://www.pyxll.com/docs/videos/installing-pyxll.md): Video tutorial on installing the PyXLL Excel add-in using pip and the pyxll command line tool — a step-by-step walkthrough of the installation process. - [Writing Excel Functions in Python](https://www.pyxll.com/docs/videos/worksheet-functions.md): Video tutorial on writing Excel worksheet functions (UDFs) in Python using PyXLL — expose Python functions to Excel cells with the xl_func decorator. - [Jupyter Notebooks in Excel](https://www.pyxll.com/docs/videos/pyxll-jupyter.md): Video tutorial on using Jupyter Notebooks inside Excel with PyXLL — run an interactive Python kernel connected to Excel for exploratory data analysis. - [Debugging Python in Excel](https://www.pyxll.com/docs/videos/debugging.md): Video tutorial on debugging Python code running in Excel with PyXLL — use VS Code, PyCharm, or other debuggers to step through worksheet functions and macros. - [Working with Tables](https://www.pyxll.com/docs/videos/tables.md): Video tutorial on reading and writing Excel Tables using PyXLL — create, update, and query Excel table objects from Python macro and worksheet functions. - [Long Running Functions](https://www.pyxll.com/docs/videos/long-running-functions.md): Video tutorial on handling long-running Python functions in Excel with PyXLL — use async functions and RTD to keep Excel responsive during slow calculations. - [Monte Carlo Simulations](https://www.pyxll.com/docs/videos/montecarlo.md): Video tutorial on running Monte Carlo simulations in Excel using PyXLL — perform statistical simulations in Python and return results to Excel worksheet cells. - [Cell Formatting](https://www.pyxll.com/docs/videos/cell-formatting.md): Video tutorial on applying cell formatting in Excel using PyXLL — learn how to style cells returned from Python worksheet functions with colors, fonts, and borders. - [RTD Array Functions](https://www.pyxll.com/docs/videos/rtd-arrays.md): Video tutorial on streaming real-time array data into Excel using PyXLL's RTD features — multiple approaches to pushing live data into cell ranges. - [DOOM in Excel](https://www.pyxll.com/docs/videos/doom.md): Demonstration of running DOOM in Excel using PyXLL's real-time data (RTD) and cell formatting features — a showcase of PyXLL's capabilities. - [NLP VLOOKUP using Scikit Learn](https://www.pyxll.com/docs/videos/nlp-vlookup.md): Video tutorial on building an NLP-powered VLOOKUP in Excel using PyXLL and scikit-learn — match values using natural language processing techniques. - [Deploying your PyXLL Add-in](https://www.pyxll.com/docs/videos/deployment.md): Video tutorial on deploying and distributing a PyXLL add-in to other users within an organization — packaging Python code and the PyXLL add-in for end users. ## API Reference - [API Reference](https://www.pyxll.com/docs/api/index.md): Complete Python API reference for PyXLL, covering decorators, functions, classes, and types for building Excel add-ins with Python. - [Worksheet Functions](https://www.pyxll.com/docs/api/udfs.md): API reference for PyXLL worksheet function decorators and classes, including xl_func, xl_arg, xl_return, xl_arg_type, and xl_return_type. - [Real Time Data](https://www.pyxll.com/docs/api/rtd.md): API reference for PyXLL real-time data (RTD) classes including RTD, RTDAsync, and rtd_func, used to stream live data into Excel from Python. - [Macro Functions](https://www.pyxll.com/docs/api/macros.md): API reference for PyXLL macro decorators including xl_macro, used to expose Python functions to Excel as macro subroutines callable from VBA, controls, or keyboard shortcuts. - [Type Conversion](https://www.pyxll.com/docs/api/types.md): API reference for PyXLL type conversion functions and decorators, including xl_arg_type, xl_return_type, and get_type_converter for custom Python-to-Excel type mapping. - [Ribbon Functions](https://www.pyxll.com/docs/api/ribbonfuncs.md): API reference for PyXLL ribbon functions used to load images and manipulate the Excel ribbon toolbar from Python code. - [Menu Functions](https://www.pyxll.com/docs/api/menus.md): API reference for the PyXLL xl_menu decorator, used to add Python functions as items in the Excel Add-ins menu. - [Plotting](https://www.pyxll.com/docs/api/plotting.md): API reference for PyXLL plotting functions, including the plot() function used to embed matplotlib, plotly, bokeh, and altair charts into Excel from Python. - [Custom Task Panes](https://www.pyxll.com/docs/api/ctps.md): API reference for PyXLL custom task pane functions including create_ctp, used to embed Python UI widgets (tkinter, Qt, wxPython) as dockable Excel panes. - [ActiveX Controls](https://www.pyxll.com/docs/api/activex.md): API reference for PyXLL ActiveX control functions including create_activex_control, used to embed Python UI widgets as ActiveX controls directly in Excel worksheets. - [Cell Formatting](https://www.pyxll.com/docs/api/formatting.md): API reference for PyXLL cell formatting classes including Formatter, DataFrameFormatter, and CustomFormatter for styling Excel cells returned from Python functions. - [Tables](https://www.pyxll.com/docs/api/tables.md): API reference for PyXLL Excel table classes including Table and TableBase, used to read and write Excel tables from Python macros and worksheet functions. - [Errors and Exceptions](https://www.pyxll.com/docs/api/errors.md): API reference for PyXLL error and exception handling functions, including get_last_error and error propagation utilities for Excel worksheet functions. - [Utility Functions](https://www.pyxll.com/docs/api/utils.md): API reference for PyXLL utility functions including schedule_call, xl_app, get_config, and xl_version for working with Excel from Python code. - [LRU Cache](https://www.pyxll.com/docs/api/lrucache.md): API reference for PyXLL's LRU (Least Recently Used) cache functions, used to avoid redundant recalculation of expensive worksheet functions when inputs haven't changed. - [Excel Application Events](https://www.pyxll.com/docs/api/xlevents.md): API reference for PyXLL Excel Application event decorators (xl_event), used to register Python handlers for workbook, worksheet, and application-level Excel events. - [PyXLL Add-in Events](https://www.pyxll.com/docs/api/eventhandlers.md): API reference for PyXLL add-in lifecycle event decorators including xl_on_open and xl_on_reload, used to run Python code when PyXLL starts or reloads modules. - [Excel C API Functions](https://www.pyxll.com/docs/api/capifunctions.md): API reference for Excel C API functions exposed by PyXLL, including xlfCaller, xlfEvaluate, and other low-level functions for advanced worksheet and macro operations. ## Changelog - [PyXLL 5 Changelog](https://www.pyxll.com/changelog/index.md) - [PyXLL 1 Changelog](https://www.pyxll.com/changelog/v1.md) - [PyXLL 2 Changelog](https://www.pyxll.com/changelog/v2.md) - [PyXLL 3 Changelog](https://www.pyxll.com/changelog/v3.md) - [PyXLL 4 Changelog](https://www.pyxll.com/changelog/v4.md)