wolfxl

Excel automation at Rust speed, wearing openpyxl's API

Edit complex Excel workbooks without rebuilding the entire file.

Keep your openpyxl-style code. WolfXL patches supported changes into existing .xlsx and .xlsm workbooks, recalculates supported formulas locally, and writes multi-sheet workbooks up to 17.2x faster than openpyxl, without requiring Microsoft Excel.

Built for Microsoft Excel.xlsx / .xlsmopenpyxl-compatible API
  • MIT Community edition
  • No Excel or COM dependency
  • No runtime telemetry
  • Published compatibility boundaries
pip install wolfxl

Community is MIT-licensed and free on PyPI. Commercial adds native recalculation, render output, format conversion, VBA and Power Query operations, and the production operations SDK.

Benchmarks: WolfXL 2.1.0 vs openpyxl 3.1.5, clean-source release-artifact benchmark rerun dated 2026-08-16. See the benchmark methodology, compatibility matrix, and limitations for exact scope.

migrate.py
-import openpyxl+import wolfxl as openpyxl# existing supported-surface code runs unchangedwb = openpyxl.load_workbook("report.xlsx")
vs openpyxl 3.1.5release-artifact benchmark
Bulk reads
up to 15.0x
faster
Bulk writes
up to 17.2x
faster
2-cell modify + save
0.60s
vs 9.36s in openpyxl

Why teams switch

One engine for the workbook you already have.

Preserve the workbook

Modify mode patches supported changes into the existing package instead of rewriting it, so charts, pivot tables, VBA, and other parts you did not touch stay intact in supported workflows.

Keep your Python code

Existing code on the supported openpyxl surface runs unchanged. Update one import line, or install the runtime alias at startup.

Move faster

The Rust core writes multi-sheet workbooks up to 17.2x faster and reads bulk rows up to 15.0x faster than openpyxl 3.1.5 in the 2026-08-16 release-artifact benchmark.

Surgical modify mode

How modify mode works: inspect, patch, verify.

A full rewrite reads the entire workbook package and writes it back from parsed state, so content the library does not model can be lost or altered. Modify mode targets the supported change and keeps the rest of the package intact.

1. Inspect

Read the package

Parse the .xlsx or .xlsm container and inventory its parts before changing anything.

2. Patch

Touch only what changed

Update the targeted worksheet XML and leave unrelated source parts as they were.

3. Verify

Validate the output

Recalculate supported formulas locally and confirm the saved workbook before it ships.

Full workbook rewrite compared with WolfXL modify mode
 Full rewriteWolfXL modify mode
Package handlingReads and rebuilds the whole packagePatches the targeted parts
Untouched contentRewritten from parsed statePreserved from the source file
Two-cell edit, large workbook9.36s save in openpyxl 3.1.50.60s save with WolfXL

The preservation approach, with the supporting evidence: openpyxl preservation.

Use cases

Built for workflows where the workbook matters.

Complex template preservation

Recurring reports and client deliverables with charts, pivots, and macros that automated edits must not disturb.

Preservation approach

High-volume openpyxl workloads

Batch generation and bulk reads that have outgrown pure-Python throughput.

Performance evidence

Large and memory-bound files

Workbooks where load time and peak RAM decide whether the pipeline fits its window.

Large-file results

Production rollout

A local fit check, a fixed-scope compatibility assessment, and a bounded pilot before broad deployment.

Rollout path

Measured speed, bounded scope.

Clean-source WolfXL 2.1.0 release-artifact benchmark dated 2026-08-16, openpyxl 3.1.5 comparison, supported scope.

Read the benchmark methodology

Bulk reads

up to 15.0x faster

WolfXL
up to 15.0x
openpyxl
1x baseline

Bulk writes

up to 17.2x faster

WolfXL
up to 17.2x
openpyxl
1x baseline

Modify + save (2 cells, large workbook)

0.60s vs 9.36s

WolfXL
0.60s
openpyxl
9.36s
Measurement detail and ranges
  • OpenPyXL bulk reads up to 15.05x

    large_read_values_plain from openpyxl_benchmark_summary.comparisons

  • OpenPyXL bulk writes append 7.39x to 13.07x

    write_append family ranges from write_append_formulas 7.39x to write_append_plain write_rows 13.07x

  • OpenPyXL multi-sheet writes up to 17.23x

    write_multi_sheet_plain with wolfxl_write_rows_fast_multi_sheet

  • OpenPyXL modify + save 13.85x to 15.65x

    end-to-end basis: modify_two_cells_plain 13.85x and large_modify_two_cells_plain 15.65x

OpenPyXL comparisons use the public Python API.

2026-08-16 release artifact benchmark rerun

Community and Commercial

WolfXL ships in two editions. Community is MIT-licensed and installs from public PyPI with no credential. Commercial funds the compatibility, fidelity, and support work that production workbook pipelines need.

WolfXL Community and Commercial edition comparison
CapabilityCommunityCommercial
LicenseMITCommercial
DistributionPublic PyPIAuthenticated package index
Workbook I/OIncludedIncluded
Existing 2.0 modify and pivot APIsIncludedCurrent implementations and fixes
Native recalculationNot includedIncluded
Render, PDF, and image outputNot includedIncluded
Format conversionNot includedIncluded
VBA and Power Query operationsNot includedIncluded
Production operations SDKNot includedIncluded
Direct supportCommunity issuesIncluded with paid plans

Community receives critical correctness and security fixes. We do not withhold a confirmed correctness fix to sell an upgrade.

Only pulling worksheet values into Arrow or Polars? wolfxl-data is a separate read-only bridge with no workbook, calculation, render, or pivot API.

Read-only Arrow data bridge

Bring your hardest workbook.

Install the MIT Community edition now, or prove one workflow on the commercial engine for 30 days.

pip install wolfxl