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
New to PyXLL?
Existing PyXLL Users
Need Help?
Introduction to PyXLL
What is PyXLL?
How does it work?
How does PyXLL compare with other packages?
Before You Start
Next Steps
Install PyXLL
Calling a Python Function in Excel
Additional Resources
User Guide
Installing PyXLL
First Time Users
PyXLL Command Line Tool
Manual Installation
Using PyXLL with Anaconda
Configuring PyXLL
Python Settings
PyXLL Settings
License Key
Logging
Warnings
Configuration Variables
Environment Variables
Startup Script
Menu Ordering
Shortcuts
Worksheet Functions
Introduction
Argument and Return Types
Cached Objects
Array Functions
NumPy Array Types
Pandas Types
Polars DataFrames
Asynchronous Functions
Function Documentation
Variable and Keyword Arguments
Recalculating On Open
Interrupting Functions
Macro Functions
Introduction
Exposing Functions as Macros
Calling Macros From Excel
Calling Excel from Python
Reading Excel Values from Python
Writing Python Values to Excel
Pausing Screen Updates and Automatic Calculation
Keyboard Shortcuts
Real Time Data
Introduction
RTD Generators
Using the RTD Class
RTD Data Types
Restarting RTD Functions
Throttle Interval
Starting RTD Functions Automatically
Cell Formatting
Formatting Worksheet Functions
Pandas DataFrame Formatting
Custom Formatters
Formatting in Macros Functions
Charts and Plotting
Matplotlib
Pandas
Plotly
Seaborn
Bokeh
Altair
Others
Plotting from Worksheet Functions
Plotting from Menus, Macros and Elsewhere
Moving and Resizing
Custom Task Panes
PySide and PyQt
wxPython
Tkinter
Other UI Toolkits
ActiveX Controls
PySide and PyQt
wxPython
Tkinter
Other UI Toolkits
Resizing ActiveX Controls
Other Considerations
Using Pandas in Excel
Returning a DataFrame from a Function
Taking a DataFrame as a Function Argument
Returning Multiple DataFrames
Formatting DataFrames
Plotting DataFrames
Reading and Writing DataFrames in Macros
Passing as Python objects instead of Excel arrays
Pandas Series
Advanced usage of the Pandas type converters
Customizing the Ribbon
Introduction
Creating a Custom Tab
Action Functions
Using Images
Modifying the Ribbon
Merging Ribbon Files
Context Menu Functions
Introduction
Adding a Python Function to the Context Menu
Creating Sub-Menus
Dynamic Menus
References
Working with Tables
Writing a Table
Reading a Table
Updating a Table
Tables and Worksheet Functions
Advanced Features
Python as a VBA Replacement
The Excel Object Model
Accessing the Excel Object Model in Python
Differences between VBA and Python
Enums and Constant Values
Excel and Threading
Notes on Debugging
Menu Functions
Custom Menu Items
New Menus
Sub-Menus
Reloading and Rebinding
Introduction
How to Reload PyXLL
Deep Reloading
Rebinding
Error Handling
Introduction
Standard Error Handlers
Custom Error Handlers
Deploying your add-in
Sharing everything on a network drive
Using a standalone zip file
Building an installer
Using a common pyxll.cfg file
Using a startup script to install and update Python code
Deploying the Python Environment
Adding the PyXLL add-in to Excel
Setuptools Entry Points
Workbook Metadata
Video Guides and Tutorials
Installing the PyXLL Add-in
The Easy Way to Install PyXLL
Manually Installing PyXLL
Writing Excel Functions in Python
Jupyter Notebooks in Excel
Jupyter Notebook
JupyterLab
Debugging Python in Excel
Debugging with VS Code
Debugging with PyCharm
Working with Tables
Monte Carlo Simulations
Cell Formatting
RTD Array Functions
DOOM in Excel
NLP VLOOKUP using Scikit Learn
Deploying your PyXLL Add-in
API Reference
Worksheet Functions
@xl_func
XLAsyncHandle
Real Time Data
RTD
IterRTD
AsyncIterRTD
Macro Functions
@xl_macro
xl_app
xl_disable
XLCell
XLRect
Type Conversion
get_type_converter
@xl_arg
@xl_return
@xl_arg_type
@xl_return_type
Ribbon Functions
load_image
get_ribbon_xml
set_ribbon_xml
set_ribbon_tab
remove_ribbon_tab
IRibbonControl
IRibbonUI
Menu Functions
@xl_menu
Plotting
plot
PlotBridgeBase
Custom Task Panes
create_ctp
CustomTaskPane
CTPBridgeBase
ActiveX Controls
create_activex_control
ActiveXHost
AtxBridgeBase
Creating an ActiveX Control from a Worksheet Function
Cell Formatting
Formatter
DataFrameFormatter
DateFormatter
ConditionalFormatter
ConditionalFormatterBase
Tables
Table
TableBase
Errors and Exceptions
get_last_error
ErrorContext
ObjectCacheKeyError
SpillError
Utility Functions
schedule_call
reload
rebind
xl_version
get_config
get_dialog_type
cached_object_count
get_event_loop
Event Handlers
@xl_on_open
@xl_on_reload
@xl_on_close
@xl_license_notifier
Excel C API Functions
xlfCaller
xlfSheetId
xlfGetWorkspace
xlfGetWorkbook
xlfGetWindow
xlfWindows
xlfVolatile
xlcAlert
xlcCalculation
xlcCalculateNow
xlcCalculateDocument
xlAsyncReturn
xlAbort
xlSheetNm
xlfGetDocument
What’s new in PyXLL 5
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
Changelog
PyXLL 5.9
PyXLL 5.9.2 (2024-12-02)
PyXLL 5.9.1 (2024-09-24)
PyXLL 5.9.0 (2024-09-16)
PyXLL 5.8
PyXLL 5.8.4 (2024-07-16)
PyXLL 5.8.3 (2024-07-10)
PyXLL 5.8.2 (2024-06-10)
PyXLL 5.8.1 (2024-05-13)
PyXLL 5.8.0 (2024-02-22)
PyXLL 5.7
PyXLL 5.7.1 (2023-11-15)
PyXLL 5.7.0 (2023-10-02)
PyXLL 5.6
PyXLL 5.6.5 (2023-08-15)
PyXLL 5.6.4 (2023-06-25)
PyXLL 5.6.3 (2023-05-24)
PyXLL 5.6.2 (2023-05-17)
PyXLL 5.6.1 (2023-05-03)
PyXLL 5.6.0 (2023-04-17)
PyXLL 5.5
PyXLL 5.5.4 (2022-12-23)
PyXLL 5.5.3 (2022-11-29)
PyXLL 5.5.2 (2022-11-22)
PyXLL 5.5.1 (2022-10-31)
PyXLL 5.5.0 (2022-10-24)
PyXLL 5.4
PyXLL 5.4.5 (2022-10-18)
PyXLL 5.4.4 (2022-08-15)
PyXLL 5.4.3 (2022-07-22)
PyXLL 5.4.2 (2022-05-23)
PyXLL 5.4.1 (2022-03-25)
PyXLL 5.4.0 (2022-02-18)
PyXLL 5.3
PyXLL 5.3.1 (2021-12-15)
PyXLL 5.3.0 (2021-10-07)
PyXLL 5.2
PyXLL 5.2.5 (2021-09-01)
PyXLL 5.2.4 (2021-08-31)
PyXLL 5.2.3 (2021-08-16)
PyXLL 5.2.2 (2021-08-09)
PyXLL 5.2.1 (2021-08-04)
PyXLL 5.2.0 (2021-07-27)
PyXLL 5.1
PyXLL 5.1.1 (2021-04-29)
PyXLL 5.1.0 (2021-03-24)
PyXLL 5.0
PyXLL 5.0.9 (2021-02-07)
PyXLL 5.0.8 (2021-01-11)
PyXLL 5.0.7 (2021-01-04)
PyXLL 5.0.6 (2020-12-17)
PyXLL 5.0.5 (2020-11-30)
PyXLL 5.0.4 (2020-11-19)
PyXLL 5.0.3 (2020-11-11)
PyXLL 5.0.2 (2020-11-10)
PyXLL 5.0.1 (2020-11-04)
PyXLL 5.0.0 (2020-11-01)
PyXLL Documentation »