Types
CellKind = enum ckEmpty, ## no value in the cell ckText, ## plain text ckNumber, ## numeric value as float64 ckBool, ## boolean ckDate, ## calendar date/time ckDuration, ## time span in seconds ckFormula, ## formula cell (display text or a marker) ckError ## cell that failed to decode or holds an error
- Source Edit
Procs
proc cellOffsets(offsets: string): seq[int] {....raises: [], tags: [], forbids: [].}
- unpacks the little-endian uint16 per-column offsets buffer; 0xffff means the column has no cell in this row Source Edit
proc decodeCellAt(buf: string; offset: int; strings: Table[uint32, string]): CellValue {. ...raises: [Exception, KeyError], tags: [RootEffect], forbids: [].}
- decodes one v5 cell record at a byte offset; anything unexpected logs at debug level and comes back as an error/empty value instead of raising, so one weird cell never kills the document Source Edit