Repository navigation
LeanRows v0.3.0
LeanRows 0.3.0
LeanRows 0.3.0 opens Excel .xlsx workbooks, read-only, one worksheet at a
time. CSV, TSV, JSONL, NDJSON, log, and text files work as in 0.2.0.
Excel workbooks
- LeanRows shows the values the workbook stores. Formulas are shown as their
cached results and are never evaluated. Macros are not run and external
links are not followed. - Columns are titled A, B, C, as in the sheet. Rows the sheet leaves out are
shown empty, so row numbers match the sheet. - The first visible worksheet opens. Next sheet and Previous sheet in the
overflow menu move between visible worksheets, and the status line shows,
for example,Sheet 2 of 3: Name. Hidden sheets and chart sheets are not
offered. - Dates and times with a date or time format are shown as
2026-01-01,
2026-01-01 06:30:15, or06:30:00. Other numbers are shown as stored, so
12.5% shows as0.125. - The full rules, with an example for each cell type, are in
XLSX cell text.
A workbook is refused with a message when it is beyond one of these limits:
| Limit | Value |
|---|---|
| Rows | 1,048,576 |
| Columns | 16,384 |
| One ZIP entry, unpacked | 1 GiB |
| Unpacked to packed size of one entry, past its first MiB | 200 to 1 |
| Shared-string text in total | 256 MiB |
Truncated files, files with a DOCTYPE, and workbooks whose sheet points
outside the file are also refused.
Measured
On Linux (Intel Xeon 2.1 GHz, 4 vCPU), six runs with a 120,001-row workbook of
4,202,904 bytes written by XlsxWriter:
| Step | Result |
|---|---|
| Open and show the first 128 rows | 42 to 58 ms |
| Scan the whole sheet | 433 to 503 ms |
| 128 rows from the middle, after the scan | 10 to 12 ms |
| Peak resident memory of the measuring process | about 5.6 MiB |
The same data as CSV scans in 28 to 30 ms on that machine, so a workbook scan
is about 15 times slower. These are not Windows numbers. Working set on
Windows with a workbook open has not been measured yet.
Known gaps
- Find does not work on
.xlsxfiles yet. - The installer and the Store package do not register
.xlsx. Open a workbook
with the Open dialog, by dropping it on the window, or from the command line. - Switching sheets has no keyboard shortcut.
- The shared-string table is kept in memory, up to 256 MiB of text, so a very
large workbook can use much more memory than a CSV file of the same size. .xlsm,.xlsb,.xls, password-protected workbooks, and ZIP64 archives
are refused._xHHHH_escapes in text are shown as stored, not decoded.- No test workbook was written by Excel itself. The test files come from
LibreOffice, openpyxl, and XlsxWriter.
Behavior retained
LeanRows remains a Windows x64, read-only viewer. It does not load a
whole-file object model, alter the source, send telemetry, or retrieve network
content. Editing, saving, export, sorting, filtering, regular expressions, SQL,
archives, and tail/follow mode remain outside the 0.3 boundary.
The per-user installer continues to register LeanRows in Open with for
.csv, .tsv, .jsonl, .ndjson, and .log, with the same safeguards as
0.2.0.
Download
This release provides two attachments:
LeanRows-v0.3.0-windows-x64-unsigned.zip
LeanRows-v0.3.0-windows-x64-unsigned.sha256
LeanRows 0.3.0 is not Authenticode-signed. Windows may display a warning for a
downloaded executable. Verify the ZIP against the .sha256 attachment from
this same release:
Get-FileHash .\LeanRows-v0.3.0-windows-x64-unsigned.zip -Algorithm SHA256After extraction, validate and run the per-user installer:
.\install.ps1 -ValidateOnly
.\install.ps1Verification
Windows CI ran formatting, the workspace tests, strict Clippy, the release
build, the native shell smoke, the reduced QA run (which now opens a workbook
through the document smoke), and packaging. The tagged release workflow
rebuilds and checks the release commit and its published assets.
The full local QA run with a receipt, as recorded for 0.2.0, has not been run
for 0.3.0.
LeanRows is available under the MIT License. The complete change summary is in
the changelog.
Security-sensitive findings should use
private vulnerability reporting.