@cj-tech-master/excelts 9.2.1 → 9.3.0
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/README.md +25 -2
- package/README_zh.md +29 -6
- package/dist/browser/index.browser.d.ts +1 -1
- package/dist/browser/index.browser.js +4 -0
- package/dist/browser/index.d.ts +1 -1
- package/dist/browser/index.js +4 -0
- package/dist/browser/modules/excel/cell.d.ts +17 -3
- package/dist/browser/modules/excel/cell.js +170 -22
- package/dist/browser/modules/excel/defined-names.d.ts +96 -1
- package/dist/browser/modules/excel/defined-names.js +411 -21
- package/dist/browser/modules/excel/image.d.ts +11 -0
- package/dist/browser/modules/excel/image.js +24 -1
- package/dist/browser/modules/excel/stream/workbook-reader.browser.d.ts +9 -3
- package/dist/browser/modules/excel/stream/workbook-reader.browser.js +14 -0
- package/dist/browser/modules/excel/stream/workbook-reader.d.ts +2 -1
- package/dist/browser/modules/excel/stream/workbook-writer.browser.d.ts +39 -5
- package/dist/browser/modules/excel/stream/workbook-writer.browser.js +48 -1
- package/dist/browser/modules/excel/stream/workbook-writer.d.ts +3 -2
- package/dist/browser/modules/excel/stream/worksheet-reader.js +17 -1
- package/dist/browser/modules/excel/stream/worksheet-writer.d.ts +39 -6
- package/dist/browser/modules/excel/stream/worksheet-writer.js +45 -5
- package/dist/browser/modules/excel/table.js +15 -2
- package/dist/browser/modules/excel/types.d.ts +133 -2
- package/dist/browser/modules/excel/utils/col-cache.d.ts +1 -0
- package/dist/browser/modules/excel/utils/col-cache.js +15 -0
- package/dist/browser/modules/excel/utils/drawing-utils.d.ts +3 -3
- package/dist/browser/modules/excel/utils/drawing-utils.js +4 -0
- package/dist/browser/modules/excel/utils/external-link-formula.d.ts +76 -0
- package/dist/browser/modules/excel/utils/external-link-formula.js +208 -0
- package/dist/browser/modules/excel/utils/iterate-stream.d.ts +9 -3
- package/dist/browser/modules/excel/utils/iterate-stream.js +3 -1
- package/dist/browser/modules/excel/utils/ooxml-paths.d.ts +19 -0
- package/dist/browser/modules/excel/utils/ooxml-paths.js +37 -2
- package/dist/browser/modules/excel/utils/shared-strings.d.ts +8 -3
- package/dist/browser/modules/excel/utils/shared-strings.js +21 -2
- package/dist/browser/modules/excel/utils/workbook-protection.d.ts +30 -0
- package/dist/browser/modules/excel/utils/workbook-protection.js +30 -0
- package/dist/browser/modules/excel/workbook.browser.d.ts +257 -6
- package/dist/browser/modules/excel/workbook.browser.js +318 -34
- package/dist/browser/modules/excel/workbook.d.ts +1 -1
- package/dist/browser/modules/excel/worksheet.d.ts +3 -1
- package/dist/browser/modules/excel/worksheet.js +21 -2
- package/dist/browser/modules/excel/xlsx/rel-type.d.ts +15 -0
- package/dist/browser/modules/excel/xlsx/rel-type.js +16 -1
- package/dist/browser/modules/excel/xlsx/xform/book/defined-name-xform.d.ts +6 -5
- package/dist/browser/modules/excel/xlsx/xform/book/defined-name-xform.js +21 -86
- package/dist/browser/modules/excel/xlsx/xform/book/external-link-xform.d.ts +84 -0
- package/dist/browser/modules/excel/xlsx/xform/book/external-link-xform.js +330 -0
- package/dist/browser/modules/excel/xlsx/xform/book/external-reference-xform.d.ts +17 -0
- package/dist/browser/modules/excel/xlsx/xform/book/external-reference-xform.js +24 -0
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-calc-properties-xform.d.ts +3 -0
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-calc-properties-xform.js +11 -2
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-protection-xform.d.ts +20 -0
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-protection-xform.js +66 -0
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-xform.js +38 -5
- package/dist/browser/modules/excel/xlsx/xform/core/content-types-xform.js +19 -1
- package/dist/browser/modules/excel/xlsx/xform/core/metadata-xform.d.ts +56 -0
- package/dist/browser/modules/excel/xlsx/xform/core/metadata-xform.js +158 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.d.ts +26 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.js +105 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +3 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/drawing-xform.js +10 -2
- package/dist/browser/modules/excel/xlsx/xform/sheet/cell-xform.d.ts +1 -1
- package/dist/browser/modules/excel/xlsx/xform/sheet/cell-xform.js +166 -8
- package/dist/browser/modules/excel/xlsx/xform/sheet/data-validations-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/sheet/ignored-errors-xform.d.ts +21 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/ignored-errors-xform.js +80 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/worksheet-xform.js +9 -4
- package/dist/browser/modules/excel/xlsx/xform/style/border-xform.js +4 -1
- package/dist/browser/modules/excel/xlsx/xlsx.browser.d.ts +172 -13
- package/dist/browser/modules/excel/xlsx/xlsx.browser.js +410 -20
- package/dist/browser/modules/excel/xlsx/xlsx.d.ts +7 -4
- package/dist/browser/modules/excel/xlsx/xlsx.js +4 -5
- package/dist/browser/modules/formula/compile/address-utils.d.ts +62 -0
- package/dist/browser/modules/formula/compile/address-utils.js +83 -0
- package/dist/browser/modules/formula/compile/binder.d.ts +42 -0
- package/dist/browser/modules/formula/compile/binder.js +487 -0
- package/dist/browser/modules/formula/compile/bound-ast.d.ts +230 -0
- package/dist/browser/modules/formula/compile/bound-ast.js +80 -0
- package/dist/browser/modules/formula/compile/compiled-formula.d.ts +137 -0
- package/dist/browser/modules/formula/compile/compiled-formula.js +383 -0
- package/dist/browser/modules/formula/compile/dependency-analysis.d.ts +93 -0
- package/dist/browser/modules/formula/compile/dependency-analysis.js +432 -0
- package/dist/browser/modules/formula/compile/structured-ref-utils.d.ts +93 -0
- package/dist/browser/modules/formula/compile/structured-ref-utils.js +136 -0
- package/dist/browser/modules/formula/default-syntax-probe.d.ts +79 -0
- package/dist/browser/modules/formula/default-syntax-probe.js +83 -0
- package/dist/browser/modules/formula/functions/_date-context.d.ts +4 -0
- package/dist/browser/modules/formula/functions/_date-context.js +29 -0
- package/dist/browser/modules/formula/functions/_shared.d.ts +121 -0
- package/dist/browser/modules/formula/functions/_shared.js +381 -0
- package/dist/browser/modules/formula/functions/conditional.d.ts +27 -0
- package/dist/browser/modules/formula/functions/conditional.js +343 -0
- package/dist/browser/modules/formula/functions/database.d.ts +37 -0
- package/dist/browser/modules/formula/functions/database.js +274 -0
- package/dist/browser/modules/formula/functions/date.d.ts +61 -0
- package/dist/browser/modules/formula/functions/date.js +855 -0
- package/dist/browser/modules/formula/functions/dynamic-array.d.ts +23 -0
- package/dist/browser/modules/formula/functions/dynamic-array.js +860 -0
- package/dist/browser/modules/formula/functions/engineering.d.ts +57 -0
- package/dist/browser/modules/formula/functions/engineering.js +1128 -0
- package/dist/browser/modules/formula/functions/financial.d.ts +202 -0
- package/dist/browser/modules/formula/functions/financial.js +2296 -0
- package/dist/browser/modules/formula/functions/lookup.d.ts +18 -0
- package/dist/browser/modules/formula/functions/lookup.js +886 -0
- package/dist/browser/modules/formula/functions/math.d.ts +114 -0
- package/dist/browser/modules/formula/functions/math.js +1406 -0
- package/dist/browser/modules/formula/functions/statistical.d.ts +193 -0
- package/dist/browser/modules/formula/functions/statistical.js +3390 -0
- package/dist/browser/modules/formula/functions/text.d.ts +86 -0
- package/dist/browser/modules/formula/functions/text.js +1845 -0
- package/dist/browser/modules/formula/host-registry.d.ts +53 -0
- package/dist/browser/modules/formula/host-registry.js +69 -0
- package/dist/browser/modules/formula/index.d.ts +39 -0
- package/dist/browser/modules/formula/index.js +49 -0
- package/dist/browser/modules/formula/install.d.ts +62 -0
- package/dist/browser/modules/formula/install.js +88 -0
- package/dist/browser/modules/formula/integration/apply-writeback-plan.d.ts +26 -0
- package/dist/browser/modules/formula/integration/apply-writeback-plan.js +210 -0
- package/dist/browser/modules/formula/integration/calculate-formulas-impl.d.ts +30 -0
- package/dist/browser/modules/formula/integration/calculate-formulas-impl.js +616 -0
- package/dist/browser/modules/formula/integration/calculate-formulas.d.ts +67 -0
- package/dist/browser/modules/formula/integration/calculate-formulas.js +68 -0
- package/dist/browser/modules/formula/integration/formula-instance.d.ts +64 -0
- package/dist/browser/modules/formula/integration/formula-instance.js +79 -0
- package/dist/browser/modules/formula/integration/workbook-adapter.d.ts +26 -0
- package/dist/browser/modules/formula/integration/workbook-adapter.js +324 -0
- package/dist/browser/modules/formula/integration/workbook-snapshot.d.ts +267 -0
- package/dist/browser/modules/formula/integration/workbook-snapshot.js +77 -0
- package/dist/browser/modules/formula/materialize/build-writeback-plan.d.ts +34 -0
- package/dist/browser/modules/formula/materialize/build-writeback-plan.js +473 -0
- package/dist/browser/modules/formula/materialize/spill-engine.d.ts +9 -0
- package/dist/browser/modules/formula/materialize/spill-engine.js +38 -0
- package/dist/browser/modules/formula/materialize/types.d.ts +179 -0
- package/dist/browser/modules/formula/materialize/types.js +29 -0
- package/dist/browser/modules/formula/materialize/writeback-plan.d.ts +167 -0
- package/dist/browser/modules/formula/materialize/writeback-plan.js +27 -0
- package/dist/browser/modules/formula/runtime/evaluator.d.ts +151 -0
- package/dist/browser/modules/formula/runtime/evaluator.js +2291 -0
- package/dist/browser/modules/formula/runtime/function-registry.d.ts +47 -0
- package/dist/browser/modules/formula/runtime/function-registry.js +840 -0
- package/dist/browser/modules/formula/runtime/values.d.ts +211 -0
- package/dist/browser/modules/formula/runtime/values.js +385 -0
- package/dist/browser/modules/formula/syntax/ast.d.ts +129 -0
- package/dist/browser/modules/formula/syntax/ast.js +28 -0
- package/dist/browser/modules/formula/syntax/parser.d.ts +18 -0
- package/dist/browser/modules/formula/syntax/parser.js +439 -0
- package/dist/browser/modules/formula/syntax/token-types.d.ts +153 -0
- package/dist/browser/modules/formula/syntax/token-types.js +59 -0
- package/dist/browser/modules/formula/syntax/tokenizer.d.ts +10 -0
- package/dist/browser/modules/formula/syntax/tokenizer.js +1074 -0
- package/dist/browser/modules/pdf/excel-bridge.js +9 -0
- package/dist/cjs/index.js +4 -0
- package/dist/cjs/modules/excel/cell.js +170 -22
- package/dist/cjs/modules/excel/defined-names.js +411 -21
- package/dist/cjs/modules/excel/image.js +24 -1
- package/dist/cjs/modules/excel/stream/workbook-reader.browser.js +14 -0
- package/dist/cjs/modules/excel/stream/workbook-writer.browser.js +48 -1
- package/dist/cjs/modules/excel/stream/worksheet-reader.js +17 -1
- package/dist/cjs/modules/excel/stream/worksheet-writer.js +45 -5
- package/dist/cjs/modules/excel/table.js +15 -2
- package/dist/cjs/modules/excel/utils/col-cache.js +15 -0
- package/dist/cjs/modules/excel/utils/drawing-utils.js +4 -0
- package/dist/cjs/modules/excel/utils/external-link-formula.js +212 -0
- package/dist/cjs/modules/excel/utils/iterate-stream.js +3 -1
- package/dist/cjs/modules/excel/utils/ooxml-paths.js +42 -2
- package/dist/cjs/modules/excel/utils/shared-strings.js +21 -2
- package/dist/cjs/modules/excel/utils/workbook-protection.js +33 -0
- package/dist/cjs/modules/excel/workbook.browser.js +318 -34
- package/dist/cjs/modules/excel/worksheet.js +20 -1
- package/dist/cjs/modules/excel/xlsx/rel-type.js +16 -1
- package/dist/cjs/modules/excel/xlsx/xform/book/defined-name-xform.js +21 -86
- package/dist/cjs/modules/excel/xlsx/xform/book/external-link-xform.js +333 -0
- package/dist/cjs/modules/excel/xlsx/xform/book/external-reference-xform.js +27 -0
- package/dist/cjs/modules/excel/xlsx/xform/book/workbook-calc-properties-xform.js +11 -2
- package/dist/cjs/modules/excel/xlsx/xform/book/workbook-protection-xform.js +69 -0
- package/dist/cjs/modules/excel/xlsx/xform/book/workbook-xform.js +38 -5
- package/dist/cjs/modules/excel/xlsx/xform/core/content-types-xform.js +18 -0
- package/dist/cjs/modules/excel/xlsx/xform/core/metadata-xform.js +161 -0
- package/dist/cjs/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.js +108 -0
- package/dist/cjs/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +3 -0
- package/dist/cjs/modules/excel/xlsx/xform/drawing/drawing-xform.js +10 -2
- package/dist/cjs/modules/excel/xlsx/xform/sheet/cell-xform.js +166 -8
- package/dist/cjs/modules/excel/xlsx/xform/sheet/data-validations-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/sheet/ignored-errors-xform.js +83 -0
- package/dist/cjs/modules/excel/xlsx/xform/sheet/worksheet-xform.js +9 -4
- package/dist/cjs/modules/excel/xlsx/xform/style/border-xform.js +4 -1
- package/dist/cjs/modules/excel/xlsx/xlsx.browser.js +408 -18
- package/dist/cjs/modules/excel/xlsx/xlsx.js +4 -5
- package/dist/cjs/modules/formula/compile/address-utils.js +89 -0
- package/dist/cjs/modules/formula/compile/binder.js +489 -0
- package/dist/cjs/modules/formula/compile/bound-ast.js +68 -0
- package/dist/cjs/modules/formula/compile/compiled-formula.js +387 -0
- package/dist/cjs/modules/formula/compile/dependency-analysis.js +437 -0
- package/dist/cjs/modules/formula/compile/structured-ref-utils.js +141 -0
- package/dist/cjs/modules/formula/default-syntax-probe.js +87 -0
- package/dist/cjs/modules/formula/functions/_date-context.js +33 -0
- package/dist/cjs/modules/formula/functions/_shared.js +396 -0
- package/dist/cjs/modules/formula/functions/conditional.js +354 -0
- package/dist/cjs/modules/formula/functions/database.js +288 -0
- package/dist/cjs/modules/formula/functions/date.js +883 -0
- package/dist/cjs/modules/formula/functions/dynamic-array.js +881 -0
- package/dist/cjs/modules/formula/functions/engineering.js +1183 -0
- package/dist/cjs/modules/formula/functions/financial.js +2348 -0
- package/dist/cjs/modules/formula/functions/lookup.js +902 -0
- package/dist/cjs/modules/formula/functions/math.js +1487 -0
- package/dist/cjs/modules/formula/functions/statistical.js +3488 -0
- package/dist/cjs/modules/formula/functions/text.js +1889 -0
- package/dist/cjs/modules/formula/host-registry.js +75 -0
- package/dist/cjs/modules/formula/index.js +58 -0
- package/dist/cjs/modules/formula/install.js +93 -0
- package/dist/cjs/modules/formula/integration/apply-writeback-plan.js +213 -0
- package/dist/cjs/modules/formula/integration/calculate-formulas-impl.js +619 -0
- package/dist/cjs/modules/formula/integration/calculate-formulas.js +71 -0
- package/dist/cjs/modules/formula/integration/formula-instance.js +82 -0
- package/dist/cjs/modules/formula/integration/workbook-adapter.js +327 -0
- package/dist/cjs/modules/formula/integration/workbook-snapshot.js +84 -0
- package/dist/cjs/modules/formula/materialize/build-writeback-plan.js +475 -0
- package/dist/cjs/modules/formula/materialize/spill-engine.js +42 -0
- package/dist/cjs/modules/formula/materialize/types.js +32 -0
- package/dist/cjs/modules/formula/materialize/writeback-plan.js +28 -0
- package/dist/cjs/modules/formula/runtime/evaluator.js +2298 -0
- package/dist/cjs/modules/formula/runtime/function-registry.js +846 -0
- package/dist/cjs/modules/formula/runtime/values.js +385 -0
- package/dist/cjs/modules/formula/syntax/ast.js +8 -0
- package/dist/cjs/modules/formula/syntax/parser.js +440 -0
- package/dist/cjs/modules/formula/syntax/token-types.js +32 -0
- package/dist/cjs/modules/formula/syntax/tokenizer.js +1076 -0
- package/dist/cjs/modules/pdf/excel-bridge.js +9 -0
- package/dist/esm/index.browser.js +4 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/modules/excel/cell.js +170 -22
- package/dist/esm/modules/excel/defined-names.js +411 -21
- package/dist/esm/modules/excel/image.js +24 -1
- package/dist/esm/modules/excel/stream/workbook-reader.browser.js +14 -0
- package/dist/esm/modules/excel/stream/workbook-writer.browser.js +48 -1
- package/dist/esm/modules/excel/stream/worksheet-reader.js +17 -1
- package/dist/esm/modules/excel/stream/worksheet-writer.js +45 -5
- package/dist/esm/modules/excel/table.js +15 -2
- package/dist/esm/modules/excel/utils/col-cache.js +15 -0
- package/dist/esm/modules/excel/utils/drawing-utils.js +4 -0
- package/dist/esm/modules/excel/utils/external-link-formula.js +208 -0
- package/dist/esm/modules/excel/utils/iterate-stream.js +3 -1
- package/dist/esm/modules/excel/utils/ooxml-paths.js +37 -2
- package/dist/esm/modules/excel/utils/shared-strings.js +21 -2
- package/dist/esm/modules/excel/utils/workbook-protection.js +30 -0
- package/dist/esm/modules/excel/workbook.browser.js +318 -34
- package/dist/esm/modules/excel/worksheet.js +21 -2
- package/dist/esm/modules/excel/xlsx/rel-type.js +16 -1
- package/dist/esm/modules/excel/xlsx/xform/book/defined-name-xform.js +21 -86
- package/dist/esm/modules/excel/xlsx/xform/book/external-link-xform.js +330 -0
- package/dist/esm/modules/excel/xlsx/xform/book/external-reference-xform.js +24 -0
- package/dist/esm/modules/excel/xlsx/xform/book/workbook-calc-properties-xform.js +11 -2
- package/dist/esm/modules/excel/xlsx/xform/book/workbook-protection-xform.js +66 -0
- package/dist/esm/modules/excel/xlsx/xform/book/workbook-xform.js +38 -5
- package/dist/esm/modules/excel/xlsx/xform/core/content-types-xform.js +19 -1
- package/dist/esm/modules/excel/xlsx/xform/core/metadata-xform.js +158 -0
- package/dist/esm/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.js +105 -0
- package/dist/esm/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +3 -0
- package/dist/esm/modules/excel/xlsx/xform/drawing/drawing-xform.js +10 -2
- package/dist/esm/modules/excel/xlsx/xform/sheet/cell-xform.js +166 -8
- package/dist/esm/modules/excel/xlsx/xform/sheet/data-validations-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/sheet/ignored-errors-xform.js +80 -0
- package/dist/esm/modules/excel/xlsx/xform/sheet/worksheet-xform.js +9 -4
- package/dist/esm/modules/excel/xlsx/xform/style/border-xform.js +4 -1
- package/dist/esm/modules/excel/xlsx/xlsx.browser.js +410 -20
- package/dist/esm/modules/excel/xlsx/xlsx.js +4 -5
- package/dist/esm/modules/formula/compile/address-utils.js +83 -0
- package/dist/esm/modules/formula/compile/binder.js +487 -0
- package/dist/esm/modules/formula/compile/bound-ast.js +80 -0
- package/dist/esm/modules/formula/compile/compiled-formula.js +383 -0
- package/dist/esm/modules/formula/compile/dependency-analysis.js +432 -0
- package/dist/esm/modules/formula/compile/structured-ref-utils.js +136 -0
- package/dist/esm/modules/formula/default-syntax-probe.js +83 -0
- package/dist/esm/modules/formula/functions/_date-context.js +29 -0
- package/dist/esm/modules/formula/functions/_shared.js +381 -0
- package/dist/esm/modules/formula/functions/conditional.js +343 -0
- package/dist/esm/modules/formula/functions/database.js +274 -0
- package/dist/esm/modules/formula/functions/date.js +855 -0
- package/dist/esm/modules/formula/functions/dynamic-array.js +860 -0
- package/dist/esm/modules/formula/functions/engineering.js +1128 -0
- package/dist/esm/modules/formula/functions/financial.js +2296 -0
- package/dist/esm/modules/formula/functions/lookup.js +886 -0
- package/dist/esm/modules/formula/functions/math.js +1406 -0
- package/dist/esm/modules/formula/functions/statistical.js +3390 -0
- package/dist/esm/modules/formula/functions/text.js +1845 -0
- package/dist/esm/modules/formula/host-registry.js +69 -0
- package/dist/esm/modules/formula/index.js +49 -0
- package/dist/esm/modules/formula/install.js +88 -0
- package/dist/esm/modules/formula/integration/apply-writeback-plan.js +210 -0
- package/dist/esm/modules/formula/integration/calculate-formulas-impl.js +616 -0
- package/dist/esm/modules/formula/integration/calculate-formulas.js +68 -0
- package/dist/esm/modules/formula/integration/formula-instance.js +79 -0
- package/dist/esm/modules/formula/integration/workbook-adapter.js +324 -0
- package/dist/esm/modules/formula/integration/workbook-snapshot.js +77 -0
- package/dist/esm/modules/formula/materialize/build-writeback-plan.js +473 -0
- package/dist/esm/modules/formula/materialize/spill-engine.js +38 -0
- package/dist/esm/modules/formula/materialize/types.js +29 -0
- package/dist/esm/modules/formula/materialize/writeback-plan.js +27 -0
- package/dist/esm/modules/formula/runtime/evaluator.js +2291 -0
- package/dist/esm/modules/formula/runtime/function-registry.js +840 -0
- package/dist/esm/modules/formula/runtime/values.js +385 -0
- package/dist/esm/modules/formula/syntax/ast.js +28 -0
- package/dist/esm/modules/formula/syntax/parser.js +439 -0
- package/dist/esm/modules/formula/syntax/token-types.js +59 -0
- package/dist/esm/modules/formula/syntax/tokenizer.js +1074 -0
- package/dist/esm/modules/pdf/excel-bridge.js +9 -0
- package/dist/iife/excelts.iife.js +2302 -373
- package/dist/iife/excelts.iife.js.map +1 -1
- package/dist/iife/excelts.iife.min.js +34 -34
- package/dist/types/index.browser.d.ts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/modules/excel/cell.d.ts +17 -3
- package/dist/types/modules/excel/defined-names.d.ts +96 -1
- package/dist/types/modules/excel/image.d.ts +11 -0
- package/dist/types/modules/excel/stream/workbook-reader.browser.d.ts +9 -3
- package/dist/types/modules/excel/stream/workbook-reader.d.ts +2 -1
- package/dist/types/modules/excel/stream/workbook-writer.browser.d.ts +39 -5
- package/dist/types/modules/excel/stream/workbook-writer.d.ts +3 -2
- package/dist/types/modules/excel/stream/worksheet-writer.d.ts +39 -6
- package/dist/types/modules/excel/types.d.ts +133 -2
- package/dist/types/modules/excel/utils/col-cache.d.ts +1 -0
- package/dist/types/modules/excel/utils/drawing-utils.d.ts +3 -3
- package/dist/types/modules/excel/utils/external-link-formula.d.ts +76 -0
- package/dist/types/modules/excel/utils/iterate-stream.d.ts +9 -3
- package/dist/types/modules/excel/utils/ooxml-paths.d.ts +19 -0
- package/dist/types/modules/excel/utils/shared-strings.d.ts +8 -3
- package/dist/types/modules/excel/utils/workbook-protection.d.ts +30 -0
- package/dist/types/modules/excel/workbook.browser.d.ts +257 -6
- package/dist/types/modules/excel/workbook.d.ts +1 -1
- package/dist/types/modules/excel/worksheet.d.ts +3 -1
- package/dist/types/modules/excel/xlsx/rel-type.d.ts +15 -0
- package/dist/types/modules/excel/xlsx/xform/book/defined-name-xform.d.ts +6 -5
- package/dist/types/modules/excel/xlsx/xform/book/external-link-xform.d.ts +84 -0
- package/dist/types/modules/excel/xlsx/xform/book/external-reference-xform.d.ts +17 -0
- package/dist/types/modules/excel/xlsx/xform/book/workbook-calc-properties-xform.d.ts +3 -0
- package/dist/types/modules/excel/xlsx/xform/book/workbook-protection-xform.d.ts +20 -0
- package/dist/types/modules/excel/xlsx/xform/core/metadata-xform.d.ts +56 -0
- package/dist/types/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.d.ts +26 -0
- package/dist/types/modules/excel/xlsx/xform/sheet/cell-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/sheet/ignored-errors-xform.d.ts +21 -0
- package/dist/types/modules/excel/xlsx/xlsx.browser.d.ts +172 -13
- package/dist/types/modules/excel/xlsx/xlsx.d.ts +7 -4
- package/dist/types/modules/formula/compile/address-utils.d.ts +62 -0
- package/dist/types/modules/formula/compile/binder.d.ts +42 -0
- package/dist/types/modules/formula/compile/bound-ast.d.ts +230 -0
- package/dist/types/modules/formula/compile/compiled-formula.d.ts +137 -0
- package/dist/types/modules/formula/compile/dependency-analysis.d.ts +93 -0
- package/dist/types/modules/formula/compile/structured-ref-utils.d.ts +93 -0
- package/dist/types/modules/formula/default-syntax-probe.d.ts +79 -0
- package/dist/types/modules/formula/functions/_date-context.d.ts +4 -0
- package/dist/types/modules/formula/functions/_shared.d.ts +121 -0
- package/dist/types/modules/formula/functions/conditional.d.ts +27 -0
- package/dist/types/modules/formula/functions/database.d.ts +37 -0
- package/dist/types/modules/formula/functions/date.d.ts +61 -0
- package/dist/types/modules/formula/functions/dynamic-array.d.ts +23 -0
- package/dist/types/modules/formula/functions/engineering.d.ts +57 -0
- package/dist/types/modules/formula/functions/financial.d.ts +202 -0
- package/dist/types/modules/formula/functions/lookup.d.ts +18 -0
- package/dist/types/modules/formula/functions/math.d.ts +114 -0
- package/dist/types/modules/formula/functions/statistical.d.ts +193 -0
- package/dist/types/modules/formula/functions/text.d.ts +86 -0
- package/dist/types/modules/formula/host-registry.d.ts +53 -0
- package/dist/types/modules/formula/index.d.ts +39 -0
- package/dist/types/modules/formula/install.d.ts +62 -0
- package/dist/types/modules/formula/integration/apply-writeback-plan.d.ts +26 -0
- package/dist/types/modules/formula/integration/calculate-formulas-impl.d.ts +30 -0
- package/dist/types/modules/formula/integration/calculate-formulas.d.ts +67 -0
- package/dist/types/modules/formula/integration/formula-instance.d.ts +64 -0
- package/dist/types/modules/formula/integration/workbook-adapter.d.ts +26 -0
- package/dist/types/modules/formula/integration/workbook-snapshot.d.ts +267 -0
- package/dist/types/modules/formula/materialize/build-writeback-plan.d.ts +34 -0
- package/dist/types/modules/formula/materialize/spill-engine.d.ts +9 -0
- package/dist/types/modules/formula/materialize/types.d.ts +179 -0
- package/dist/types/modules/formula/materialize/writeback-plan.d.ts +167 -0
- package/dist/types/modules/formula/runtime/evaluator.d.ts +151 -0
- package/dist/types/modules/formula/runtime/function-registry.d.ts +47 -0
- package/dist/types/modules/formula/runtime/values.d.ts +211 -0
- package/dist/types/modules/formula/syntax/ast.d.ts +129 -0
- package/dist/types/modules/formula/syntax/parser.d.ts +18 -0
- package/dist/types/modules/formula/syntax/token-types.d.ts +153 -0
- package/dist/types/modules/formula/syntax/tokenizer.d.ts +10 -0
- package/package.json +28 -28
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formula-syntax probe slot.
|
|
3
|
+
*
|
|
4
|
+
* ## What this is
|
|
5
|
+
*
|
|
6
|
+
* `DefinedNames` (in the excel module) needs a way to tell whether a raw
|
|
7
|
+
* defined-name text like `OFFSET(Sheet1!$A$1,0,0,3,1)` is a parseable
|
|
8
|
+
* formula or opaque content to preserve verbatim. The only authoritative
|
|
9
|
+
* answer comes from the formula tokenizer + parser, which ship in the
|
|
10
|
+
* `@cj-tech-master/excelts/formula` subpath and are an opt-in
|
|
11
|
+
* dependency.
|
|
12
|
+
*
|
|
13
|
+
* This file is a tiny passive registration slot — a single `let` with
|
|
14
|
+
* a getter/setter pair — carrying **no** formula-engine code. Importing
|
|
15
|
+
* `DefinedNames` pulls in this slot (~0.5 KB minified) but never drags
|
|
16
|
+
* in the tokenizer, parser, or evaluator.
|
|
17
|
+
*
|
|
18
|
+
* ## Classification semantics
|
|
19
|
+
*
|
|
20
|
+
* - **No probe installed** (default): `DefinedNames` classifies any
|
|
21
|
+
* non-range, non-wrapper text as **opaque**. The `rawText` is
|
|
22
|
+
* preserved so XLSX round-trip bytes are stable; the entry simply
|
|
23
|
+
* cannot be evaluated — which is correct, because no formula engine
|
|
24
|
+
* is available anyway.
|
|
25
|
+
*
|
|
26
|
+
* - **Probe installed** (after `installFormulaEngine()`): `DefinedNames`
|
|
27
|
+
* classifies strictly. Parseable text becomes `formula`, unparseable
|
|
28
|
+
* text becomes `opaque`.
|
|
29
|
+
*
|
|
30
|
+
* ## Why the slot lives in the formula module
|
|
31
|
+
*
|
|
32
|
+
* Module dependency direction: `excel` may import from `formula`
|
|
33
|
+
* (layer 4 → layer 3), but `formula` must not import from `excel`. The
|
|
34
|
+
* probe slot is a *formula-module concept* (it wraps a formula
|
|
35
|
+
* tokenizer+parser) that excel consults; keeping it here preserves the
|
|
36
|
+
* one-way dependency.
|
|
37
|
+
*
|
|
38
|
+
* ## Construction-time injection is also supported
|
|
39
|
+
*
|
|
40
|
+
* `Workbook` and `DefinedNames` each accept an explicit
|
|
41
|
+
* `formulaSyntaxProbe` option. That is the preferred API for callers
|
|
42
|
+
* who want deterministic, per-instance behaviour (e.g. a test that
|
|
43
|
+
* needs a specific probe without touching process-global state). The
|
|
44
|
+
* default-probe slot here is the convenience layer for
|
|
45
|
+
* `installFormulaEngine()` — call it once at startup and every
|
|
46
|
+
* subsequent `new Workbook()` picks up strict classification
|
|
47
|
+
* automatically.
|
|
48
|
+
*
|
|
49
|
+
* ## Lookup timing
|
|
50
|
+
*
|
|
51
|
+
* `DefinedNames` reads the default probe lazily, at the moment `model`
|
|
52
|
+
* is assigned (i.e. during XLSX parsing). This means the common
|
|
53
|
+
* sequence
|
|
54
|
+
*
|
|
55
|
+
* ```ts
|
|
56
|
+
* const wb = new Workbook();
|
|
57
|
+
* installFormulaEngine(); // later
|
|
58
|
+
* await wb.xlsx.load(buffer); // sees the installed probe
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* works correctly — the probe installed before `load()` is the one
|
|
62
|
+
* used, regardless of when `Workbook` itself was constructed.
|
|
63
|
+
*/
|
|
64
|
+
export type SyntaxProbe = (text: string) => boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Install (or clear) the process-wide default syntax probe.
|
|
67
|
+
*
|
|
68
|
+
* Called from `installFormulaEngine()` in `./install`. Passing `null`
|
|
69
|
+
* uninstalls the probe — symmetric with the formula-engine registry and
|
|
70
|
+
* useful for tests that exercise the "no probe" classification path.
|
|
71
|
+
*/
|
|
72
|
+
export declare function setDefaultSyntaxProbe(probe: SyntaxProbe | null): void;
|
|
73
|
+
/**
|
|
74
|
+
* Retrieve the currently-installed default probe, or `null` if none is
|
|
75
|
+
* installed. Consumers (chiefly `DefinedNames`) should treat `null` as
|
|
76
|
+
* a signal to use conservative (opaque) classification rather than
|
|
77
|
+
* guessing.
|
|
78
|
+
*/
|
|
79
|
+
export declare function getDefaultSyntaxProbe(): SyntaxProbe | null;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formula-syntax probe slot.
|
|
3
|
+
*
|
|
4
|
+
* ## What this is
|
|
5
|
+
*
|
|
6
|
+
* `DefinedNames` (in the excel module) needs a way to tell whether a raw
|
|
7
|
+
* defined-name text like `OFFSET(Sheet1!$A$1,0,0,3,1)` is a parseable
|
|
8
|
+
* formula or opaque content to preserve verbatim. The only authoritative
|
|
9
|
+
* answer comes from the formula tokenizer + parser, which ship in the
|
|
10
|
+
* `@cj-tech-master/excelts/formula` subpath and are an opt-in
|
|
11
|
+
* dependency.
|
|
12
|
+
*
|
|
13
|
+
* This file is a tiny passive registration slot — a single `let` with
|
|
14
|
+
* a getter/setter pair — carrying **no** formula-engine code. Importing
|
|
15
|
+
* `DefinedNames` pulls in this slot (~0.5 KB minified) but never drags
|
|
16
|
+
* in the tokenizer, parser, or evaluator.
|
|
17
|
+
*
|
|
18
|
+
* ## Classification semantics
|
|
19
|
+
*
|
|
20
|
+
* - **No probe installed** (default): `DefinedNames` classifies any
|
|
21
|
+
* non-range, non-wrapper text as **opaque**. The `rawText` is
|
|
22
|
+
* preserved so XLSX round-trip bytes are stable; the entry simply
|
|
23
|
+
* cannot be evaluated — which is correct, because no formula engine
|
|
24
|
+
* is available anyway.
|
|
25
|
+
*
|
|
26
|
+
* - **Probe installed** (after `installFormulaEngine()`): `DefinedNames`
|
|
27
|
+
* classifies strictly. Parseable text becomes `formula`, unparseable
|
|
28
|
+
* text becomes `opaque`.
|
|
29
|
+
*
|
|
30
|
+
* ## Why the slot lives in the formula module
|
|
31
|
+
*
|
|
32
|
+
* Module dependency direction: `excel` may import from `formula`
|
|
33
|
+
* (layer 4 → layer 3), but `formula` must not import from `excel`. The
|
|
34
|
+
* probe slot is a *formula-module concept* (it wraps a formula
|
|
35
|
+
* tokenizer+parser) that excel consults; keeping it here preserves the
|
|
36
|
+
* one-way dependency.
|
|
37
|
+
*
|
|
38
|
+
* ## Construction-time injection is also supported
|
|
39
|
+
*
|
|
40
|
+
* `Workbook` and `DefinedNames` each accept an explicit
|
|
41
|
+
* `formulaSyntaxProbe` option. That is the preferred API for callers
|
|
42
|
+
* who want deterministic, per-instance behaviour (e.g. a test that
|
|
43
|
+
* needs a specific probe without touching process-global state). The
|
|
44
|
+
* default-probe slot here is the convenience layer for
|
|
45
|
+
* `installFormulaEngine()` — call it once at startup and every
|
|
46
|
+
* subsequent `new Workbook()` picks up strict classification
|
|
47
|
+
* automatically.
|
|
48
|
+
*
|
|
49
|
+
* ## Lookup timing
|
|
50
|
+
*
|
|
51
|
+
* `DefinedNames` reads the default probe lazily, at the moment `model`
|
|
52
|
+
* is assigned (i.e. during XLSX parsing). This means the common
|
|
53
|
+
* sequence
|
|
54
|
+
*
|
|
55
|
+
* ```ts
|
|
56
|
+
* const wb = new Workbook();
|
|
57
|
+
* installFormulaEngine(); // later
|
|
58
|
+
* await wb.xlsx.load(buffer); // sees the installed probe
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* works correctly — the probe installed before `load()` is the one
|
|
62
|
+
* used, regardless of when `Workbook` itself was constructed.
|
|
63
|
+
*/
|
|
64
|
+
let defaultProbe = null;
|
|
65
|
+
/**
|
|
66
|
+
* Install (or clear) the process-wide default syntax probe.
|
|
67
|
+
*
|
|
68
|
+
* Called from `installFormulaEngine()` in `./install`. Passing `null`
|
|
69
|
+
* uninstalls the probe — symmetric with the formula-engine registry and
|
|
70
|
+
* useful for tests that exercise the "no probe" classification path.
|
|
71
|
+
*/
|
|
72
|
+
export function setDefaultSyntaxProbe(probe) {
|
|
73
|
+
defaultProbe = probe;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Retrieve the currently-installed default probe, or `null` if none is
|
|
77
|
+
* installed. Consumers (chiefly `DefinedNames`) should treat `null` as
|
|
78
|
+
* a signal to use conservative (opaque) classification rather than
|
|
79
|
+
* guessing.
|
|
80
|
+
*/
|
|
81
|
+
export function getDefaultSyntaxProbe() {
|
|
82
|
+
return defaultProbe;
|
|
83
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Date context shared between formula functions and the evaluator.
|
|
3
|
+
*
|
|
4
|
+
* Native function signatures (`NativeFn = (args: RuntimeValue[]) => RuntimeValue`)
|
|
5
|
+
* have no access to the evaluation context, so date/time functions cannot
|
|
6
|
+
* receive the workbook's `date1904` flag through a parameter. Rather than
|
|
7
|
+
* plumb a new argument through 200+ function signatures, we store the flag
|
|
8
|
+
* in a module-local variable. The evaluator sets it before evaluating any
|
|
9
|
+
* formula in a calculation session.
|
|
10
|
+
*
|
|
11
|
+
* ## Thread safety
|
|
12
|
+
*
|
|
13
|
+
* JavaScript runtimes are single-threaded and a single calculation session
|
|
14
|
+
* operates on exactly one workbook at a time, so a module-level variable is
|
|
15
|
+
* safe in practice. If the engine is ever extended to support concurrent
|
|
16
|
+
* calculations across different workbooks (e.g. via worker threads), each
|
|
17
|
+
* worker will have its own module instance and remain correctly isolated.
|
|
18
|
+
* Nested synchronous calls within the same session all share the same
|
|
19
|
+
* workbook, so the flag remains correct throughout.
|
|
20
|
+
*/
|
|
21
|
+
let currentDate1904 = false;
|
|
22
|
+
/** Set the workbook-wide `date1904` mode for the current calculation session. */
|
|
23
|
+
export function setDate1904(v) {
|
|
24
|
+
currentDate1904 = v;
|
|
25
|
+
}
|
|
26
|
+
/** Read the workbook-wide `date1904` mode. */
|
|
27
|
+
export function isDate1904() {
|
|
28
|
+
return currentDate1904;
|
|
29
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers for native function implementations.
|
|
3
|
+
*
|
|
4
|
+
* Centralizes small utilities that were previously duplicated across multiple
|
|
5
|
+
* function files (math, statistical, financial, text, date, engineering,
|
|
6
|
+
* conditional, dynamic-array, database, lookup). None of these change runtime
|
|
7
|
+
* semantics — they are the canonical extractions of the identical helpers that
|
|
8
|
+
* appeared in several modules.
|
|
9
|
+
*/
|
|
10
|
+
import type { RuntimeValue, ScalarValue, NumberValue, ErrorValue, ArrayValue } from "../runtime/values.js";
|
|
11
|
+
/**
|
|
12
|
+
* Return the error value if `v` (as a scalar, extracted via `topLeft`) is an
|
|
13
|
+
* error; otherwise return `null`. Used by text / date / engineering functions
|
|
14
|
+
* for the standard "propagate first-arg error" pattern.
|
|
15
|
+
*/
|
|
16
|
+
export declare function checkError(v: RuntimeValue): ErrorValue | null;
|
|
17
|
+
/**
|
|
18
|
+
* Coerce a single RuntimeValue argument to a number. Applies `topLeft` first
|
|
19
|
+
* so that a 1×1 (or arbitrary) array yields its top-left scalar before
|
|
20
|
+
* numeric coercion. Matches the semantics formerly found as `argToNumber` in
|
|
21
|
+
* `math.ts` and `numArg(args, idx)` in `statistical.ts`.
|
|
22
|
+
*/
|
|
23
|
+
export declare function argToNumber(arg: RuntimeValue): NumberValue | ErrorValue;
|
|
24
|
+
/**
|
|
25
|
+
* Flatten a list of arguments into a sequence of numeric values (or errors).
|
|
26
|
+
*
|
|
27
|
+
* Array arguments contribute only their `Number` and `Error` cells — booleans,
|
|
28
|
+
* strings, and blanks inside arrays are skipped (Excel range semantics).
|
|
29
|
+
* Direct scalar arguments are coerced via `toNumberRV`, except for direct
|
|
30
|
+
* `Blank` scalars which are skipped (Excel aggregate semantics).
|
|
31
|
+
*
|
|
32
|
+
* Returns a list of `NumberValue | ErrorValue`. Callers that need raw
|
|
33
|
+
* `number[]` after an error check should map `.value` themselves.
|
|
34
|
+
*/
|
|
35
|
+
export declare function flattenNumbers(args: RuntimeValue[]): (NumberValue | ErrorValue)[];
|
|
36
|
+
/**
|
|
37
|
+
* Flatten all cells from the arguments into a flat list of ScalarValue,
|
|
38
|
+
* preserving every cell (including blanks, errors, booleans, strings).
|
|
39
|
+
* Direct scalar arguments are projected via `topLeft`.
|
|
40
|
+
*/
|
|
41
|
+
export declare function flattenAll(args: RuntimeValue[]): ScalarValue[];
|
|
42
|
+
/**
|
|
43
|
+
* Return the first `ErrorValue` in a list of `NumberValue | ErrorValue`,
|
|
44
|
+
* or `null` if none is present.
|
|
45
|
+
*/
|
|
46
|
+
export declare function firstError(values: readonly (NumberValue | ErrorValue)[]): ErrorValue | null;
|
|
47
|
+
/**
|
|
48
|
+
* Narrow a RuntimeValue to an ArrayValue, returning `null` if it is not an
|
|
49
|
+
* array. Used by conditional / database / lookup / dynamic-array families.
|
|
50
|
+
*/
|
|
51
|
+
export declare function asArray(v: RuntimeValue): ArrayValue | null;
|
|
52
|
+
/**
|
|
53
|
+
* Safe cell accessor for ArrayValue — returns `BLANK` for out-of-bounds (r, c).
|
|
54
|
+
*/
|
|
55
|
+
export declare function getCell(arr: ArrayValue, r: number, c: number): ScalarValue;
|
|
56
|
+
/**
|
|
57
|
+
* Return `true` if `s` contains an unescaped `*` or `?`. Excel uses `~` as
|
|
58
|
+
* the escape character, so `~*` and `~?` are literals while `*` and `?` at
|
|
59
|
+
* any other position are wildcards. `~~` is an escaped tilde.
|
|
60
|
+
*
|
|
61
|
+
* Centralised here so every wildcard-consuming function (SEARCH, MATCH,
|
|
62
|
+
* XLOOKUP, SUMIF/COUNTIF/…) agrees on whether a criterion should trigger
|
|
63
|
+
* the wildcard code path.
|
|
64
|
+
*/
|
|
65
|
+
export declare function hasUnescapedWildcard(s: string): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Convert an Excel wildcard pattern to a JavaScript regex source. Rules:
|
|
68
|
+
* `*` → `.*`
|
|
69
|
+
* `?` → `.`
|
|
70
|
+
* `~*` → literal `*`
|
|
71
|
+
* `~?` → literal `?`
|
|
72
|
+
* `~~` → literal `~`
|
|
73
|
+
* `~x` → literal `x` (any other character after `~` is treated literally,
|
|
74
|
+
* matching Excel's tolerant behaviour)
|
|
75
|
+
* everything else → regex-escaped literal
|
|
76
|
+
*
|
|
77
|
+
* Callers typically wrap the result in `^…$` and use the `i` flag for
|
|
78
|
+
* case-insensitive matching.
|
|
79
|
+
*/
|
|
80
|
+
export declare function excelWildcardToRegex(s: string): string;
|
|
81
|
+
/**
|
|
82
|
+
* Strip `~` escape characters from an Excel criteria string so the remaining
|
|
83
|
+
* text can be used for a literal comparison. `~*` → `*`, `~?` → `?`,
|
|
84
|
+
* `~~` → `~`, etc. Only used when the caller has already determined that the
|
|
85
|
+
* pattern contains no unescaped wildcards.
|
|
86
|
+
*/
|
|
87
|
+
export declare function unescapeExcelWildcard(s: string): string;
|
|
88
|
+
/**
|
|
89
|
+
* Replace every cell marked by the array's `subtotalMask` with BLANK so an
|
|
90
|
+
* outer SUBTOTAL/AGGREGATE call does not double-count the inner aggregate's
|
|
91
|
+
* result. Only ArrayValue args carrying a mask are rewritten; scalars and
|
|
92
|
+
* arrays without masks pass through unchanged.
|
|
93
|
+
*
|
|
94
|
+
* Excel behavior: SUBTOTAL and AGGREGATE deliberately skip any cell whose
|
|
95
|
+
* own formula is itself SUBTOTAL or AGGREGATE — this is how the classic
|
|
96
|
+
* "totals row inside a filtered range" case works without double-counting.
|
|
97
|
+
*/
|
|
98
|
+
export declare function stripSubtotalMaskedCells(args: RuntimeValue[]): RuntimeValue[];
|
|
99
|
+
/**
|
|
100
|
+
* Replace every cell in a hidden row with BLANK so aggregate functions
|
|
101
|
+
* drop them during flattening. Callers: SUBTOTAL's 1xx-variant codes
|
|
102
|
+
* (101-111) and AGGREGATE with option 5 or 7.
|
|
103
|
+
*
|
|
104
|
+
* Only ArrayValue args carrying a hiddenRowMask are rewritten.
|
|
105
|
+
*/
|
|
106
|
+
export declare function stripHiddenRowCells(args: RuntimeValue[]): RuntimeValue[];
|
|
107
|
+
/**
|
|
108
|
+
* Replace every error cell inside ArrayValue args with BLANK so
|
|
109
|
+
* aggregate functions simply skip them during flattening. Callers:
|
|
110
|
+
* AGGREGATE with option 2, 3, 6, or 7.
|
|
111
|
+
*
|
|
112
|
+
* Direct scalar error args are left alone — AGGREGATE's caller
|
|
113
|
+
* already passes them as scalars; our aggregators will surface them
|
|
114
|
+
* as-is, which matches Excel when a direct literal is an error.
|
|
115
|
+
*
|
|
116
|
+
* This is distinct from the standard error-propagation path: arrays
|
|
117
|
+
* that contain errors normally propagate those errors out of the
|
|
118
|
+
* aggregate. With option 2/3/6/7, errors inside the *arrays* are
|
|
119
|
+
* deliberately ignored.
|
|
120
|
+
*/
|
|
121
|
+
export declare function stripErrorCells(args: RuntimeValue[]): RuntimeValue[];
|