wolfxl

Read-only data bridge

Worksheet values into Arrow, and nothing else.

wolfxl-data reads one .xlsx worksheet at a time and hands the values to PyArrow or Polars as Arrow record batches. Creating a workbook, editing one, calculating formulas, rendering output, and building pivot tables all stay in the WolfXL engine.

wolfxl-data.xlsx worksheetsArrow record batchesPyArrow and Polars extrasPython 3.10 through 3.13

Compare Community and Commercial

PolyForm Shield License 1.0.0. Stable-ABI release wheels. Public package, proprietary terms. No runtime telemetry.

extract.py
import wolfxl_data # One worksheet into a pyarrow.RecordBatch.batch = wolfxl_data.read_arrow("ledger.xlsx", "Q3", columns=["Account", "Amount"])print(batch.num_rows, batch.schema.names) # The same read, handed to Polars as a LazyFrame.frame = wolfxl_data.scan_polars("ledger.xlsx", "Q3", max_rows=100_000)print(frame.collect().height)

Formula cells arrive as the results cached in the file, because a read-only bridge does not calculate. Recalculating a workbook before extraction is engine work.

The whole read surface

Reads are scoped rather than all or nothing: name the sheet, project columns by field name or 1-based index, choose whether the first row is a header, set a start row and a row cap, and pick native or serial temporal values.

Eager read into Arrow

Pull a worksheet into a single pyarrow.RecordBatch when the sheet fits the job and you want the schema in hand immediately.

read_arrow(path, sheet_name)

Bounded streaming

Take the Arrow C stream yourself. The scanner exposes __arrow_c_stream__ and iterates record batches, with batch_rows, start_row, and max_rows setting the window that gets read.

scan_arrow(path, sheet_name, batch_rows=...)

Polars handoff

Get a LazyFrame over the same read path, so the worksheet joins the rest of a Polars pipeline without a private conversion step.

scan_polars(path, sheet_name)

Strict mode is the default. A value that cannot be represented in its column type fails with the worksheet, field, and cell in the message instead of arriving as a silent null. Turning strict off records the loss mode in the Arrow schema metadata rather than hiding it.

Release candidate ready

The five-platform wheel set is built and verified. PyPI publication is still pending, so request early access instead of running an install command that cannot succeed yet.

Request early access

Publication will include binary wheels only. No source distribution or WolfXL engine source will be published.

License, distribution, and telemetry

PolyForm Shield License 1.0.0
The wheel is licensed under PolyForm Shield 1.0.0 and bundles the full license text, the required copyright notice, and the third-party notices for its dependencies. Read the bundled LICENSE for the terms that apply to your use.
Stable-ABI release wheels
The release candidate is a prebuilt stable-ABI wheel per platform, with a CycloneDX SBOM inside it. No source distribution will be published and the engine source is not part of the package.
Public package, proprietary terms
wolfxl-data will be distributed through PyPI for frictionless installation. The package is not open source: PolyForm Shield 1.0.0 governs use, and the wheel contains neither the engine source nor the full WolfXL API.
No runtime telemetry
The library performs no network calls, no license activation, and no usage reporting. Reading a worksheet touches the file you named and nothing else.
Read PolyForm Shield 1.0.0

Where the boundary sits

The bridge is deliberately narrow. It is the read path and nothing more, so the line between extraction and the engine is easy to hold in production.

Capabilities in the wolfxl-data read-only bridge compared with the WolfXL engine
Capabilitywolfxl-dataWolfXL engine
Read XLSX worksheet valuesIncludedIncluded
Column projection and row windows on readIncludedIncluded
Workbook creation and modificationNot includedIncluded
Formula calculationNot includedIncluded
Render, PDF, and image outputNot includedIncluded
Pivot table operationsNot includedIncluded
Autofilter and sort stateNot includedIncluded
Richer workbook feature compatibilityNot includedIncluded

The wheel carries no Workbook class and no write, calculate, render, or pivot entry point. Reaching for one of those raises an AttributeError rather than quietly degrading, and importing the flagship wolfxl module is not part of this package.

The engine column covers the WolfXL product surface, not one edition. Which edition carries each engine capability is set out in the Community and Commercial comparison. Compare editions.

Extraction is the entry point, not the engine.

When the workflow moves past reading values, WolfXL is the path forward. It creates and modifies workbooks, calculates formulas, renders output, drives real pivot tables, evaluates autofilters, and covers a wider range of workbook features than a read-only bridge is meant to.