gitmyhub

ironsheet

TypeScript ★ 19 updated 12d ago

The lossless TypeScript engine for editing real XLSX and XLSM files — patch cells, formulas, charts, and macros without corrupting the workbook.

A TypeScript tool for safely editing real Excel XLSX and XLSM files, changing only what you target without breaking formulas, styles, charts, or macros.

TypeScriptNode.jssetup: easycomplexity 3/5

Ironsheet is a TypeScript tool for making changes to real Excel files, the kind saved as XLSX or XLSM, without breaking anything inside them. Most JavaScript libraries that work with spreadsheets are built to create new workbook-shaped files from scratch. Ironsheet takes a different approach: it opens an existing Excel workbook and edits only the specific parts you ask it to change, such as a single cell, a named range, a table's rows, or an embedded image, while leaving everything else, including charts, pivot tables, styles, comments, and even macros in XLSM files, exactly as it was.

Before writing anything, Ironsheet checks that every target you asked to update actually exists in the workbook. If a named range, table, or cell is missing, it stops and reports an error rather than silently producing a broken file. When it does write, it can also produce a report showing exactly what changed, which is useful for automated systems that need to confirm an edit worked as expected. If you change a formula or a value that other formulas depend on, Ironsheet marks the workbook so Excel knows to recalculate those values the next time it opens.

The project is organized into several packages: a core engine with no external dependencies that can run anywhere, a Node.js package for reading and writing files on a server, a browser package for handling files directly in a web page, a command-line tool for inspecting and editing workbooks from a terminal, and a compatibility package for tracking which Excel features have been tested.

This is aimed at situations where a spreadsheet is treated as a real product rather than a one-time export of data, such as finance models, board reports, customer-facing templates, or dashboards built in Excel. It could suit developers building tools that automatically fill in Excel templates, or automation scripts that need to update specific values in existing company spreadsheets without wiping out formatting or formulas. The project is still an early, active MVP, and it is released under the Apache 2.0 license.

Where it fits