Sheetwrite

CAPABILITY / SPREADSHEET INTEROPERABILITY

Open the workbook. Change it. Bring it back intact.

A real editable Grid sits in the exchange path: load source bytes, make a change, then export, re-import, and inspect the fidelity result beside the workbook. XLSX interchange guide →

Formats
XLSX · CSV · TSV
Editing
Real Grid
Round trip
Export · re-import
Evidence
Checked fixtures

Source workbookQ1 2026 · workplace equipment salesLoading editable Grid

Inspect the equipment lease and cash-flow model

LIVE FORMULA MODEL

Equipment lease & cash-flow model

Local engine: evaluated now. No new Excel or Google Sheets result is added; the on-demand evidence vault remains the source of truth.

Analytical model inputs
Base annual rate
Projection rows
XLOOKUP rate
Unavailable
PMT / month
Unavailable
NPV
Unavailable
IRR
Unavailable
STDEV.S
Unavailable
LET remaining payments
Unavailable
Schedule end
Unavailable
SEQUENCE output
Unavailable

Public change event: awaiting an analytical input edit.

NEW IN 0.5.0 · STREAMED IMPORT

Put 200,000 sales records through the CSV importer.

Records go straight into typed columns. XLSX imports also stream rows and shared strings. This demo measures CSV parse time, not peak memory.

Evidence vaultCompatibility test set and raw app resultsFilters, expected values, checksums, and explicit nonclaims
Source libraryIndependent workbooks and verified checksumsLoad committed LibreOffice fixtures into the live Grid

Committed independent fixtures

Bytes produced by other software, committed with full provenance, and hashed in your browser before use — load any of them into the workbench above.

Checked provenance manifestpackages/xlsx/test/fixtures/manifest.jsonFull SHA-256 digests are verified in this browser before loading.
  • LibreOffice 26.2.4.2hashing…

    sheetwrite-libreoffice-positive.xlsxcb7cba1a9a804d71…

    Manifest evidence
    • strings
    • numbers
    • date-formatted numeric cells
    • surrounding whitespace
    • multiple data rows
  • LibreOffice 26.2.4.2hashing…

    libreoffice-rich.xlsx75fb643cafcbe660…

    Manifest evidence
    • ordinary formulas
    • bold font and RGB font color
    • solid fill
    • per-side borders
    • horizontal alignment
    • currency number format
    • merged cells
    • decimal validation
    • legacy note/comment
    • hidden worksheet
    • active worksheet
    • frozen row and column
    • named range

    Manifest-documented warning: rich-text: comment formatting was flattened

  • LibreOffice 26.2.4.2hashing…

    libreoffice-metadata.xlsx5a676a11d56ae1e4…

    Manifest evidence
    • LibreOffice-preserved hidden Sheetwrite metadata worksheet
    • documentId
    • version
    • stable sheet ids and column metadata
    • native formula, validation, comment, merge, view, and named-range parts

    Manifest-documented warning: rich-text: comment formatting was flattened

Results by producing application

  • LibreOffice 26.2.4.2Verified here
    Scope, limitations, and technical evidence

    Committed LibreOffice-produced workbooks import on this page, in your browser, after their file hashes match the checked fixture record.

    Open checked evidence file
  • Sheetwrite round-tripVerified here
    Scope, limitations, and technical evidence

    The workbench below exports this document to .xlsx bytes and re-imports them live; formulas, formats, the merge, and frozen rows survive.

    toXlsxWorkbook / fromXlsxWorkbook on this page
  • Microsoft ExcelResult unavailable
    Scope, limitations, and technical evidence

    5 Excel-produced test files are listed from Apache POI commit 913c78891b, with expected file hashes and download sources. The workbook bytes and reviewed results are not checked in, so no Excel result is available here. Still unverified from Excel files: hidden worksheet, Sheetwrite metadata resave.

    Open checked evidence file
  • Google SheetsResult unavailable
    Scope, limitations, and technical evidence

    Metadata lists 1 Google Sheets-exported test file (google-sheets-public.xlsx) with its file hash recorded. The bytes and reviewed compatibility results are not checked in, so no Google Sheets result is available here. Still unverified from Google Sheets files: dates, merges, validations, notes, hidden active sheet, defined names, Sheetwrite metadata resave.

    Open checked evidence file
Operation evidenceStructured fidelity warning logThe latest import or round-trip, with public warning codes

Fidelity warnings, not silent loss

Every import and export reports what it could not preserve as structured XlsxWorkbookWarning records — coded, per sheet, per cell. Warning codes →

No interchange operation has run yet. Run the round-trip or import a fixture — warnings from that operation land here with their codes.

Delimited-text labCSV / TSV export, injection proof, and paste importLossy interchange is explicit and isolated from the workbook path

CSV and TSV, hardened

Delimited exports neutralize formula-injection payloads before a cell ever reaches a spreadsheet that would execute them.

Export the live document

Export the active sheet, or select a range to inspect its clipboard TSV.

Delimited text is intentionally lossier: formulas leave as their computed values, and styles and merges do not exist in CSV/TSV at all.

Import pasted CSV

Security labHostile packages, aborts, and resource ceilingsFive hand-authored attack packages with typed rejection evidence

Resource limits and hostile input

Ceilings are enforced before anything allocates, and hand-authored hostile OPC/SpreadsheetML packages are rejected with typed errors. Resource limits →

Formula-injection probe

=HYPERLINK("https://evil.example","Q3 total") is stored as literal text. It is not an active link or a formula. Load it only in this lab, then inspect the hardened CSV.

  • byte ceiling
  • entry ceiling
  • dimension ceiling
  • compression-ratio ceiling
  • cell ceiling
  • AbortSignal honored
Hand-authored attack packages with recorded file hashes and the live verdict.
PackageAttackLive verdict
traversal.xlsxZIP entry path traversalnot run yet
doctype.xlsxDTD and custom entity rejectionnot run yet
deep-xml.xlsxXML nesting-depth boundnot run yet
compression-ratio.xlsxCentral-directory compression-ratio preflightnot run yet
corrupt-deflate.xlsxCorrupt DEFLATE stream or CRC rejectionnot run yet
Runtime boundaryOptional XLSX package registrationThe pre-registration typed error and lazy codec handoff

The XLSX codec is an optional package

@sheetwrite/core ships no XLSX implementation — workbook interchange throws a typed error until a host registers a backend. This page loads @sheetwrite/xlsx/register lazily on the first XLSX action; CSV/TSV interchange needs no optional package at all.

Probing registration state…