Skip to content

rootsec1/xlsx-dev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xlsx-dev

Rust Excel-free Read-only Fail closed

Fast, read-only .xlsx parsing and fail-closed recalculation.

This repo is now centered on a pure in-house Rust engine. Runtime code must not depend on Microsoft Excel, COM, XLL, OfficeJS, LibreOffice, or paid workbook libraries.

Goals

  1. Speed
  2. Accuracy
  3. Workbook integrity

The engine never mutates customer workbooks in v1. APIs and CLI commands write JSON results under outputs/, which is ignored by git.

Why This Exists

Most spreadsheet tooling either gives up on Excel fidelity or depends on Excel itself. This project takes the opposite path: parse OpenXML directly, preserve workbook integrity, and fail closed when exact behavior cannot be proven.

Region Detection

The table detector is built for messy real-world workbooks where tables are often visual regions, not formal Excel table objects.

Raw sheet Detected regions
Raw complex tracker sheet Detected regions on complex tracker sheet
Raw wide model sheet Detected regions on wide model sheet
Raw market layout sheet Detected regions on market layout sheet

The public screenshots above are rendered from complex external workbook fixtures. Source workbook files are not committed, and published filenames and documentation avoid source names. The gallery covers irregular trackers, wide models, and market-layout sheets with dense side-by-side regions: docs/accuracy.md.

Research notes on spreadsheet table detection, observed layout patterns, and the next detector architecture are in docs/research/region-detection-research.md.

Performance Snapshot

Release CLI parse of an external complex .xlsx workbook on Apple M5 / Darwin arm64:

Metric Time
Median 33.840 ms
Mean 36.198 ms
Min 30.470 ms
Memory 21.6 MB

Raw hyperfine output is committed at docs/benchmarks/hyperfine-complex-parse.json. The input workbook is external, unnamed in the raw artifact, and not committed.

Workspace

  • crates/engine: ZIP/OpenXML streaming parser, table detector, and fail-closed recalc core.
  • crates/api: HTTP API.
  • crates/cli: xlsxdev CLI.
  • crates/bench: external corpus benchmark runner.
  • research-archive/phase1-excel-engine: archived Excel/COM/XLL research.

Commands

cargo test
cargo run -p xlsxdev-cli -- parse path/to/file.xlsx --out outputs
cargo run -p xlsxdev-cli -- recalc path/to/file.xlsx --out outputs
cargo run -p xlsxdev-api -- --host 127.0.0.1 --port 8080 --out outputs
cargo run -p xlsxdev-bench -- --corpus /path/to/external/corpus --out outputs/bench

External workbook corpora must be supplied by CLI/env and must never be committed.

About

Low level lightweight Excel engine for accurate Excel workbook parsing, recacls, conversions etc

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages