What is PyXLL?

PyXLL is an Excel add-in that enables you to extend Excel using nothing but Python code.

Why Python?

Python is a modern dynamic language with great support for scientific computing and data analysis.

Using Python you will be able to solve complex problems faster and in a way that is more easily maintainable than with VBA.

What can PyXLL do?

Enable you to write fully-featured Excel add-ins easily that call your Python code from Excel.

What version of Python do I have to use?

You can choose from virtually any Python distribution you like. There’s no need to change from what you’re already using, whether it’s Enthought Canopy, Continuum Anaconda or any other CPython distribution.

All Python versions from Python 2.3 to Python 3.6 are supported (both 32 and 64 bit).

If you are new to Python and starting from scratch we recommend Enthought Canopy.

Which versions of Excel are supported?

All versions of Excel for Windows are supported from Excel 2003 to Excel 2016 (including Excel installed as part of Office 365).

Both 32 and 64 bit installations of Office for Windows are supported.

PyXLL is not available for Mac OS X.

Webinars: See PyXLL in Action

Deploying Python to Excel with PyXLL

See how PyXLL makes it easy to write Excel add-ins to leverage the capabilities of Python and the simplicity of the presentation of Excel.

Supercharging Excel Analytics with Python

See how PyXLL helps solve data analysis challenges with advanced Python tools and analytic engines.

Why PyXLL?

  • Increase productivity by using a modern dynamic language
  • Python is embedded in Excel in-process for the best possible performance
  • Leverage your existing Python code base
  • Reduce risk by storing code in your version control system instead of embedded in Excel files
  • Deploy changes more easily as the PyXLL addin just references your Python modules from the filesystem
  • Reduce coding iteration cycles by removing the compile-and-restart step usually associated with other addins
  • No COM registration or boilerplate VBA code required
  • Get better performance using numpy, scipy, pandas and your own optimized cPython modules


  • Write Excel worksheet functions, macros and menu items in Python
  • Customize the Excel Ribbon
  • Reload and test without restarting Excel
  • Functions are automatically included in the Excel Function Wizard with their python docstrings
  • Asynchronous functions in Excel 2010 and 2013
  • Stream real time data from Python into Excel
  • Thread-safe functions run across multiple threads from Excel 2010 onwards
  • Built-in support for numpy datatypes
  • Customizable type system for handling non-standard datatypes
  • Use win32com or comtypes for calling back into Excel from PyXLL modules and for Excel event handling
  • Stubs pyxll module provided to allow PyXLL code to be used outside of Excel (for unit testing etc.)
  • Compatible with cPython modules compiled with SWIG, Boost, Cython etc.
  • Support for large array types from Excel 2007 onwards
  • Unicode support from Excel 2007 onwards