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

Booting the WASM engine…

Source workbookCanonical invoice workbookLoading editable Grid

LIVE FORMULA MODEL

Portable analytical workbench

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.

Evidence vaultCompatibility test set and raw app resultsFilters, expected values, checksums, and explicit nonclaims

Compatibility results you can inspect

This page publishes a fixed, checked test set and the product's declared feature boundaries. It does not claim blanket Excel, Google Sheets, LibreOffice, or OpenFormula compatibility. Read the detailed checked results →

Local result100% — 2,290 of 2,290 supported tests passed locally

Test set version
1
Total tests
2,350
Formula tests
2,000
Edit sequences
250
Workbook tests
100

External app evidence is incomplete.0 reviewed results; 2,290 supported tests still lack a reviewed tested-app result. 60 unsupported tests are explicit nonclaims and are excluded from the local percentage.

Explicit result categories28 warning-behavior checks · 1 known difference · 0 reviewed regressions

Checked test set SHA-256bdf94c76df81ea1fa2e1bf96a557c41b21a0f11ea11ae612fcccc35157d7275a

Inspect representative checked tests

The compact page includes the first checked example for every function or feature, plus every available result state. Counts above always refer to the full 2,350-test set; the browser below contains 177 inspectable examples.

Filter checked tests
Function or feature
All functions and features
Function or feature
Behavior
All behavior scopes
Behavior
Result status
All result states
Result status
177/177 examples

Local check passedTested app result missing

Test 1 of 2,350 · Shared spreadsheet behavior

add · Normal

Integer addition has the exact identity 1 + 1 = 2.

Input and expected result

Formula =1+1 at A1

No input cells are required.

Expected checked result
{
  "type": "number",
  "value": 2
}
Comparison tolerance
Exact type and value

Tested app results and differences

Missing results stay unavailable. A source description or expected value never substitutes for a reviewed app result.

  • Sheetwrite captured resultLocal check passed
    Library version
    0.3.0
    Checked evidence
    Test 1 in checked set v1
    Result comparison
    The local result matched the checked expected value under the published tolerance.
    Test record SHA-256
    9e35eba6b65be2cbe247f8252d200ba05d9921e9ca84ae5e90d9b02ddae9e45e
    Local checked result
    {
      "type": "number",
      "value": 2
    }
  • Microsoft Excel desktopResult unavailable
    Version
    Unavailable
    Captured
    Unavailable
    Result differences
    Unavailable — no reviewed result file is attached to this test.
    Evidence file checksum
    Unavailable
  • Google SheetsResult unavailable
    Version
    Unavailable
    Captured
    Unavailable
    Result differences
    Unavailable — no reviewed result file is attached to this test.
    Evidence file checksum
    Unavailable
  • LibreOfficeResult unavailable
    Version
    Unavailable
    Captured
    Unavailable
    Result differences
    Unavailable — no reviewed result file is attached to this test.
    Evidence file checksum
    Unavailable
Technical test details
Machine ID
canary.arithmetic.1-plus-1
Test record SHA-256
9e35eba6b65be2cbe247f8252d200ba05d9921e9ca84ae5e90d9b02ddae9e45e
Source record SHA-256
8475ddb0b3d6292a81a5931fc60e1c40cc8228351347c673c4a16d65ffacade5
Source rights
spec-derived · Spec metadata; MIT
Generated checked data
Open exact generated JSON

Declared feature boundaries

These product-level records cover import, export, preservation, warnings, and explicit unsupported behavior. They come from the existing checked inventory and link to exact sources; they do not turn missing Excel or Google Sheets results into claims.

Filter feature boundary records
Status
All statuses
Status
Feature area
All feature areas
Feature area
Behavior
All behavior scopes
Behavior
18/18 records

Supported · Evaluated

Portable arithmetic, comparison, concatenation, and percent operators

Parses and evaluates +, -, *, /, ^, &, comparisons, unary signs, and postfix percent with deterministic coercion and errors.

Import
Formula source is preserved and evaluated when every token is in the portable subset.
Export
Canonical formula source is emitted to XLSX without cached-value fabrication.
Known boundary
This is a declared portable subset, not every Excel, Sheets, or OpenFormula coercion edge.
Technical evidence record IDsformula-engine-vectors, formula-document-vectors
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: unsupported-feature: hidden worksheet visibility

  • 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: unsupported-feature: hidden worksheet visibility

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

Row OP-1045 stores =HYPERLINK("https://evil.example","Q3 total") as text — export the sheet and inspect what the CSV emits.

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 →

  • 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…