Python in Excel Done Right

Latest xlwings release: v0.30.16

xlwings is a modern and privacy-first spreadsheet programming package with a beautiful API.

  • Privacy-first: Python can be installed locally or on on your self-hosted server for easy deployment.
  • Cross-platform: Supports Excel on Windows, macOS, and on the Web. xlwings Reader and xlwings Server run everywhere where Python runs, including Linux, Docker, Kubernetes, and WSL.
  • Custom functions ("UDFs"): Write Excel custom functions in Python (also known as user-defined functions "UDFs").
  • Scripts: Run Python scripts to automate Excel, often used for reporting purposes.
  • Macros: Click a button to run tasks like Monte Carlo simulations, utilizing AI, or performing basic actions such as inserting a new sheet.
  • Modern add-ins: Create ribbon and task pane add-ins, deployable via Excel's add-in store (yes, VBA add-ins are also supported).
  • File reader: Read workbooks multiple times faster than via pandas.read_excel (no Excel installation required).
  • Reporting: Use Jinja2 templates in Excel to give your business users super powers.
  • Run in your environment: Use every Python package (including your own) in the exact version you need.
  • Deploy everywhere: Install on your laptop or deploy to your favorite cloud (AWS, GCP, Azure, Digital Ocean, etc.). Rather use a self-managed VM or Kubernetes behind your firewall? That's supported too.
  • Authentication/Authorization: Leverage Excel's single sign-on (SSO) and Azure AD for secure, role-based access control (RBAC).
  • Source code protection: Storing the Python code on your self-hosted server will make 100% sure that no end-user will be able to read your source code.
  • Enterprise security: Unlike any other solution, xlwings won't require you to store any secrets such as database or API credentials on the user's computer.
  • Excel versions: xlwings is compatible with Excel as part of a Microsoft 365 subscription as well as with one-time purchase versions like Office 2016 or Office 2021.
  • Cross-vendor: Also supports Google Sheets (macros and add-ins).
  • Developer-friendly: Track your Python code with Git and use a CI/CD workflow (GitHub actions or any other platform) for unit tests and server deployment.
  • Open core: xlwings is Open Source and free (BSD 3-clause license). The xlwings PRO functionality is source-available and free for non-commercial use.

What Our Users Say

Jolanda Stadelmann
quote

We use xlwings to automate the data feeds of one of our analytical spreadsheet tools, which saves us 1–2 days of tedious manual work every month. Data sources include REST APIs, CSV files via SFTP, and web scraping.

Jolanda Stadelmann, Founding Partner, zCapital

Adam Wood, CFA
quote

xlwings has saved me hundreds of hours in my current role. I replaced the VBA reporting with it and instead of taking 20–30 hours a month I can get the reports run in 6–7 hours.

Adam Wood, CFA, Analyst at a large U.S. custody bank

Get the O'Reilly Book

The book introduces you to:
Python, pandas, OpenPyXL, XlsxWriter, pyxlsb, xlrd, xlwt, xlutils, and xlwings as well as Jupyter notebooks and Visual Studio Code. It is available in English, French, Trad. Chinese, Simpl. Chinese, Korean, Serbian, Polish, and German.

You're in good company

INTERACTION / AUTOMATION

Leverage Python's scientific stack for interactive data analysis using Jupyter Notebooks, NumPy, Pandas, scikit-learn etc. Or use xlwings to automate Excel reports with Python (Windows & Mac).

MACROS AND EXCEL TOOLS

Write Excel tools with Python instead of VBA and call your code directly from within Excel, e.g. via a button on the sheet. This also works great for prototyping web apps (Windows & Mac).

USER DEFINED FUNCTIONS

Write (array) UDFs in a breeze by taking advantage of all the functionality already available in libraries like NumPy and Pandas. Since v0.10, dynamic array formulas are supported (Windows only).

REST API

Expose your workbooks via REST API and access them from other computers in your corporate intranet or over the web. See the REST API docs.

xlwings Newsletter

Everything about xlwings and Python in Excel