reamkit 1.15.1 → 1.15.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/core/arc-to-bezier.d.ts +23 -0
- package/dist/esm/core/arc-to-bezier.js +23 -0
- package/dist/esm/core/bidi/algorithm.d.ts +26 -0
- package/dist/esm/core/bidi/algorithm.js +21 -0
- package/dist/esm/core/bidi/char-types.d.ts +17 -0
- package/dist/esm/core/bidi/char-types.js +10 -0
- package/dist/esm/core/bidi/index.d.ts +42 -0
- package/dist/esm/core/bidi/index.js +27 -0
- package/dist/esm/core/bidi/segments.d.ts +22 -0
- package/dist/esm/core/bidi/segments.js +14 -0
- package/dist/esm/core/bytes.d.ts +20 -0
- package/dist/esm/core/bytes.js +24 -1
- package/dist/esm/core/converter/facade.d.ts +38 -1
- package/dist/esm/core/converter/facade.js +25 -0
- package/dist/esm/core/converter/project.d.ts +12 -0
- package/dist/esm/core/converter/project.js +11 -0
- package/dist/esm/core/converter/ream.d.ts +107 -0
- package/dist/esm/core/converter/ream.js +76 -0
- package/dist/esm/core/crypto/asn1.d.ts +77 -0
- package/dist/esm/core/crypto/asn1.js +65 -0
- package/dist/esm/core/crypto/cms.d.ts +25 -0
- package/dist/esm/core/crypto/cms.js +8 -0
- package/dist/esm/core/document-model/index.d.ts +7 -0
- package/dist/esm/core/document-model/types.d.ts +328 -0
- package/dist/esm/core/drawingml/chart-geometry.d.ts +125 -0
- package/dist/esm/core/drawingml/chart-geometry.js +96 -0
- package/dist/esm/core/drawingml/chart-parser.d.ts +34 -0
- package/dist/esm/core/drawingml/chart-parser.js +34 -0
- package/dist/esm/core/drawingml/chart-serializer.d.ts +12 -0
- package/dist/esm/core/drawingml/chart-serializer.js +12 -0
- package/dist/esm/core/drawingml/colors.d.ts +53 -0
- package/dist/esm/core/drawingml/colors.js +41 -0
- package/dist/esm/core/drawingml/preset-geometry.d.ts +30 -0
- package/dist/esm/core/drawingml/preset-geometry.js +30 -0
- package/dist/esm/core/drawingml/shape-render.d.ts +54 -0
- package/dist/esm/core/drawingml/shape-render.js +54 -0
- package/dist/esm/core/drawingml/sparkline-geometry.d.ts +15 -0
- package/dist/esm/core/drawingml/sparkline-geometry.js +13 -0
- package/dist/esm/core/drawingml/theme-parser.d.ts +11 -0
- package/dist/esm/core/drawingml/theme-parser.js +11 -0
- package/dist/esm/core/font/arabic-joining.d.ts +21 -0
- package/dist/esm/core/font/arabic-joining.js +16 -0
- package/dist/esm/core/font/binary-reader.d.ts +17 -0
- package/dist/esm/core/font/binary-reader.js +17 -0
- package/dist/esm/core/font/font-registry.d.ts +37 -0
- package/dist/esm/core/font/font-registry.js +31 -0
- package/dist/esm/core/font/measure.d.ts +20 -0
- package/dist/esm/core/font/measure.js +11 -0
- package/dist/esm/core/font/opentype-layout.d.ts +49 -0
- package/dist/esm/core/font/opentype-layout.js +37 -0
- package/dist/esm/core/font/ttf-parser.d.ts +32 -0
- package/dist/esm/core/font/ttf-parser.js +7 -0
- package/dist/esm/core/font/ttf-subset.d.ts +21 -0
- package/dist/esm/core/font/ttf-subset.js +21 -0
- package/dist/esm/core/fonts/provider.d.ts +8 -1
- package/dist/esm/core/fonts/provider.js +1 -0
- package/dist/esm/core/fonts/remote-fonts.d.ts +22 -0
- package/dist/esm/core/fonts/remote-fonts.js +16 -0
- package/dist/esm/core/hyphenation/index.d.ts +25 -0
- package/dist/esm/core/hyphenation/index.js +17 -0
- package/dist/esm/core/hyphenation/liang.d.ts +27 -0
- package/dist/esm/core/hyphenation/liang.js +14 -0
- package/dist/esm/core/images.d.ts +32 -0
- package/dist/esm/core/images.js +12 -0
- package/dist/esm/core/ir/adapters.d.ts +23 -0
- package/dist/esm/core/ir/features.d.ts +8 -0
- package/dist/esm/core/ir/features.js +1 -0
- package/dist/esm/core/ir/flow.d.ts +20 -0
- package/dist/esm/core/ir/index.d.ts +7 -0
- package/dist/esm/core/ir/loss.d.ts +12 -0
- package/dist/esm/core/ir/loss.js +8 -0
- package/dist/esm/core/ir/resources.d.ts +12 -0
- package/dist/esm/core/ir/resources.js +11 -0
- package/dist/esm/core/ir/sheet.d.ts +81 -0
- package/dist/esm/core/ir/units.d.ts +9 -0
- package/dist/esm/core/ir/units.js +2 -0
- package/dist/esm/core/line-breaker/cjk.d.ts +26 -0
- package/dist/esm/core/line-breaker/cjk.js +60 -0
- package/dist/esm/core/line-breaker/greedy.d.ts +14 -0
- package/dist/esm/core/line-breaker/greedy.js +14 -0
- package/dist/esm/core/line-breaker/index.d.ts +1 -0
- package/dist/esm/core/line-breaker/index.js +3 -0
- package/dist/esm/core/line-breaker/knuth-plass.d.ts +29 -5
- package/dist/esm/core/line-breaker/knuth-plass.js +10 -5
- package/dist/esm/core/numbering/apply.d.ts +19 -0
- package/dist/esm/core/numbering/apply.js +19 -0
- package/dist/esm/core/numbering/state.d.ts +15 -0
- package/dist/esm/core/numbering/state.js +15 -0
- package/dist/esm/core/ole/cfb.d.ts +19 -0
- package/dist/esm/core/ole/cfb.js +16 -0
- package/dist/esm/core/opc/core-properties.d.ts +12 -0
- package/dist/esm/core/opc/core-properties.js +5 -0
- package/dist/esm/core/opc/opc-writer.d.ts +24 -4
- package/dist/esm/core/opc/opc-writer.js +12 -0
- package/dist/esm/core/opc/package.d.ts +55 -0
- package/dist/esm/core/opc/package.js +49 -1
- package/dist/esm/core/opc/relationship-types.d.ts +8 -0
- package/dist/esm/core/opc/relationship-types.js +5 -0
- package/dist/esm/core/opc/relationships.d.ts +12 -0
- package/dist/esm/core/opc/relationships.js +7 -0
- package/dist/esm/core/po-helpers.d.ts +38 -0
- package/dist/esm/core/po-helpers.js +33 -0
- package/dist/esm/core/spreadsheet-model/types.d.ts +302 -0
- package/dist/esm/core/style-cascade/resolver.d.ts +31 -0
- package/dist/esm/core/style-cascade/resolver.js +31 -0
- package/dist/esm/core/style-cascade/table.d.ts +7 -0
- package/dist/esm/core/style-cascade/table.js +7 -0
- package/dist/esm/core/style-cascade/types.d.ts +27 -0
- package/dist/esm/core/style-cascade/types.js +2 -0
- package/dist/esm/core/vector.d.ts +67 -0
- package/dist/esm/core/vector.js +23 -0
- package/dist/esm/excel/activex-parser.d.ts +31 -0
- package/dist/esm/excel/activex-parser.js +24 -0
- package/dist/esm/excel/cell-reference.d.ts +14 -0
- package/dist/esm/excel/cell-reference.js +9 -0
- package/dist/esm/excel/column-bands.d.ts +29 -0
- package/dist/esm/excel/column-bands.js +27 -7
- package/dist/esm/excel/comments-parser.d.ts +19 -0
- package/dist/esm/excel/comments-parser.js +19 -0
- package/dist/esm/excel/conditional-format.d.ts +38 -0
- package/dist/esm/excel/conditional-format.js +25 -0
- package/dist/esm/excel/defined-name-ref.d.ts +21 -0
- package/dist/esm/excel/defined-name-ref.js +20 -0
- package/dist/esm/excel/form-control-parser.d.ts +13 -0
- package/dist/esm/excel/form-control-parser.js +5 -0
- package/dist/esm/excel/formula/context.d.ts +37 -0
- package/dist/esm/excel/formula/dates.d.ts +23 -0
- package/dist/esm/excel/formula/dates.js +20 -0
- package/dist/esm/excel/formula/eval.d.ts +21 -0
- package/dist/esm/excel/formula/eval.js +11 -0
- package/dist/esm/excel/formula/functions.d.ts +12 -0
- package/dist/esm/excel/formula/functions.js +12 -0
- package/dist/esm/excel/formula/index.d.ts +21 -0
- package/dist/esm/excel/formula/index.js +16 -0
- package/dist/esm/excel/formula/lexer.d.ts +12 -0
- package/dist/esm/excel/formula/lexer.js +10 -0
- package/dist/esm/excel/formula/parser.d.ts +20 -0
- package/dist/esm/excel/formula/parser.js +53 -0
- package/dist/esm/excel/formula/value.d.ts +53 -0
- package/dist/esm/excel/formula/value.js +30 -0
- package/dist/esm/excel/header-footer.d.ts +9 -0
- package/dist/esm/excel/header-footer.js +9 -0
- package/dist/esm/excel/number-format.d.ts +34 -0
- package/dist/esm/excel/number-format.js +34 -0
- package/dist/esm/excel/pivot-table-parser.d.ts +8 -0
- package/dist/esm/excel/pivot-table-parser.js +8 -0
- package/dist/esm/excel/print-model.d.ts +77 -1
- package/dist/esm/excel/print-model.js +230 -26
- package/dist/esm/excel/shared-strings-parser.d.ts +13 -0
- package/dist/esm/excel/shared-strings-parser.js +5 -0
- package/dist/esm/excel/sheet-drawing.d.ts +34 -0
- package/dist/esm/excel/sheet-drawing.js +21 -0
- package/dist/esm/excel/sheet-shape-parser.d.ts +12 -0
- package/dist/esm/excel/sheet-shape-parser.js +12 -0
- package/dist/esm/excel/sheet-to-flow.d.ts +29 -0
- package/dist/esm/excel/sheet-to-flow.js +24 -7
- package/dist/esm/excel/slicer-parser.d.ts +23 -0
- package/dist/esm/excel/slicer-parser.js +10 -0
- package/dist/esm/excel/styles-parser.d.ts +8 -0
- package/dist/esm/excel/styles-parser.js +8 -0
- package/dist/esm/excel/table-parser.d.ts +24 -0
- package/dist/esm/excel/table-parser.js +5 -0
- package/dist/esm/excel/workbook-parser.d.ts +17 -0
- package/dist/esm/excel/workbook-parser.js +5 -0
- package/dist/esm/excel/worksheet-parser.d.ts +9 -0
- package/dist/esm/excel/worksheet-parser.js +39 -6
- package/dist/esm/excel/xls/biff-chart.d.ts +10 -0
- package/dist/esm/excel/xls/biff-chart.js +10 -0
- package/dist/esm/excel/xls/biff-reader.d.ts +27 -0
- package/dist/esm/excel/xls/biff-reader.js +44 -0
- package/dist/esm/excel/xls/biff-styles.d.ts +20 -0
- package/dist/esm/excel/xls/biff-styles.js +20 -0
- package/dist/esm/excel/xls/escher.d.ts +27 -0
- package/dist/esm/excel/xls/escher.js +18 -0
- package/dist/esm/excel/xls/xls-reader.d.ts +6 -0
- package/dist/esm/excel/xls/xls-reader.js +6 -0
- package/dist/esm/excel/xlsx-reader.d.ts +30 -0
- package/dist/esm/excel/xlsx-reader.js +38 -4
- package/dist/esm/excel/xlsx-to-pdf.d.ts +27 -0
- package/dist/esm/excel/xlsx-writer.d.ts +14 -0
- package/dist/esm/excel/xlsx-writer.js +13 -0
- package/dist/esm/html/html-writer.d.ts +18 -0
- package/dist/esm/html/html-writer.js +18 -0
- package/dist/esm/index.d.ts +23 -0
- package/dist/esm/layout/math-layout.d.ts +39 -0
- package/dist/esm/layout/math-layout.js +18 -0
- package/dist/esm/layout/page-doc.d.ts +91 -0
- package/dist/esm/layout/styled-layout.d.ts +175 -0
- package/dist/esm/layout/styled-layout.js +136 -4
- package/dist/esm/pdf/builtin-fonts.d.ts +5 -0
- package/dist/esm/pdf/cid-font.d.ts +22 -0
- package/dist/esm/pdf/cid-font.js +10 -0
- package/dist/esm/pdf/embedded-file.d.ts +16 -0
- package/dist/esm/pdf/embedded-file.js +9 -0
- package/dist/esm/pdf/encryption.d.ts +59 -0
- package/dist/esm/pdf/encryption.js +37 -0
- package/dist/esm/pdf/icc-profile.d.ts +8 -0
- package/dist/esm/pdf/icc-profile.js +8 -0
- package/dist/esm/pdf/image-xobject.d.ts +19 -0
- package/dist/esm/pdf/image-xobject.js +9 -0
- package/dist/esm/pdf/objects.d.ts +40 -0
- package/dist/esm/pdf/objects.js +36 -0
- package/dist/esm/pdf/serialize.d.ts +18 -0
- package/dist/esm/pdf/serialize.js +18 -0
- package/dist/esm/pdf/shading.d.ts +16 -0
- package/dist/esm/pdf/shading.js +16 -0
- package/dist/esm/pdf/signature.d.ts +36 -0
- package/dist/esm/pdf/signature.js +22 -0
- package/dist/esm/pdf/struct-tree.d.ts +64 -0
- package/dist/esm/pdf/struct-tree.js +60 -0
- package/dist/esm/pdf/styled-page-emitter.d.ts +33 -0
- package/dist/esm/pdf/styled-page-emitter.js +21 -0
- package/dist/esm/pdf/styled-page-renderer.d.ts +18 -0
- package/dist/esm/pdf/styled-page-renderer.js +18 -0
- package/dist/esm/pdf/text-encoding.d.ts +16 -0
- package/dist/esm/pdf/text-page-renderer.d.ts +11 -0
- package/dist/esm/pdf/vector-graphics.d.ts +12 -0
- package/dist/esm/pdf/vector-graphics.js +12 -0
- package/dist/esm/pdf/writer.d.ts +39 -0
- package/dist/esm/pdf/writer.js +27 -0
- package/dist/esm/pdf/xmp.d.ts +16 -0
- package/dist/esm/pdf/xmp.js +9 -0
- package/dist/esm/pdf-reader/ccitt.d.ts +25 -0
- package/dist/esm/pdf-reader/ccitt.js +15 -0
- package/dist/esm/pdf-reader/cmap.d.ts +12 -0
- package/dist/esm/pdf-reader/cmap.js +9 -0
- package/dist/esm/pdf-reader/content.d.ts +69 -0
- package/dist/esm/pdf-reader/content.js +16 -0
- package/dist/esm/pdf-reader/crypto.d.ts +5 -0
- package/dist/esm/pdf-reader/crypto.js +5 -0
- package/dist/esm/pdf-reader/decrypt.d.ts +17 -0
- package/dist/esm/pdf-reader/decrypt.js +12 -0
- package/dist/esm/pdf-reader/document.d.ts +53 -0
- package/dist/esm/pdf-reader/document.js +50 -0
- package/dist/esm/pdf-reader/flow-build.d.ts +47 -0
- package/dist/esm/pdf-reader/flow-build.js +42 -0
- package/dist/esm/pdf-reader/font.d.ts +12 -0
- package/dist/esm/pdf-reader/font.js +12 -0
- package/dist/esm/pdf-reader/image-decode.d.ts +21 -0
- package/dist/esm/pdf-reader/image-decode.js +14 -0
- package/dist/esm/pdf-reader/images.d.ts +19 -0
- package/dist/esm/pdf-reader/images.js +9 -0
- package/dist/esm/pdf-reader/layout.d.ts +15 -0
- package/dist/esm/pdf-reader/layout.js +15 -0
- package/dist/esm/pdf-reader/lexer.d.ts +43 -0
- package/dist/esm/pdf-reader/lexer.js +38 -0
- package/dist/esm/pdf-reader/parser.d.ts +15 -0
- package/dist/esm/pdf-reader/parser.js +8 -0
- package/dist/esm/pdf-reader/png-encode.d.ts +9 -0
- package/dist/esm/pdf-reader/png-encode.js +8 -0
- package/dist/esm/pdf-reader/predictor.d.ts +9 -0
- package/dist/esm/pdf-reader/predictor.js +8 -0
- package/dist/esm/pdf-reader/reader.d.ts +16 -0
- package/dist/esm/pdf-reader/reader.js +16 -0
- package/dist/esm/pdf-reader/shading.d.ts +10 -0
- package/dist/esm/pdf-reader/shading.js +10 -0
- package/dist/esm/pdf-reader/struct-tree.d.ts +24 -0
- package/dist/esm/pdf-reader/struct-tree.js +12 -0
- package/dist/esm/pdf-reader/tagged.d.ts +13 -0
- package/dist/esm/pdf-reader/tagged.js +13 -0
- package/dist/esm/pdf-reader/text.d.ts +11 -0
- package/dist/esm/pdf-reader/text.js +11 -0
- package/dist/esm/pdf-reader/vector.d.ts +19 -0
- package/dist/esm/pdf-reader/vector.js +9 -0
- package/dist/esm/pptx/placeholder-cascade.d.ts +21 -0
- package/dist/esm/pptx/placeholder-cascade.js +10 -0
- package/dist/esm/pptx/ppt/ppt-reader.d.ts +16 -0
- package/dist/esm/pptx/ppt/ppt-reader.js +16 -0
- package/dist/esm/pptx/ppt/ppt-text.d.ts +55 -0
- package/dist/esm/pptx/ppt/ppt-text.js +14 -0
- package/dist/esm/pptx/pptx-reader.d.ts +21 -0
- package/dist/esm/pptx/pptx-reader.js +23 -2
- package/dist/esm/pptx/slide-parser.d.ts +102 -0
- package/dist/esm/pptx/slide-parser.js +78 -0
- package/dist/esm/pptx/sp-helpers.d.ts +28 -0
- package/dist/esm/pptx/sp-helpers.js +22 -0
- package/dist/esm/svg/svg-writer.d.ts +17 -0
- package/dist/esm/svg/svg-writer.js +16 -0
- package/dist/esm/word/doc/doc-reader.d.ts +16 -0
- package/dist/esm/word/doc/doc-reader.js +16 -0
- package/dist/esm/word/doc/doc-text.d.ts +77 -0
- package/dist/esm/word/doc/doc-text.js +13 -0
- package/dist/esm/word/document-parser.d.ts +134 -0
- package/dist/esm/word/document-parser.js +86 -0
- package/dist/esm/word/docx-reader.d.ts +16 -0
- package/dist/esm/word/docx-reader.js +18 -2
- package/dist/esm/word/docx-to-pdf.d.ts +52 -0
- package/dist/esm/word/docx-to-pdf.js +21 -0
- package/dist/esm/word/docx-writer.d.ts +17 -0
- package/dist/esm/word/docx-writer.js +17 -0
- package/dist/esm/word/drawing-parser.d.ts +88 -0
- package/dist/esm/word/drawing-parser.js +68 -0
- package/dist/esm/word/font-table.d.ts +24 -0
- package/dist/esm/word/font-table.js +24 -0
- package/dist/esm/word/numbering-parser.d.ts +11 -0
- package/dist/esm/word/numbering-parser.js +11 -0
- package/dist/esm/word/omml-parser.d.ts +15 -0
- package/dist/esm/word/omml-parser.js +15 -0
- package/dist/esm/word/omml-serializer.d.ts +9 -0
- package/dist/esm/word/omml-serializer.js +9 -0
- package/dist/esm/word/paragraph-properties.d.ts +10 -0
- package/dist/esm/word/paragraph-properties.js +10 -0
- package/dist/esm/word/po-to-flat.d.ts +11 -0
- package/dist/esm/word/po-to-flat.js +11 -0
- package/dist/esm/word/run-properties.d.ts +10 -0
- package/dist/esm/word/run-properties.js +10 -0
- package/dist/esm/word/settings-parser.d.ts +13 -0
- package/dist/esm/word/settings-parser.js +8 -0
- package/dist/esm/word/styles-parser.d.ts +10 -0
- package/dist/esm/word/styles-parser.js +10 -0
- package/dist/esm/word/table-parser.d.ts +11 -0
- package/dist/esm/word/table-parser.js +11 -0
- package/dist/esm/word/text-extractor.d.ts +9 -0
- package/dist/esm/word/xml-helpers.d.ts +44 -0
- package/dist/esm/word/xml-helpers.js +38 -0
- package/package.json +5 -2
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import { EvalContext } from './context.js';
|
|
2
|
+
/**
|
|
3
|
+
* §18.17.2 — the seven error values a formula can carry. Stored as their literal
|
|
4
|
+
* display text so they round-trip and read naturally in diagnostics.
|
|
5
|
+
*/
|
|
2
6
|
export type FErr = '#NULL!' | '#DIV/0!' | '#VALUE!' | '#REF!' | '#NAME?' | '#NUM!' | '#N/A';
|
|
7
|
+
/**
|
|
8
|
+
* A rectangle of cells (absolute, 0-indexed, inclusive) — the value an `A1:B3`
|
|
9
|
+
* reference evaluates to. A single cell is a 1×1 rect. Aggregate functions iterate
|
|
10
|
+
* it; scalar contexts dereference it (1×1 → its value, else `#VALUE!`).
|
|
11
|
+
*/
|
|
3
12
|
export interface Rect {
|
|
4
13
|
readonly r0: number;
|
|
5
14
|
readonly c0: number;
|
|
6
15
|
readonly r1: number;
|
|
7
16
|
readonly c1: number;
|
|
8
17
|
}
|
|
18
|
+
/** One of the five scalar value kinds a formula evaluates to. */
|
|
9
19
|
export type Scalar = {
|
|
10
20
|
readonly t: 'num';
|
|
11
21
|
readonly v: number;
|
|
@@ -21,6 +31,19 @@ export type Scalar = {
|
|
|
21
31
|
} | {
|
|
22
32
|
readonly t: 'blank';
|
|
23
33
|
};
|
|
34
|
+
/**
|
|
35
|
+
* Any value a formula evaluates to: a {@link Scalar}, a `ref` (a {@link Rect},
|
|
36
|
+
* optionally cross-sheet), or an `arr` (an inline array constant).
|
|
37
|
+
*
|
|
38
|
+
* `sheet` (a workbook sheet index) is set only for a cross-sheet qualifier
|
|
39
|
+
* (`Sheet2!A1`) or a defined name that targets another sheet; when undefined the
|
|
40
|
+
* reference is on the rule's own sheet (the common case).
|
|
41
|
+
*
|
|
42
|
+
* An `arr` value is an inline array constant (`{1,2;3,4}`) — rows of scalars. It
|
|
43
|
+
* flattens into aggregates, broadcasts element-wise against a scalar in the
|
|
44
|
+
* operators, and collapses to its top-left element in a scalar context (Excel's
|
|
45
|
+
* implicit intersection of a constant array).
|
|
46
|
+
*/
|
|
24
47
|
export type FValue = Scalar | {
|
|
25
48
|
readonly t: 'ref';
|
|
26
49
|
readonly rect: Rect;
|
|
@@ -29,24 +52,54 @@ export type FValue = Scalar | {
|
|
|
29
52
|
readonly t: 'arr';
|
|
30
53
|
readonly rows: ReadonlyArray<ReadonlyArray<Scalar>>;
|
|
31
54
|
};
|
|
55
|
+
/** The blank scalar (an empty / absent cell). */
|
|
32
56
|
export declare const BLANK: Scalar;
|
|
57
|
+
/** The logical TRUE scalar. */
|
|
33
58
|
export declare const TRUE: Scalar;
|
|
59
|
+
/** The logical FALSE scalar. */
|
|
34
60
|
export declare const FALSE: Scalar;
|
|
61
|
+
/** Wrap a number as a scalar; a non-finite result (overflow, 0/0) becomes `#NUM!`. */
|
|
35
62
|
export declare function num(v: number): Scalar;
|
|
63
|
+
/** Wrap a string as a text scalar. */
|
|
36
64
|
export declare function str(v: string): Scalar;
|
|
65
|
+
/** The {@link TRUE} / {@link FALSE} scalar for a boolean. */
|
|
37
66
|
export declare function bool(v: boolean): Scalar;
|
|
67
|
+
/** Wrap an error code as an error scalar. */
|
|
38
68
|
export declare function err(v: FErr): Scalar;
|
|
69
|
+
/** Type guard: is the value an error scalar? */
|
|
39
70
|
export declare function isErr(v: FValue): v is {
|
|
40
71
|
t: 'err';
|
|
41
72
|
v: FErr;
|
|
42
73
|
};
|
|
74
|
+
/**
|
|
75
|
+
* Collapse a reference to a scalar: a 1×1 rect yields the cell's value (a blank cell
|
|
76
|
+
* → blank); any larger rect in a scalar context is `#VALUE!` (we do not implement
|
|
77
|
+
* implicit intersection). An array constant collapses to its top-left element;
|
|
78
|
+
* non-refs pass through unchanged.
|
|
79
|
+
*/
|
|
43
80
|
export declare function deref(v: FValue, ctx: EvalContext): Scalar;
|
|
81
|
+
/** Visit every scalar element of an array constant, row by row. */
|
|
44
82
|
export declare function arrEach(rows: ReadonlyArray<ReadonlyArray<Scalar>>, visit: (value: Scalar) => void): void;
|
|
83
|
+
/**
|
|
84
|
+
* Iterate the populated cells of a reference, honouring a cross-sheet qualifier (an
|
|
85
|
+
* absent `eachCellOn` ⇒ no cross-sheet support ⇒ the foreign range is empty).
|
|
86
|
+
*/
|
|
45
87
|
export declare function refEach(v: {
|
|
46
88
|
readonly rect: Rect;
|
|
47
89
|
readonly sheet?: number;
|
|
48
90
|
}, ctx: EvalContext, visit: (row: number, col: number, value: Scalar) => void): void;
|
|
91
|
+
/** Read one absolute cell on a reference's sheet (the current sheet when `sheet` is unset). */
|
|
49
92
|
export declare function refGet(sheet: number | undefined, ctx: EvalContext, row: number, col: number): Scalar;
|
|
93
|
+
/**
|
|
94
|
+
* §18.17.3 — number coercion. blank → 0, logical → 1/0, a numeric string → its
|
|
95
|
+
* number (Excel parses `"5"` and `" 5 "` leniently); non-numeric text → `#VALUE!`.
|
|
96
|
+
* An error propagates (returned as the {@link FErr}); references are dereferenced first.
|
|
97
|
+
*/
|
|
50
98
|
export declare function toNumber(v: FValue, ctx: EvalContext): number | FErr;
|
|
99
|
+
/**
|
|
100
|
+
* §18.17.3 — text coercion. A number formats with the shortest round-trip
|
|
101
|
+
* representation, a logical as `TRUE`/`FALSE`, blank as the empty string. Errors
|
|
102
|
+
* propagate (returned as the {@link FErr}).
|
|
103
|
+
*/
|
|
51
104
|
export declare function toText(v: FValue, ctx: EvalContext): string | FErr;
|
|
52
105
|
export declare function toBool(v: FValue, ctx: EvalContext): boolean | FErr;
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
//#region src/excel/formula/value.ts
|
|
2
|
+
/** The blank scalar (an empty / absent cell). */
|
|
2
3
|
var BLANK = { t: "blank" };
|
|
4
|
+
/** The logical TRUE scalar. */
|
|
3
5
|
var TRUE = {
|
|
4
6
|
t: "bool",
|
|
5
7
|
v: true
|
|
6
8
|
};
|
|
9
|
+
/** The logical FALSE scalar. */
|
|
7
10
|
var FALSE = {
|
|
8
11
|
t: "bool",
|
|
9
12
|
v: false
|
|
10
13
|
};
|
|
14
|
+
/** Wrap a number as a scalar; a non-finite result (overflow, 0/0) becomes `#NUM!`. */
|
|
11
15
|
function num(v) {
|
|
12
16
|
return Number.isFinite(v) ? {
|
|
13
17
|
t: "num",
|
|
@@ -17,24 +21,34 @@ function num(v) {
|
|
|
17
21
|
v: "#NUM!"
|
|
18
22
|
};
|
|
19
23
|
}
|
|
24
|
+
/** Wrap a string as a text scalar. */
|
|
20
25
|
function str(v) {
|
|
21
26
|
return {
|
|
22
27
|
t: "str",
|
|
23
28
|
v
|
|
24
29
|
};
|
|
25
30
|
}
|
|
31
|
+
/** The {@link TRUE} / {@link FALSE} scalar for a boolean. */
|
|
26
32
|
function bool(v) {
|
|
27
33
|
return v ? TRUE : FALSE;
|
|
28
34
|
}
|
|
35
|
+
/** Wrap an error code as an error scalar. */
|
|
29
36
|
function err(v) {
|
|
30
37
|
return {
|
|
31
38
|
t: "err",
|
|
32
39
|
v
|
|
33
40
|
};
|
|
34
41
|
}
|
|
42
|
+
/** Type guard: is the value an error scalar? */
|
|
35
43
|
function isErr(v) {
|
|
36
44
|
return v.t === "err";
|
|
37
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Collapse a reference to a scalar: a 1×1 rect yields the cell's value (a blank cell
|
|
48
|
+
* → blank); any larger rect in a scalar context is `#VALUE!` (we do not implement
|
|
49
|
+
* implicit intersection). An array constant collapses to its top-left element;
|
|
50
|
+
* non-refs pass through unchanged.
|
|
51
|
+
*/
|
|
38
52
|
function deref(v, ctx) {
|
|
39
53
|
if (v.t === "arr") return v.rows[0]?.[0] ?? BLANK;
|
|
40
54
|
if (v.t !== "ref") return v;
|
|
@@ -42,16 +56,27 @@ function deref(v, ctx) {
|
|
|
42
56
|
if (r0 === r1 && c0 === c1) return refGet(v.sheet, ctx, r0, c0);
|
|
43
57
|
return err("#VALUE!");
|
|
44
58
|
}
|
|
59
|
+
/** Visit every scalar element of an array constant, row by row. */
|
|
45
60
|
function arrEach(rows, visit) {
|
|
46
61
|
for (const row of rows) for (const s of row) visit(s);
|
|
47
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Iterate the populated cells of a reference, honouring a cross-sheet qualifier (an
|
|
65
|
+
* absent `eachCellOn` ⇒ no cross-sheet support ⇒ the foreign range is empty).
|
|
66
|
+
*/
|
|
48
67
|
function refEach(v, ctx, visit) {
|
|
49
68
|
if (v.sheet !== void 0) ctx.eachCellOn?.(v.sheet, v.rect, visit);
|
|
50
69
|
else ctx.eachCell(v.rect, visit);
|
|
51
70
|
}
|
|
71
|
+
/** Read one absolute cell on a reference's sheet (the current sheet when `sheet` is unset). */
|
|
52
72
|
function refGet(sheet, ctx, row, col) {
|
|
53
73
|
return sheet !== void 0 ? ctx.getCellOn?.(sheet, row, col) ?? BLANK : ctx.getCell(row, col);
|
|
54
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* §18.17.3 — number coercion. blank → 0, logical → 1/0, a numeric string → its
|
|
77
|
+
* number (Excel parses `"5"` and `" 5 "` leniently); non-numeric text → `#VALUE!`.
|
|
78
|
+
* An error propagates (returned as the {@link FErr}); references are dereferenced first.
|
|
79
|
+
*/
|
|
55
80
|
function toNumber(v, ctx) {
|
|
56
81
|
const s = deref(v, ctx);
|
|
57
82
|
switch (s.t) {
|
|
@@ -67,6 +92,11 @@ function toNumber(v, ctx) {
|
|
|
67
92
|
}
|
|
68
93
|
}
|
|
69
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* §18.17.3 — text coercion. A number formats with the shortest round-trip
|
|
97
|
+
* representation, a logical as `TRUE`/`FALSE`, blank as the empty string. Errors
|
|
98
|
+
* propagate (returned as the {@link FErr}).
|
|
99
|
+
*/
|
|
70
100
|
function toText(v, ctx) {
|
|
71
101
|
const s = deref(v, ctx);
|
|
72
102
|
switch (s.t) {
|
|
@@ -1,2 +1,11 @@
|
|
|
1
1
|
import { BodyElement } from '../core/document-model/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Expand a print header/footer `&`-code string (E-SHEET W4) into header/footer band
|
|
4
|
+
* content — one aligned paragraph per non-empty left/centre/right region — or `[]`
|
|
5
|
+
* when every region is empty. `&P`/`&N` become dynamic PAGE/NUMPAGES field runs the
|
|
6
|
+
* renderer resolves per page; non-deterministic or unsupported codes are dropped.
|
|
7
|
+
*
|
|
8
|
+
* @param formatString The raw `&`-code format string.
|
|
9
|
+
* @param sheetName The worksheet tab name, substituted for `&A`.
|
|
10
|
+
*/
|
|
2
11
|
export declare function buildHeaderFooterContent(formatString: string, sheetName: string): Array<BodyElement>;
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
//#region src/excel/header-footer.ts
|
|
2
|
+
/**
|
|
3
|
+
* Expand a print header/footer `&`-code string (E-SHEET W4) into header/footer band
|
|
4
|
+
* content — one aligned paragraph per non-empty left/centre/right region — or `[]`
|
|
5
|
+
* when every region is empty. `&P`/`&N` become dynamic PAGE/NUMPAGES field runs the
|
|
6
|
+
* renderer resolves per page; non-deterministic or unsupported codes are dropped.
|
|
7
|
+
*
|
|
8
|
+
* @param formatString The raw `&`-code format string.
|
|
9
|
+
* @param sheetName The worksheet tab name, substituted for `&A`.
|
|
10
|
+
*/
|
|
2
11
|
function buildHeaderFooterContent(formatString, sheetName) {
|
|
3
12
|
const regions = parseHeaderFooterString(formatString, sheetName);
|
|
4
13
|
const out = [];
|
|
@@ -1,3 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render a cell's raw stored value through its number format (§18.8.30 built-ins
|
|
3
|
+
* and §18.8.31 custom codes). Handles `General`, text (`@`), the built-in date /
|
|
4
|
+
* time formats, custom date codes, and the numeric placeholder grammar (`0` `#`
|
|
5
|
+
* `,` `.` `%`, scientific notation, quoted literals, `;`-separated sections). An
|
|
6
|
+
* unknown id, or a value that does not parse as a number, falls back to a plain
|
|
7
|
+
* render of `rawValue`.
|
|
8
|
+
*
|
|
9
|
+
* @param rawValue The cell's raw stored value (a serial for dates).
|
|
10
|
+
* @param numFmtId The number-format id from the cell's `cellXf`.
|
|
11
|
+
* @param customFormats Custom format codes by id (from `<numFmts>`).
|
|
12
|
+
* @param date1904 The workbook date epoch (1904 vs the 1900 default).
|
|
13
|
+
* @returns The formatted display string.
|
|
14
|
+
*/
|
|
1
15
|
export declare function applyNumberFormat(rawValue: string, numFmtId: number, customFormats: ReadonlyMap<number, string>, date1904?: boolean): string;
|
|
16
|
+
/**
|
|
17
|
+
* Excel serial date → JS `Date`. The default 1900 epoch uses 1899-12-30 as day 0
|
|
18
|
+
* (so serial 1 is 1900-01-01) and inherits the Lotus 1-2-3 leap-year bug: serial 60
|
|
19
|
+
* is considered "1900-02-29" which never existed. For serial ≥ 61 the simple
|
|
20
|
+
* formula is exact; values < 60 are vanishingly rare in business sheets (and our
|
|
21
|
+
* render is approximate anyway).
|
|
22
|
+
*
|
|
23
|
+
* The 1904 epoch (legacy Mac Excel) uses 1904-01-01 as day 0 and has no leap bug.
|
|
24
|
+
* Files saved with `<workbookPr date1904="1"/>` store dates offset by exactly 1462
|
|
25
|
+
* days from the 1900-epoch interpretation.
|
|
26
|
+
*/
|
|
2
27
|
export declare function excelSerialToDate(serial: number, date1904: boolean): Date;
|
|
28
|
+
/**
|
|
29
|
+
* The inverse over a UTC calendar date: `(year, month0, day)` → the integer Excel
|
|
30
|
+
* serial day, using the same epoch. Round-trips {@link excelSerialToDate} exactly
|
|
31
|
+
* for an integer serial (the time-of-day is zero), so a serial → parts → serial
|
|
32
|
+
* loop is stable. Used by the formula engine's date functions and the `timePeriod`
|
|
33
|
+
* windows (E-SHEET W9) to map an injected reference date into serial space.
|
|
34
|
+
*
|
|
35
|
+
* @param month0 The 0-indexed month (0 = January).
|
|
36
|
+
*/
|
|
3
37
|
export declare function excelSerialFromUtcParts(year: number, month0: number, day: number, date1904: boolean): number;
|
|
@@ -28,6 +28,20 @@ var BUILTIN_DATE_FORMATS = new Map([
|
|
|
28
28
|
[46, "[h]:mm:ss"],
|
|
29
29
|
[47, "mm:ss.0"]
|
|
30
30
|
]);
|
|
31
|
+
/**
|
|
32
|
+
* Render a cell's raw stored value through its number format (§18.8.30 built-ins
|
|
33
|
+
* and §18.8.31 custom codes). Handles `General`, text (`@`), the built-in date /
|
|
34
|
+
* time formats, custom date codes, and the numeric placeholder grammar (`0` `#`
|
|
35
|
+
* `,` `.` `%`, scientific notation, quoted literals, `;`-separated sections). An
|
|
36
|
+
* unknown id, or a value that does not parse as a number, falls back to a plain
|
|
37
|
+
* render of `rawValue`.
|
|
38
|
+
*
|
|
39
|
+
* @param rawValue The cell's raw stored value (a serial for dates).
|
|
40
|
+
* @param numFmtId The number-format id from the cell's `cellXf`.
|
|
41
|
+
* @param customFormats Custom format codes by id (from `<numFmts>`).
|
|
42
|
+
* @param date1904 The workbook date epoch (1904 vs the 1900 default).
|
|
43
|
+
* @returns The formatted display string.
|
|
44
|
+
*/
|
|
31
45
|
function applyNumberFormat(rawValue, numFmtId, customFormats, date1904 = false) {
|
|
32
46
|
if (rawValue.length === 0) return "";
|
|
33
47
|
if (numFmtId === 0) return defaultNumberRender(rawValue);
|
|
@@ -41,11 +55,31 @@ function applyNumberFormat(rawValue, numFmtId, customFormats, date1904 = false)
|
|
|
41
55
|
if (format === "General") return defaultNumberRender(rawValue);
|
|
42
56
|
return applyFormatString(rawValue, format);
|
|
43
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Excel serial date → JS `Date`. The default 1900 epoch uses 1899-12-30 as day 0
|
|
60
|
+
* (so serial 1 is 1900-01-01) and inherits the Lotus 1-2-3 leap-year bug: serial 60
|
|
61
|
+
* is considered "1900-02-29" which never existed. For serial ≥ 61 the simple
|
|
62
|
+
* formula is exact; values < 60 are vanishingly rare in business sheets (and our
|
|
63
|
+
* render is approximate anyway).
|
|
64
|
+
*
|
|
65
|
+
* The 1904 epoch (legacy Mac Excel) uses 1904-01-01 as day 0 and has no leap bug.
|
|
66
|
+
* Files saved with `<workbookPr date1904="1"/>` store dates offset by exactly 1462
|
|
67
|
+
* days from the 1900-epoch interpretation.
|
|
68
|
+
*/
|
|
44
69
|
function excelSerialToDate(serial, date1904) {
|
|
45
70
|
const ms = serial * 86400 * 1e3;
|
|
46
71
|
if (date1904) return new Date(Date.UTC(1904, 0, 1) + ms);
|
|
47
72
|
return new Date(Date.UTC(1899, 11, 30) + ms);
|
|
48
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* The inverse over a UTC calendar date: `(year, month0, day)` → the integer Excel
|
|
76
|
+
* serial day, using the same epoch. Round-trips {@link excelSerialToDate} exactly
|
|
77
|
+
* for an integer serial (the time-of-day is zero), so a serial → parts → serial
|
|
78
|
+
* loop is stable. Used by the formula engine's date functions and the `timePeriod`
|
|
79
|
+
* windows (E-SHEET W9) to map an injected reference date into serial space.
|
|
80
|
+
*
|
|
81
|
+
* @param month0 The 0-indexed month (0 = January).
|
|
82
|
+
*/
|
|
49
83
|
function excelSerialFromUtcParts(year, month0, day, date1904) {
|
|
50
84
|
const epoch = date1904 ? Date.UTC(1904, 0, 1) : Date.UTC(1899, 11, 30);
|
|
51
85
|
return Math.round((Date.UTC(year, month0, day) - epoch) / 864e5);
|
|
@@ -1,2 +1,10 @@
|
|
|
1
1
|
import { PivotTable } from '../core/spreadsheet-model/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parse `xl/pivotTables/pivotTableN.xml` (§18.10.1.73) into a {@link PivotTable}:
|
|
4
|
+
* the output `<location>` (range + header/data offsets), the banded-style flags,
|
|
5
|
+
* and the row/column total markers derived from `<rowItems>`/`<colItems>` (so the
|
|
6
|
+
* reader can band the region in the pivot palette — E-PIVOT). The output cells are
|
|
7
|
+
* already cached in the worksheet, so they render as a normal grid. Returns
|
|
8
|
+
* undefined when the root or its `ref` is missing.
|
|
9
|
+
*/
|
|
2
10
|
export declare function parsePivotTablePart(data: Uint8Array): PivotTable | undefined;
|
|
@@ -9,6 +9,14 @@ var parser = new XMLParser({
|
|
|
9
9
|
parseTagValue: false,
|
|
10
10
|
removeNSPrefix: true
|
|
11
11
|
});
|
|
12
|
+
/**
|
|
13
|
+
* Parse `xl/pivotTables/pivotTableN.xml` (§18.10.1.73) into a {@link PivotTable}:
|
|
14
|
+
* the output `<location>` (range + header/data offsets), the banded-style flags,
|
|
15
|
+
* and the row/column total markers derived from `<rowItems>`/`<colItems>` (so the
|
|
16
|
+
* reader can band the region in the pivot palette — E-PIVOT). The output cells are
|
|
17
|
+
* already cached in the worksheet, so they render as a normal grid. Returns
|
|
18
|
+
* undefined when the root or its `ref` is missing.
|
|
19
|
+
*/
|
|
12
20
|
function parsePivotTablePart(data) {
|
|
13
21
|
const def = asObj(parser.parse(decoder.decode(data))["pivotTableDefinition"]);
|
|
14
22
|
if (!def) return void 0;
|
|
@@ -1,11 +1,53 @@
|
|
|
1
1
|
import { BodyElement, SectionProperties, Table } from '../core/document-model/index.js';
|
|
2
2
|
import { CellRange, DefinedName, ParsedWorksheet, SheetRichRun, WorksheetCell, XlsxStyles } from './index.js';
|
|
3
3
|
import { SheetHyperlink, SheetSlicer } from '../core/ir/sheet.js';
|
|
4
|
+
import { Loss } from '../core/ir/loss.js';
|
|
5
|
+
/**
|
|
6
|
+
* Excel "character width" → twips: the default font's Maximum Digit Width,
|
|
7
|
+
* ~7 px at 96 DPI ≈ 5.25 pt ≈ 105 twips.
|
|
8
|
+
*/
|
|
4
9
|
export declare const TWIPS_PER_EXCEL_CHAR = 105;
|
|
10
|
+
/**
|
|
11
|
+
* ECMA-376 §18.3.1.13 — a `<col width>` measures characters of text, and the
|
|
12
|
+
* rendered column is that many Maximum Digit Widths PLUS a fixed 5-pixel
|
|
13
|
+
* padding: `px = chars × MDW + 5`. 5 px at 96 DPI = 3.75 pt = 75 twips.
|
|
14
|
+
*
|
|
15
|
+
* Omitting it made every column 75 twips narrow, which compounds: on a sheet of
|
|
16
|
+
* equal 12-character columns the third one landed ~37 pt left of where
|
|
17
|
+
* LibreOffice puts it. That {@link DEFAULT_COL_TWIPS} below is 960 is the proof
|
|
18
|
+
* the padding belongs — 8.43 characters only reaches Excel's documented 64 px
|
|
19
|
+
* default with it (8.43 × 7 + 5 = 64.01 px = 48.01 pt = 960 twips), so the
|
|
20
|
+
* default was derived from the full formula while the explicit path dropped it.
|
|
21
|
+
*/
|
|
22
|
+
export declare const COL_PADDING_TWIPS = 75;
|
|
23
|
+
/**
|
|
24
|
+
* Excel's default column width is 8.43 "characters" ≈ 64px ≈ 960 twips. Used for
|
|
25
|
+
* columns without an explicit `<col width="..">`.
|
|
26
|
+
*/
|
|
5
27
|
export declare const DEFAULT_COL_TWIPS = 960;
|
|
28
|
+
/**
|
|
29
|
+
* Excel's default row height is ~15pt = 300 twips. Used (for the `fitToHeight`
|
|
30
|
+
* estimate) for rows without an explicit `<row ht="..">`.
|
|
31
|
+
*/
|
|
6
32
|
export declare const DEFAULT_ROW_TWIPS = 300;
|
|
7
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Build the page section (paper size + margins) from a worksheet's `<pageSetup>`
|
|
35
|
+
* / `<pageMargins>`.
|
|
36
|
+
*
|
|
37
|
+
* Margins are always set, to Excel's own defaults when the worksheet declares
|
|
38
|
+
* none (§18.3.1.62) — the renderer's fallback is a word processor's inch, which
|
|
39
|
+
* is not what a spreadsheet prints. The paper size is left unset when the
|
|
40
|
+
* worksheet names none, because there the file genuinely holds no answer: Excel
|
|
41
|
+
* picks by locale and printer, and the renderer's deterministic A4 is as good
|
|
42
|
+
* as anything we could invent.
|
|
43
|
+
*/
|
|
44
|
+
export declare function sectionFromWorksheet(worksheet: ParsedWorksheet): SectionProperties;
|
|
45
|
+
/**
|
|
46
|
+
* ECMA-376 §18.2.5 — resolve the sheet-scoped `_xlnm.Print_Area` defined name
|
|
47
|
+
* (`localSheetId` = the sheet's 0-based index) into a clipping range.
|
|
48
|
+
*/
|
|
8
49
|
export declare function resolvePrintArea(definedNames: ReadonlyArray<DefinedName>, sheetIdx: number): CellRange | undefined;
|
|
50
|
+
/** ECMA-376 §18.2.5 — `_xlnm.Print_Titles` → the repeated row range (0-indexed). */
|
|
9
51
|
export declare function resolvePrintTitleRows(definedNames: ReadonlyArray<DefinedName>, sheetIdx: number): {
|
|
10
52
|
readonly startRow: number;
|
|
11
53
|
readonly endRow: number;
|
|
@@ -23,8 +65,42 @@ interface PrintModelOptions {
|
|
|
23
65
|
readonly hyperlinks?: ReadonlyArray<SheetHyperlink>;
|
|
24
66
|
readonly sharedStringRuns?: ReadonlyArray<ReadonlyArray<SheetRichRun> | undefined>;
|
|
25
67
|
readonly now?: Date;
|
|
68
|
+
readonly losses?: Array<Loss>;
|
|
26
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Project one worksheet's grid into Flow body elements — a single {@link Table}
|
|
72
|
+
* (or, when the sheet is wider than the page, several column-banded tables). The
|
|
73
|
+
* full print model lives here: the used-range/print-area window, merge handling,
|
|
74
|
+
* the style cascade (fonts/fills/borders/alignment), print scaling, conditional
|
|
75
|
+
* formatting, sparklines, table/pivot banding, overflow and rotation. Memory- and
|
|
76
|
+
* text-budget-bounded against untrusted input.
|
|
77
|
+
*
|
|
78
|
+
* @param worksheet The parsed grid + per-sheet geometry.
|
|
79
|
+
* @param sharedStrings The workbook shared-string table (`t="s"` cells index it).
|
|
80
|
+
* @param styles The workbook style table (cellXfs + fonts/fills/borders).
|
|
81
|
+
* @param date1904 The 1904 date system flag (serial-to-date epoch).
|
|
82
|
+
* @param print The print-model knobs (print area, gridlines, title rows, …).
|
|
83
|
+
* @returns The body elements (one table block, or banded tables); empty for a
|
|
84
|
+
* blank or empty-print-area sheet.
|
|
85
|
+
*/
|
|
27
86
|
export declare function worksheetToBody(worksheet: ParsedWorksheet, sharedStrings: ReadonlyArray<string>, styles: XlsxStyles, date1904: boolean, print: PrintModelOptions): Array<BodyElement>;
|
|
87
|
+
/**
|
|
88
|
+
* Resolve a cell's displayed text from its RAW stored value: shared-string and
|
|
89
|
+
* inline-string lookup, boolean → `TRUE`/`FALSE`, and the number-format pass
|
|
90
|
+
* (§18.8) for numeric cells. Error/string/date cells pass through verbatim.
|
|
91
|
+
*
|
|
92
|
+
* @param cell The parsed cell.
|
|
93
|
+
* @param sharedStrings The shared-string table for `t="s"` cells.
|
|
94
|
+
* @param styles The style table (for the cell's number format).
|
|
95
|
+
* @param date1904 The 1904 date system flag.
|
|
96
|
+
* @returns The resolved display string.
|
|
97
|
+
*/
|
|
28
98
|
export declare function resolveCellText(cell: WorksheetCell, sharedStrings: ReadonlyArray<string>, styles: XlsxStyles, date1904: boolean): string;
|
|
99
|
+
/**
|
|
100
|
+
* Project a slicer panel (E-SHEET SV2) into a styled mini-{@link Table} emitted
|
|
101
|
+
* after the grid: a caption header spanning the button columns, then one button
|
|
102
|
+
* cell per item — the slicer accent fill + white text when selected, a light
|
|
103
|
+
* band when not; the last row padded so every row keeps the column count.
|
|
104
|
+
*/
|
|
29
105
|
export declare function slicerTable(slicer: SheetSlicer): Table;
|
|
30
106
|
export {};
|