xlwings
Make Excel fly: Interact with Excel from Python and vice versa.
Decision gist · record as of 2026-08-14
Yes. xlwings is actively maintained, has low install friction, carries a permissive BSD license, and solves a real problem—bridging Excel and Python without VBA. It's in the top 5000 PyPI packages by downloads. Install it if you need to automate Excel from Python or replace VBA macros; skip it only if you don't use Excel or prefer server-based alternatives.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires an Excel installation (Windows or macOS); pywin32 on Windows requires Visual C++ build tools or a pre-built wheel.
- Low install friction with a pure-wheel distribution.
- Active maintenance—released 4 days ago with a commit history through 2026-08-14.
License · maintenance · safety
BSD 3-clause (permissive) — BSD 3-clause permissive license on the open-source package. The PRO tier is dual-licensed under PolyForm Noncommercial (free for noncommercial use) or a commercial license requiring a paid plan; this package is the open-source base without PRO features.
last release 2026-08-10 (4 days) · last repo commit 2026-08-14 · 3,395 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 990,223 downloads/mo, #4,563 on PyPI
Alternatives
Verify before relying
pip install xlwings
import xlwings as xw
wb = xw.Book('myfile.xlsx')
ws = wb.sheets[0]
ws['A1'].value = 'Hello from Python'- Whether numpy and pandas integration works out-of-the-box or requires those packages to be installed separately.
- Whether UDF support (Windows-only per description) is included in this open-source version or requires PRO.
- Specific macOS and Windows version compatibility beyond Python 3.9+.
What it is and what it does
xlwings is a Python library that bridges Excel and Python, letting you automate Excel workbooks from Python scripts and replace VBA macros with Python code. It provides a syntax close to VBA for reading, writing, and manipulating Excel objects, and supports numpy arrays and pandas DataFrames natively for data exchange. The open-source version (this package) includes scripting, macro replacement, and UDF support on Windows; it works on Windows and macOS and requires a local Excel installation.
The package has been maintained since 2014 and is actively developed. It depends on pywin32 for Windows integration, psutil for system utilities, and appscript for macOS support. The PRO tier adds server-based deployment, template-based reporting, and faster Excel reading, but those features are not included in this open-source distribution.
Use it for
- Automate repetitive Excel tasks—opening workbooks, populating cells, running calculations—from Python without writing VBA.
- Replace legacy VBA macros with Python code for better maintainability, testing, and version control.
- Build Python-based user-defined functions (UDFs) for Excel on Windows, letting spreadsheet users call Python logic directly from cells.
- Exchange data between Python and Excel—read pandas DataFrames from workbooks or write analysis results back to spreadsheets.
- Integrate Excel into Python data pipelines, treating workbooks as data sources or outputs in a larger automation workflow.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
xlwings is actively maintained, has low install friction, carries a permissive BSD license, and solves a real problem—bridging Excel and Python without VBA. It's in the top 5000 PyPI packages by downloads. Install it if you need to automate Excel from Python or replace VBA macros; skip it only if you don't use Excel or prefer server-based alternatives.
Install
xlwings on PyPI
Before you install
Low install friction with a pure-wheel distribution. Active maintenance—released 4 days ago with a commit history through 2026-08-14. Depends on pywin32, psutil, and appscript, which are standard system-integration libraries.
Requires an Excel installation (Windows or macOS); pywin32 on Windows requires Visual C++ build tools or a pre-built wheel.
License in practice
BSD 3-clause permissive license on the open-source package. The PRO tier is dual-licensed under PolyForm Noncommercial (free for noncommercial use) or a commercial license requiring a paid plan; this package is the open-source base without PRO features.
Quickstart
pip install xlwings
import xlwings as xw
wb = xw.Book('myfile.xlsx')
ws = wb.sheets[0]
ws['A1'].value = 'Hello from Python'
Verify before relying
- Whether numpy and pandas integration works out-of-the-box or requires those packages to be installed separately.
- Whether UDF support (Windows-only per description) is included in this open-source version or requires PRO.
- Specific macOS and Windows version compatibility beyond Python 3.9+.
Package facts
| License | BSD 3-clause permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagespywin32psutilappscript |
| Maintenance | Actively maintained 4 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 990,223 / month, #4,563 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Topic :: Office/Business :: Financial :: Spreadsheet |
Evidence: xlwings-0.36.14-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “call python from excel”
- xlwingsxlwings lets you call Python from Excel and vice versa, automating…
- fastexcelReads Excel files (.xlsx, .xls) into Python with zero-copy data…
- textractExtracts text from documents in multiple formats (PDF, Word,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Spreadsheet packages
gspread provides a Python interface to read, write, format, and manage Google Sheets via the Google Sheets API v4, supporting operations like opening spreadsheets by title or URL, updating cell ranges, and controlling sharing permissions.
Install it if you need to read, write, or manage Google Sheets programmatically.
Streamlit transforms Python scripts into interactive web applications with minimal code, enabling rapid development of data dashboards, reports, and chat interfaces without requiring web development expertise.
Generates Microsoft Excel 97–2003 XLS spreadsheet files from Python code with no external dependencies.
Dash is a Python framework for building interactive web applications with reactive UI elements like dropdowns and graphs tied directly to analytical code, using Flask and Plotly for rendering.
Install it if you need to turn analytical Python code into interactive dashboards or data apps.
Provides elementary financial functions (IRR, NPV, PMT, and others) that were deprecated and removed from NumPy, offering a dedicated replacement for financial calculations.
However, given the aging status (no releases since 2019) and unclear compatibility with modern Python and recent numpy versions, verify that it works with your target…
Converts between Google Sheets worksheets and pandas DataFrames, allowing bidirectional data transfer via the gspread library.
However, verify compatibility with your specific gspread and pandas versions, and be aware that the last release was 793 days ago—consider this if you need active bug…
See also excelrd · formulas · xlcalculator · openpyxl · xlrd3 · xlsxwriter · spire-xls · pycel · xlrd