Files
craft-libs/crates/sheet/README.md
Dylan M. Taylor eb640fd992 Add craft-sheet: the cell positions, values and tables the spreadsheet formats share (#956)
craft-xls carried its own CellRef, Range, Value, CellError, Visibility, sheet-name
quoting, built-in number format table and indexed palette. craft-xlsx and craft-ods
need the same ones, so they move to a crate with no dependencies and craft-xls
re-exports them: an application gets one Value and one CellRef whichever file it read.

Added on the way: A1 parsing (CellRef::parse, Range::parse), Range::count and a1,
CellError::parse and the newer error values SpreadsheetML stores as text,
builtin_format_id for writers.
2026-11-11 19:24:39 -05:00

19 lines
1.0 KiB
Markdown

# craft-sheet
What every spreadsheet file format says in the same words, kept once so that `craft-xls`,
`craft-xlsx` and `craft-ods` hand an application the same types:
- `CellRef` and `Range`: zero-based cell positions, and their A1 text both ways (`B3`,
`$B$3`, `A1:C2`), inside Excel's 1,048,576 by 16,384 grid.
- `Value` and `CellError`: what a cell stores, and the error values with their text (`#DIV/0!`).
- `Visibility`: visible, hidden, very hidden.
- `sheet_needs_quotes`, `quote_sheet`: a sheet name as a reference spells it (`'My Sheet'!A1`).
- `HAlign`, `VAlign`, `Underline`, `Script`, `BorderStyle`, `Pattern`: the cell formatting choices
BIFF8 and SpreadsheetML share.
- `builtin_format`, `builtin_format_id`: the number format codes behind the built-in ids
(ECMA-376 Part 1, 18.8.30; [MS-XLS] 2.4.126).
- `DEFAULT_PALETTE`: the 64 indexed colours ([MS-XLS] 2.4.188; ECMA-376 Part 1, 18.8.27).
It is not a file format and has no dependencies. It holds no document model: sheets, styles
and formulas are each format's own.