IFClite TypeScript API
    Preparing search index...

    Interface CsvCellOptions

    interface CsvCellOptions {
        delimiter?: string;
        exemptNumbers?: boolean;
        quoteWhitespacePadded?: boolean;
    }
    Index
    delimiter?: string

    Column delimiter the cell will be joined with. Default ,.

    exemptNumbers?: boolean

    Exempt a cell that is wholly a signed number (-0.35, +1, -1.5e-3) from the +/- formula trigger, so spreadsheet SUM() still works on exported measures (#1772). Default true.

    A PRODUCT policy, not a security one. The exemption cannot weaken the guard: the accepted language is built from + - . e E 0-9 and nothing else, which cannot spell a function name, a cell reference or a (, so every string it exempts is inert in a spreadsheet. =, @, TAB and CR are never exempted, and a number with anything glued to it (-0.35=cmd) is not wholly numeric and stays guarded.

    The default used to be false, which made the repo disagree with itself: @ifc-lite/lists exempted numbers, every other writer guarded them, and both behaviours were deliberately tested. Exempting is now the default so the policy lives in ONE place instead of at eleven call sites, where it would drift. Pass false to opt a writer out.

    This flag does NOT make a numeric column sum on its own; a cell that arrives already display-formatted is not wholly numeric and no setting here changes that. apps/viewer/src/lib/lists/export/csv.ts explains why.

    quoteWhitespacePadded?: boolean

    Also quote a cell whose first or last character is whitespace, so an importer that would otherwise trim the padding cannot (RFC 4180 §2.4 again, from the other side). Used by the zones-table writer. Default false.

    "Whitespace" here is JavaScript \s — deliberately pinned as an explicit table in the shared fixture, because JS \s and Rust char::is_whitespace are NOT the same set (JS has U+FEFF and lacks U+0085; White_Space is the reverse), and that asymmetry is exactly the kind of thing that becomes a silent cross-language split.