Skip to content

Known differences

This package targets the API of the original @sheet/edit 2.20260615.1 package. Check these limits before replacing an existing installation.

  • WebAssembly support is required. Browser CSP must permit 'wasm-unsafe-eval'. There is no JavaScript fallback.
  • Node 22 and 24 were tested. Node versions below 22 were not tested.
  • Both packages are CommonJS. Use a default import in Node ESM.
  • File encryption is unavailable in both packages. utils.hash_password and utils.test_password remain declared for type compatibility but do not exist at runtime.
  • Use template_sheet_set_visibility and template_book_remove_name. The names template_set_sheet_visibility and template_book_delete_name are not available.
  • The form-control template helpers are present and included in the bundled declarations.
  • utils.encode_col(Infinity) throws RangeError: Invalid string length rather than exhausting memory.
  • An HTML stream without !ref infers a range from existing cells; an empty worksheet produces a table with a blank A1 cell. The original raises an unhandled stream error that can terminate the process.
  • The mini build has a reduced format set. See Supported formats.
  • When writing XLSX with cellStyles, a cell style without a font scheme is not given a font that has scheme: "minor". The original reuses such a font, and spreadsheet applications then show the theme font instead of the cell’s own font. Fonts named after the theme’s body font still match.

Metadata support depends on the file format. Do not assume that every format preserves every feature. Try a representative round trip using the format and features that your application needs. Use template mode when preserving unrelated content in an existing XLSX or XLSM matters.

Template mode keeps file parts that you do not edit. Use it for existing print settings, custom XML, protection, charts, and pivots that should survive an edit. This does not mean that every feature can be created through the normal workbook model. See Template editing and the helper reference.

Safari, Node below 22, and opening generated files in Excel or Apple Numbers were not tested. Numbers output needs the bundled xlsx.zahl.js payload. Package read/write support does not imply application-level validation.