@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
|
@@ -31,7 +31,7 @@ export { DefinedNames, type DefinedNameModel } from "./modules/excel/defined-nam
|
|
|
31
31
|
export type { CheckboxState } from "./modules/excel/form-control.js";
|
|
32
32
|
export type { ColumnDefn, ColumnHeaderValue } from "./modules/excel/column.js";
|
|
33
33
|
export type { RangeInput } from "./modules/excel/range.js";
|
|
34
|
-
export type { WorkbookModel, WorkbookMedia } from "./modules/excel/workbook.js";
|
|
34
|
+
export type { WorkbookModel, WorkbookMedia, WorkbookProtectionModel, ExternalLinkModel, ExternalLinkCachedSheet } from "./modules/excel/workbook.js";
|
|
35
35
|
export { decodeCol, encodeCol, decodeRow, encodeRow, decodeCell, encodeCell, decodeRange, encodeRange } from "./modules/excel/utils/address.js";
|
|
36
36
|
export type { CellAddress, SheetRange, Origin } from "./modules/excel/utils/address.js";
|
|
37
37
|
export type { SheetToJSONOptions, AddJSONOptions, AddAOAOptions } from "./modules/excel/worksheet.js";
|
package/dist/types/index.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ export { DefinedNames, type DefinedNameModel } from "./modules/excel/defined-nam
|
|
|
30
30
|
export type { CheckboxState } from "./modules/excel/form-control.js";
|
|
31
31
|
export type { ColumnDefn, ColumnHeaderValue } from "./modules/excel/column.js";
|
|
32
32
|
export type { RangeInput } from "./modules/excel/range.js";
|
|
33
|
-
export type { WorkbookModel, WorkbookMedia } from "./modules/excel/workbook.js";
|
|
33
|
+
export type { WorkbookModel, WorkbookMedia, WorkbookProtectionModel, ExternalLinkModel, ExternalLinkCachedSheet } from "./modules/excel/workbook.js";
|
|
34
34
|
export type { NodeInput } from "./modules/excel/stream/workbook-reader.js";
|
|
35
35
|
export { decodeCol, encodeCol, decodeRow, encodeRow, decodeCell, encodeCell, decodeRange, encodeRange } from "./modules/excel/utils/address.js";
|
|
36
36
|
export type { CellAddress, SheetRange, Origin } from "./modules/excel/utils/address.js";
|
|
@@ -2,7 +2,7 @@ import type { Column } from "./column.js";
|
|
|
2
2
|
import type { ValueType, FormulaType } from "./enums.js";
|
|
3
3
|
import { Note } from "./note.js";
|
|
4
4
|
import type { Row } from "./row.js";
|
|
5
|
-
import type { Style, NumFmt, Font, Alignment, Protection, Borders, Fill, CellRichTextValue, CellErrorValue, DataValidation, CellValue, CellHyperlinkValue } from "./types.js";
|
|
5
|
+
import type { Style, NumFmt, Font, Alignment, Protection, Borders, Fill, CellRichTextValue, CellErrorValue, DataValidation, CellValue, CellValueInput, CellHyperlinkValue, RichText } from "./types.js";
|
|
6
6
|
import type { Workbook } from "./workbook.js";
|
|
7
7
|
import type { Worksheet } from "./worksheet.js";
|
|
8
8
|
export type FormulaResult = string | number | boolean | Date | CellErrorValue;
|
|
@@ -13,6 +13,7 @@ export interface FormulaValueData {
|
|
|
13
13
|
sharedFormula?: string;
|
|
14
14
|
result?: FormulaResult;
|
|
15
15
|
date1904?: boolean;
|
|
16
|
+
isDynamicArray?: boolean;
|
|
16
17
|
}
|
|
17
18
|
interface FullAddress {
|
|
18
19
|
sheetName: string;
|
|
@@ -62,12 +63,24 @@ export interface CellModel {
|
|
|
62
63
|
formula?: string;
|
|
63
64
|
sharedFormula?: string;
|
|
64
65
|
result?: FormulaResult;
|
|
65
|
-
|
|
66
|
+
/**
|
|
67
|
+
* Rich-text runs associated with this cell.
|
|
68
|
+
*
|
|
69
|
+
* - When `type === RichText`, this holds a CellRichTextValue (object wrapping
|
|
70
|
+
* the runs array) — this is the historical, cell-level rich-text payload.
|
|
71
|
+
* - When `type === Hyperlink`, this holds a plain RichText[] — the runs used
|
|
72
|
+
* for formatted display of the hyperlink text.
|
|
73
|
+
*
|
|
74
|
+
* Callers should branch on `type` before accessing the shape.
|
|
75
|
+
*/
|
|
76
|
+
richText?: CellRichTextValue | RichText[];
|
|
66
77
|
sharedString?: number;
|
|
67
78
|
error?: CellErrorValue;
|
|
68
79
|
rawValue?: unknown;
|
|
80
|
+
isDynamicArray?: boolean;
|
|
69
81
|
}
|
|
70
82
|
export type CellValueType = CellValue;
|
|
83
|
+
export type CellValueInputType = CellValueInput;
|
|
71
84
|
declare class Cell {
|
|
72
85
|
static Types: typeof ValueType;
|
|
73
86
|
private _row;
|
|
@@ -111,7 +124,7 @@ declare class Cell {
|
|
|
111
124
|
get isHyperlink(): boolean;
|
|
112
125
|
get hyperlink(): string | undefined;
|
|
113
126
|
get value(): CellValueType;
|
|
114
|
-
set value(v:
|
|
127
|
+
set value(v: CellValueInputType);
|
|
115
128
|
get note(): string | NoteConfig | undefined;
|
|
116
129
|
set note(note: string | NoteConfig);
|
|
117
130
|
get comment(): Note | undefined;
|
|
@@ -121,6 +134,7 @@ declare class Cell {
|
|
|
121
134
|
toString(): string;
|
|
122
135
|
get formula(): string | undefined;
|
|
123
136
|
get result(): FormulaResult | undefined;
|
|
137
|
+
set result(value: FormulaResult | undefined);
|
|
124
138
|
get formulaType(): FormulaType;
|
|
125
139
|
get fullAddress(): FullAddress;
|
|
126
140
|
get name(): string;
|
|
@@ -2,6 +2,7 @@ import { Range } from "./range.js";
|
|
|
2
2
|
import type { Address } from "./types.js";
|
|
3
3
|
import { CellMatrix } from "./utils/cell-matrix.js";
|
|
4
4
|
import { type DecodedRange } from "./utils/col-cache.js";
|
|
5
|
+
import { type SyntaxProbe } from "../formula/default-syntax-probe.js";
|
|
5
6
|
interface DefinedNameCell {
|
|
6
7
|
sheetName?: string;
|
|
7
8
|
address: string;
|
|
@@ -13,25 +14,119 @@ type CellLocation = Address | DecodedRange;
|
|
|
13
14
|
interface DefinedNameModel {
|
|
14
15
|
name: string;
|
|
15
16
|
ranges: string[];
|
|
17
|
+
localSheetId?: number;
|
|
18
|
+
/** Formula expression for formula-based defined names (e.g. "LAMBDA(x,y,x+y)") */
|
|
19
|
+
formulaExpression?: string;
|
|
20
|
+
/** Original XML text — preserved for opaque names round-trip */
|
|
21
|
+
rawText?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Classification determined by the semantic layer:
|
|
24
|
+
* - "reference": pure cell/range union — stored in matrixMap
|
|
25
|
+
* - "formula": parseable expression — stored in formulaMap
|
|
26
|
+
* - "opaque": unrecognised content preserved for round-trip — stored in opaqueMap
|
|
27
|
+
*/
|
|
28
|
+
kind?: "reference" | "formula" | "opaque";
|
|
29
|
+
}
|
|
30
|
+
/** Stored entry for an opaque (unrecognised) defined name. */
|
|
31
|
+
interface OpaqueEntry {
|
|
32
|
+
rawText: string;
|
|
33
|
+
localSheetId?: number;
|
|
16
34
|
}
|
|
17
35
|
declare class DefinedNames {
|
|
18
36
|
matrixMap: Record<string, CellMatrix>;
|
|
19
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Formula-based defined names: storageKey → formula expression string.
|
|
39
|
+
*/
|
|
40
|
+
formulaMap: Record<string, string>;
|
|
41
|
+
/**
|
|
42
|
+
* Tracks the localSheetId for each storage key.
|
|
43
|
+
* If a key is not in this map, the name is workbook-scoped (global).
|
|
44
|
+
*/
|
|
45
|
+
localSheetIdMap: Record<string, number>;
|
|
46
|
+
/**
|
|
47
|
+
* Opaque defined names: storageKey → original text + optional localSheetId.
|
|
48
|
+
*/
|
|
49
|
+
opaqueMap: Record<string, OpaqueEntry>;
|
|
50
|
+
/**
|
|
51
|
+
* Reverse mapping: storageKey → original name (bare, without scope suffix).
|
|
52
|
+
* Needed because storageKey encodes the scope, but consumers need the bare name.
|
|
53
|
+
*/
|
|
54
|
+
nameForKey: Record<string, string>;
|
|
55
|
+
/**
|
|
56
|
+
* Optional explicit formula-syntax probe. When set, this is used to
|
|
57
|
+
* classify non-range, non-wrapper defined-name text during `set model`.
|
|
58
|
+
* When unset, the classifier falls back to the process-wide default
|
|
59
|
+
* probe (set by `installFormulaEngine()`). When neither is available,
|
|
60
|
+
* classification is conservative — non-range text becomes opaque.
|
|
61
|
+
*/
|
|
62
|
+
private readonly _explicitProbe;
|
|
63
|
+
/**
|
|
64
|
+
* @param probe Optional formula-syntax probe used when classifying
|
|
65
|
+
* defined-name text. Injecting a probe here makes classification
|
|
66
|
+
* deterministic for this instance regardless of process-global
|
|
67
|
+
* `installFormulaEngine()` state. When omitted, the instance defers
|
|
68
|
+
* to the default probe at classification time (see `set model`).
|
|
69
|
+
*/
|
|
70
|
+
constructor(probe?: SyntaxProbe);
|
|
20
71
|
getMatrix(name: string): CellMatrix;
|
|
21
72
|
add(locStr: string, name: string): void;
|
|
22
73
|
addEx(location: CellLocation, name: string): void;
|
|
74
|
+
/**
|
|
75
|
+
* Register a formula-based defined name.
|
|
76
|
+
*
|
|
77
|
+
* Unlike `add()` which binds a name to a cell/range reference, this binds
|
|
78
|
+
* a name to an arbitrary formula expression that will be evaluated at
|
|
79
|
+
* calculation time.
|
|
80
|
+
*
|
|
81
|
+
* @param name - The defined name (e.g. "MyArray")
|
|
82
|
+
* @param expression - The formula expression (e.g. "{1,2;3,4}", "LAMBDA(x,y,x+y)")
|
|
83
|
+
*/
|
|
84
|
+
addFormula(name: string, expression: string): void;
|
|
23
85
|
remove(locStr: string, name: string): void;
|
|
24
86
|
removeEx(location: CellLocation, name: string): void;
|
|
25
87
|
removeAllNames(location: CellLocation): void;
|
|
26
88
|
forEach(callback: (name: string, cell: DefinedNameCell) => void): void;
|
|
27
89
|
getNames(addressStr: string): string[];
|
|
28
90
|
getNamesEx(address: Address): string[];
|
|
91
|
+
/**
|
|
92
|
+
* Return all defined name entries in this collection, including scope info.
|
|
93
|
+
* Each entry has the bare name and optional localSheetId.
|
|
94
|
+
* Same bare name may appear multiple times with different scopes.
|
|
95
|
+
*/
|
|
96
|
+
getAllNames(): {
|
|
97
|
+
name: string;
|
|
98
|
+
localSheetId?: number;
|
|
99
|
+
}[];
|
|
100
|
+
/**
|
|
101
|
+
* Return all defined name entries with full details (name, ranges, scope).
|
|
102
|
+
*
|
|
103
|
+
* This is the primary enumeration API. Each entry is self-contained —
|
|
104
|
+
* no second lookup is needed. Same bare name may appear multiple times
|
|
105
|
+
* with different scopes.
|
|
106
|
+
*/
|
|
107
|
+
getAllEntries(): DefinedNameModel[];
|
|
29
108
|
_explore(matrix: CellMatrix, cell: DefinedNameCell): Range;
|
|
109
|
+
/**
|
|
110
|
+
* Get ranges for a specific scoped entry.
|
|
111
|
+
*
|
|
112
|
+
* Unlike `getRanges(name)` which uses the bare name (and may hit the
|
|
113
|
+
* wrong scope when the same name exists both globally and locally),
|
|
114
|
+
* this method uses the internal `storageKey` to look up the exact entry.
|
|
115
|
+
*/
|
|
116
|
+
getRangesScoped(name: string, localSheetId?: number): DefinedNameModel;
|
|
30
117
|
getRanges(name: string, matrix?: CellMatrix): DefinedNameModel;
|
|
31
118
|
normaliseMatrix(matrix: CellMatrix, sheetName: string): void;
|
|
32
119
|
spliceRows(sheetName: string, start: number, numDelete: number, numInsert: number): void;
|
|
33
120
|
spliceColumns(sheetName: string, start: number, numDelete: number, numInsert: number): void;
|
|
34
121
|
get model(): DefinedNameModel[];
|
|
122
|
+
/**
|
|
123
|
+
* Deserialise an array of `DefinedNameModel` entries (typically from XLSX parsing).
|
|
124
|
+
*
|
|
125
|
+
* Stage 2 of the two-phase design: each entry's `rawText` is classified
|
|
126
|
+
* into reference / formula / opaque by `classifyDefinedName()`. Entries
|
|
127
|
+
* that arrive without `rawText` (programmatic API) fall back to inspecting
|
|
128
|
+
* the existing `ranges` and `formulaExpression` fields for compatibility.
|
|
129
|
+
*/
|
|
35
130
|
set model(value: DefinedNameModel[]);
|
|
36
131
|
}
|
|
37
132
|
export { DefinedNames, type DefinedNameModel };
|
|
@@ -8,12 +8,19 @@ interface ImageExt {
|
|
|
8
8
|
width?: number;
|
|
9
9
|
height?: number;
|
|
10
10
|
}
|
|
11
|
+
/** Absolute position in pixels (for absoluteAnchor). */
|
|
12
|
+
interface ImagePos {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
}
|
|
11
16
|
interface ImageRange {
|
|
12
17
|
tl: Anchor;
|
|
13
18
|
br?: Anchor;
|
|
14
19
|
ext?: ImageExt;
|
|
15
20
|
editAs?: string;
|
|
16
21
|
hyperlinks?: ImageHyperlinks;
|
|
22
|
+
/** Absolute position — mutually exclusive with tl/br cell anchors. */
|
|
23
|
+
pos?: ImagePos;
|
|
17
24
|
}
|
|
18
25
|
interface BackgroundModel {
|
|
19
26
|
type: "background";
|
|
@@ -37,6 +44,8 @@ interface ImageRangeModel {
|
|
|
37
44
|
br?: AnchorModel;
|
|
38
45
|
ext?: ImageExt;
|
|
39
46
|
editAs?: string;
|
|
47
|
+
/** Absolute position — when present, tl/br are ignored. */
|
|
48
|
+
pos?: ImagePos;
|
|
40
49
|
}
|
|
41
50
|
interface ImageModel {
|
|
42
51
|
type: "image";
|
|
@@ -58,6 +67,8 @@ interface RangeInput {
|
|
|
58
67
|
ext?: ImageExt;
|
|
59
68
|
editAs?: string;
|
|
60
69
|
hyperlinks?: ImageHyperlinks;
|
|
70
|
+
/** Absolute position — when present, tl/br are ignored. */
|
|
71
|
+
pos?: ImagePos;
|
|
61
72
|
}
|
|
62
73
|
interface ModelInput {
|
|
63
74
|
type: string;
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* Node.js uses `workbook-reader.ts`, which extends the same base implementation
|
|
9
9
|
* with filesystem-specific features (filename input + temp-file buffering).
|
|
10
10
|
*/
|
|
11
|
+
import type { ZipEntry } from "../../archive/unzip/stream.js";
|
|
11
12
|
import { HyperlinkReader, type Hyperlink } from "./hyperlink-reader.js";
|
|
12
13
|
import { WorksheetReader } from "./worksheet-reader.js";
|
|
13
14
|
import type { WorksheetState, Font, WorkbookProperties } from "../types.js";
|
|
@@ -72,7 +73,7 @@ export type ParseEvent<TWorksheetReader, THyperlinkReader> = SharedStringEvent |
|
|
|
72
73
|
export interface WaitingWorksheetEntry {
|
|
73
74
|
eventType: "waiting-worksheet";
|
|
74
75
|
sheetNo: string;
|
|
75
|
-
entry:
|
|
76
|
+
entry: ZipEntry;
|
|
76
77
|
}
|
|
77
78
|
export type CommonInput = Uint8Array | ArrayBuffer | Readable | ReadableStream<Uint8Array>;
|
|
78
79
|
export interface WorkbookReaderOptions {
|
|
@@ -120,6 +121,10 @@ export declare abstract class WorkbookReaderBase<TInput, TWorksheetReader extend
|
|
|
120
121
|
workbookRels?: WorkbookRelationship[];
|
|
121
122
|
properties?: WorkbookPropertiesXform;
|
|
122
123
|
model?: WorkbookModel;
|
|
124
|
+
/** Whether xl/metadata.xml contains XLDAPR dynamic array metadata */
|
|
125
|
+
hasDynamicArrayMetadata: boolean;
|
|
126
|
+
/** Precise set of cm values (1-indexed) that map to XLDAPR metadataType */
|
|
127
|
+
dynamicArrayCmIndices?: Set<number>;
|
|
123
128
|
/** Maximum bytes to buffer for worksheets waiting on prerequisites. Default: 256 MB. */
|
|
124
129
|
protected _maxBufferedBytes: number;
|
|
125
130
|
/** Running total of bytes buffered for waiting worksheets. */
|
|
@@ -134,7 +139,7 @@ export declare abstract class WorkbookReaderBase<TInput, TWorksheetReader extend
|
|
|
134
139
|
protected HyperlinkReaderClass: ReaderConstructor<THyperlinkReader, this>;
|
|
135
140
|
constructor(input: TInput, options: WorkbookReaderOptions, WorksheetReaderClass: ReaderConstructor<TWorksheetReader, any>, HyperlinkReaderClass: ReaderConstructor<THyperlinkReader, any>);
|
|
136
141
|
protected _getStream(input: TInput): Readable;
|
|
137
|
-
abstract _storeWaitingWorksheet(sheetNo: string, entry:
|
|
142
|
+
abstract _storeWaitingWorksheet(sheetNo: string, entry: ZipEntry): Promise<TWaitingWorksheet>;
|
|
138
143
|
abstract _processWaitingWorksheets(waitingWorksheets: TWaitingWorksheet[]): AsyncIterableIterator<WorksheetReadyEvent<TWorksheetReader>>;
|
|
139
144
|
protected _cleanupWaitingWorksheets(_waitingWorksheets: TWaitingWorksheet[]): void;
|
|
140
145
|
private _createWorksheetReader;
|
|
@@ -147,6 +152,7 @@ export declare abstract class WorkbookReaderBase<TInput, TWorksheetReader extend
|
|
|
147
152
|
private _parseWorkbook;
|
|
148
153
|
private _parseSharedStrings;
|
|
149
154
|
private _parseStyles;
|
|
155
|
+
private _parseMetadata;
|
|
150
156
|
protected _parseWorksheet(iterator: AsyncIterable<unknown>, sheetNo: string): IterableIterator<WorksheetReadyEvent<TWorksheetReader>>;
|
|
151
157
|
protected _parseHyperlinks(iterator: AsyncIterable<unknown>, sheetNo: string): AsyncIterableIterator<HyperlinksEvent<THyperlinkReader>>;
|
|
152
158
|
protected _parseEntries(stream: Readable): AsyncIterableIterator<ParseEvent<TWorksheetReader, THyperlinkReader> | WaitingWorksheetEntry>;
|
|
@@ -164,7 +170,7 @@ interface WaitingWorksheet {
|
|
|
164
170
|
}
|
|
165
171
|
declare class WorkbookReader extends WorkbookReaderBase<CommonInput, WorksheetReader, HyperlinkReader, WaitingWorksheet> {
|
|
166
172
|
constructor(input: CommonInput, options?: WorkbookReaderOptions);
|
|
167
|
-
_storeWaitingWorksheet(sheetNo: string, entry:
|
|
173
|
+
_storeWaitingWorksheet(sheetNo: string, entry: ZipEntry): Promise<WaitingWorksheet>;
|
|
168
174
|
_processWaitingWorksheets(waitingWorksheets: WaitingWorksheet[]): AsyncIterableIterator<WorksheetReadyEvent<WorksheetReader>>;
|
|
169
175
|
}
|
|
170
176
|
export { WorkbookReader };
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Extends base with file path support and temp file storage for large files.
|
|
5
5
|
*/
|
|
6
|
+
import type { ZipEntry } from "../../archive/unzip/stream.js";
|
|
6
7
|
import { HyperlinkReader } from "./hyperlink-reader.js";
|
|
7
8
|
import { WorkbookReaderBase, type CommonInput, type WorkbookReaderOptions, type WorksheetReadyEvent, WorkbookReaderOptionsSchema } from "./workbook-reader.browser.js";
|
|
8
9
|
import { WorksheetReader } from "./worksheet-reader.js";
|
|
@@ -18,7 +19,7 @@ interface WaitingWorksheet {
|
|
|
18
19
|
declare class WorkbookReader extends WorkbookReaderBase<NodeInput, WorksheetReader, HyperlinkReader, WaitingWorksheet> {
|
|
19
20
|
constructor(input: NodeInput, options?: WorkbookReaderOptions);
|
|
20
21
|
_getStream(input: NodeInput): Readable;
|
|
21
|
-
_storeWaitingWorksheet(sheetNo: string, entry:
|
|
22
|
+
_storeWaitingWorksheet(sheetNo: string, entry: ZipEntry): Promise<WaitingWorksheet>;
|
|
22
23
|
_processWaitingWorksheets(waitingWorksheets: WaitingWorksheet[]): AsyncIterableIterator<WorksheetReadyEvent<WorksheetReader>>;
|
|
23
24
|
}
|
|
24
25
|
export { WorkbookReader, WorkbookReaderOptionsSchema };
|
|
@@ -10,11 +10,17 @@
|
|
|
10
10
|
import { Zip } from "../../archive/zip/stream.js";
|
|
11
11
|
import { DefinedNames } from "../defined-names.js";
|
|
12
12
|
import { WorksheetWriter } from "./worksheet-writer.js";
|
|
13
|
-
import type { ImageData, WorkbookView, AddWorksheetOptions } from "../types.js";
|
|
13
|
+
import type { Font, ImageData, WorkbookView, WorkbookProtection, AddWorksheetOptions } from "../types.js";
|
|
14
14
|
import { SharedStrings } from "../utils/shared-strings.js";
|
|
15
15
|
import { StylesXform } from "../xlsx/xform/style/styles-xform.js";
|
|
16
16
|
import type { Writable } from "../../stream/index.js";
|
|
17
|
-
|
|
17
|
+
/**
|
|
18
|
+
* An image registered in the streaming writer.
|
|
19
|
+
*
|
|
20
|
+
* Extends the public {@link ImageData} shape with the unique stored name
|
|
21
|
+
* (`name`) assigned by `addImage`, and pins `type` to `"image"`.
|
|
22
|
+
*/
|
|
23
|
+
export interface Medium extends ImageData {
|
|
18
24
|
type: "image";
|
|
19
25
|
name: string;
|
|
20
26
|
}
|
|
@@ -56,8 +62,8 @@ export interface WorkbookWriterOptions {
|
|
|
56
62
|
trueStreaming?: boolean;
|
|
57
63
|
}
|
|
58
64
|
interface OutputStreamLike {
|
|
59
|
-
emit(eventName: string | symbol, ...args:
|
|
60
|
-
write(chunk:
|
|
65
|
+
emit(eventName: string | symbol, ...args: unknown[]): boolean;
|
|
66
|
+
write(chunk: Uint8Array | string): boolean | Promise<boolean>;
|
|
61
67
|
end(): void;
|
|
62
68
|
once(eventName: string | symbol, listener: (...args: any[]) => void): this;
|
|
63
69
|
removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
|
|
@@ -107,6 +113,18 @@ export declare abstract class WorkbookWriterBase<TWorksheetWriter extends Worksh
|
|
|
107
113
|
compressionLevel: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
|
|
108
114
|
media: Medium[];
|
|
109
115
|
commentRefs: CommentRef[];
|
|
116
|
+
/** Number of cells with dynamic array formulas, accumulated during worksheet commit */
|
|
117
|
+
dynamicArrayCount: number;
|
|
118
|
+
/** Workbook-level structure protection */
|
|
119
|
+
protection?: {
|
|
120
|
+
lockStructure?: boolean;
|
|
121
|
+
lockWindows?: boolean;
|
|
122
|
+
lockRevision?: boolean;
|
|
123
|
+
algorithmName?: string;
|
|
124
|
+
hashValue?: string;
|
|
125
|
+
saltValue?: string;
|
|
126
|
+
spinCount?: number;
|
|
127
|
+
};
|
|
110
128
|
zip: Zip;
|
|
111
129
|
stream: OutputStreamLike;
|
|
112
130
|
promise: Promise<void[] | void>;
|
|
@@ -118,12 +136,27 @@ export declare abstract class WorkbookWriterBase<TWorksheetWriter extends Worksh
|
|
|
118
136
|
*/
|
|
119
137
|
protected _createOutputStream(options: WorkbookWriterOptions): OutputStreamLike;
|
|
120
138
|
get definedNames(): DefinedNames;
|
|
139
|
+
/**
|
|
140
|
+
* The default font for the workbook (fontId=0 / "Normal" style).
|
|
141
|
+
* Must be set before any worksheet rows are committed.
|
|
142
|
+
*/
|
|
143
|
+
get defaultFont(): Partial<Font> | undefined;
|
|
144
|
+
set defaultFont(font: Partial<Font> | undefined);
|
|
121
145
|
protected _addFile(data: string | Uint8Array, name: string, base64?: boolean): void;
|
|
122
146
|
private _commitWorksheets;
|
|
123
147
|
commit(): Promise<void>;
|
|
124
148
|
get nextId(): number;
|
|
125
149
|
addImage(image: ImageData): number;
|
|
126
|
-
getImage(id: number):
|
|
150
|
+
getImage(id: number): Medium | undefined;
|
|
151
|
+
/**
|
|
152
|
+
* Protect the workbook structure with an optional password.
|
|
153
|
+
* Prevents users from adding, deleting, renaming, moving, or copying worksheets.
|
|
154
|
+
*/
|
|
155
|
+
protect(password?: string, options?: Partial<WorkbookProtection>): Promise<void>;
|
|
156
|
+
/**
|
|
157
|
+
* Remove workbook structure protection.
|
|
158
|
+
*/
|
|
159
|
+
unprotect(): void;
|
|
127
160
|
addWorksheet(name?: string, options?: Partial<AddWorksheetOptions>): TWorksheetWriter;
|
|
128
161
|
getWorksheet(id?: string | number): TWorksheetWriter | undefined;
|
|
129
162
|
addStyles(): Promise<void>;
|
|
@@ -144,6 +177,7 @@ export declare abstract class WorkbookWriterBase<TWorksheetWriter extends Worksh
|
|
|
144
177
|
addCore(): Promise<void>;
|
|
145
178
|
addSharedStrings(): Promise<void>;
|
|
146
179
|
addFeaturePropertyBag(): Promise<void>;
|
|
180
|
+
addMetadata(): Promise<void>;
|
|
147
181
|
addWorkbookRels(): Promise<void>;
|
|
148
182
|
addWorkbook(): Promise<void>;
|
|
149
183
|
private _finalize;
|
|
@@ -6,13 +6,14 @@
|
|
|
6
6
|
import { WorkbookWriterBase, type WorkbookWriterOptions as BaseOptions, type WorkbookZipOptions, type ZlibOptions } from "./workbook-writer.browser.js";
|
|
7
7
|
import { WorksheetWriter } from "./worksheet-writer.js";
|
|
8
8
|
export type { WorkbookZipOptions, ZlibOptions };
|
|
9
|
+
export type { Medium } from "./workbook-writer.browser.js";
|
|
9
10
|
export interface WorkbookWriterOptions extends BaseOptions {
|
|
10
11
|
/** If stream not specified, this field specifies the path to a file to write the XLSX workbook to */
|
|
11
12
|
filename?: string;
|
|
12
13
|
}
|
|
13
14
|
interface OutputStreamLike {
|
|
14
|
-
emit(eventName: string | symbol, ...args:
|
|
15
|
-
write(chunk:
|
|
15
|
+
emit(eventName: string | symbol, ...args: unknown[]): boolean;
|
|
16
|
+
write(chunk: Uint8Array | string): boolean | Promise<boolean>;
|
|
16
17
|
end(): void;
|
|
17
18
|
once(eventName: string | symbol, listener: (...args: any[]) => void): this;
|
|
18
19
|
removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
|
|
@@ -3,11 +3,37 @@ import { Column } from "../column.js";
|
|
|
3
3
|
import { DataValidations } from "../data-validations.js";
|
|
4
4
|
import { Dimensions } from "../range.js";
|
|
5
5
|
import { Row } from "../row.js";
|
|
6
|
-
import type {
|
|
6
|
+
import type { Medium as WriterMedium } from "./workbook-writer.js";
|
|
7
|
+
import { type DrawingAnchor, type DrawingRel } from "../utils/drawing-utils.js";
|
|
8
|
+
import type { SharedStrings } from "../utils/shared-strings.js";
|
|
9
|
+
import type { StreamBuf } from "../utils/stream-buf.js";
|
|
10
|
+
import type { RowBreak, ColBreak, PageSetup, HeaderFooter, WorksheetProperties, WorksheetView, WorksheetState, AutoFilter, WorksheetProtection, ConditionalFormattingOptions, AddImageRange, IgnoredError, WatermarkOptions, RowValues } from "../types.js";
|
|
11
|
+
/**
|
|
12
|
+
* Structural view of the fields/methods WorksheetWriter needs from its
|
|
13
|
+
* parent WorkbookWriter. Defined here (rather than importing WorkbookWriter
|
|
14
|
+
* directly) to avoid the circular `workbook-writer.ts <-> worksheet-writer.ts`
|
|
15
|
+
* dependency. The shape must stay in sync with the concrete WorkbookWriter.
|
|
16
|
+
*/
|
|
17
|
+
export interface WorkbookWriterLike {
|
|
18
|
+
/** Shared-string table (deduplicates plain/rich-text cell values). */
|
|
19
|
+
readonly sharedStrings: SharedStrings;
|
|
20
|
+
/**
|
|
21
|
+
* Style manager. Typed loosely here (`unknown`) because the concrete
|
|
22
|
+
* `StylesXform` is an internal xform class and pulling it in would
|
|
23
|
+
* reintroduce the circular import. Xform methods accept it by duck-typing.
|
|
24
|
+
*/
|
|
25
|
+
readonly styles: object;
|
|
26
|
+
/** Incremented once per dynamic-array formula cell during row commit. */
|
|
27
|
+
dynamicArrayCount: number;
|
|
28
|
+
/** Lookup a media (image/chart) by registered id. */
|
|
29
|
+
getImage(id: number): WriterMedium | undefined;
|
|
30
|
+
/** Open a streaming entry in the output zip for the given path. */
|
|
31
|
+
_openStream(path: string): InstanceType<typeof StreamBuf>;
|
|
32
|
+
}
|
|
7
33
|
interface WorksheetWriterOptions {
|
|
8
34
|
id: number;
|
|
9
35
|
name?: string;
|
|
10
|
-
workbook:
|
|
36
|
+
workbook: WorkbookWriterLike;
|
|
11
37
|
useSharedStrings?: boolean;
|
|
12
38
|
properties?: Partial<WorksheetProperties>;
|
|
13
39
|
state?: WorksheetState;
|
|
@@ -38,6 +64,11 @@ interface WriterImageModel {
|
|
|
38
64
|
height: number;
|
|
39
65
|
};
|
|
40
66
|
editAs?: string;
|
|
67
|
+
/** Absolute position in pixels — mutually exclusive with tl/br cell anchors. */
|
|
68
|
+
pos?: {
|
|
69
|
+
x: number;
|
|
70
|
+
y: number;
|
|
71
|
+
};
|
|
41
72
|
};
|
|
42
73
|
hyperlinks?: {
|
|
43
74
|
hyperlink?: string;
|
|
@@ -67,6 +98,7 @@ declare class WorksheetWriter {
|
|
|
67
98
|
private _formulae;
|
|
68
99
|
private _siFormulae;
|
|
69
100
|
conditionalFormatting: ConditionalFormattingOptions[];
|
|
101
|
+
ignoredErrors: IgnoredError[];
|
|
70
102
|
rowBreaks: RowBreak[];
|
|
71
103
|
colBreaks: ColBreak[];
|
|
72
104
|
properties: Partial<WorksheetProperties> & {
|
|
@@ -104,8 +136,8 @@ declare class WorksheetWriter {
|
|
|
104
136
|
/** Relationship Id - assigned by WorkbookWriter */
|
|
105
137
|
rId?: string;
|
|
106
138
|
constructor(options: WorksheetWriterOptions);
|
|
107
|
-
get workbook():
|
|
108
|
-
get stream():
|
|
139
|
+
get workbook(): WorkbookWriterLike;
|
|
140
|
+
get stream(): InstanceType<typeof StreamBuf>;
|
|
109
141
|
destroy(): void;
|
|
110
142
|
commit(): void;
|
|
111
143
|
get dimensions(): Dimensions;
|
|
@@ -184,6 +216,7 @@ declare class WorksheetWriter {
|
|
|
184
216
|
* The prepare phase was already done in _writeConditionalFormatting().
|
|
185
217
|
*/
|
|
186
218
|
private _writeExtLst;
|
|
219
|
+
private _writeIgnoredErrors;
|
|
187
220
|
private _writeRowBreaks;
|
|
188
221
|
private _writeColBreaks;
|
|
189
222
|
private _writeDataValidations;
|
|
@@ -197,8 +230,8 @@ declare class WorksheetWriter {
|
|
|
197
230
|
get drawing(): {
|
|
198
231
|
rId: string;
|
|
199
232
|
name: string;
|
|
200
|
-
anchors:
|
|
201
|
-
rels:
|
|
233
|
+
anchors: DrawingAnchor[];
|
|
234
|
+
rels: DrawingRel[];
|
|
202
235
|
} | undefined;
|
|
203
236
|
private _writeBackground;
|
|
204
237
|
private _writeLegacyData;
|