@cj-tech-master/excelts 1.6.2 → 1.6.3-canary.20251224125850.7da664f
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 +141 -8
- package/README_zh.md +142 -10
- package/dist/browser/excelts.esm.js +19115 -0
- package/dist/browser/excelts.esm.js.map +1 -0
- package/dist/browser/excelts.esm.min.js +127 -0
- package/dist/browser/excelts.iife.js +13576 -46968
- package/dist/browser/excelts.iife.js.map +1 -1
- package/dist/browser/excelts.iife.min.js +25 -105
- package/dist/cjs/csv/csv-core.js +701 -0
- package/dist/cjs/csv/csv-stream.js +646 -0
- package/dist/cjs/csv/csv.base.js +154 -0
- package/dist/cjs/csv/csv.browser.js +68 -0
- package/dist/cjs/csv/csv.js +226 -162
- package/dist/cjs/doc/anchor.js +2 -2
- package/dist/cjs/doc/cell.js +22 -22
- package/dist/cjs/doc/column.js +7 -7
- package/dist/cjs/doc/data-validations.js +3 -3
- package/dist/cjs/doc/defined-names.js +13 -13
- package/dist/cjs/doc/image.js +7 -7
- package/dist/cjs/doc/modelcontainer.js +2 -2
- package/dist/cjs/doc/note.js +2 -2
- package/dist/cjs/doc/pivot-table.js +5 -5
- package/dist/cjs/doc/range.js +11 -11
- package/dist/cjs/doc/row.js +16 -16
- package/dist/cjs/doc/table.js +5 -5
- package/dist/cjs/doc/workbook.base.js +211 -0
- package/dist/cjs/doc/workbook.browser.js +62 -0
- package/dist/cjs/doc/workbook.js +68 -179
- package/dist/cjs/doc/worksheet.js +41 -41
- package/dist/cjs/index.js +49 -32
- package/dist/cjs/stream/xlsx/hyperlink-reader.js +6 -6
- package/dist/cjs/stream/xlsx/sheet-comments-writer.js +12 -12
- package/dist/cjs/stream/xlsx/sheet-rels-writer.js +4 -4
- package/dist/cjs/stream/xlsx/workbook-reader.js +29 -26
- package/dist/cjs/stream/xlsx/workbook-writer.js +71 -57
- package/dist/cjs/stream/xlsx/worksheet-reader.js +27 -23
- package/dist/cjs/stream/xlsx/worksheet-writer.js +72 -66
- package/dist/cjs/utils/browser-buffer.js +75 -0
- package/dist/cjs/utils/cell-format.js +2 -2
- package/dist/cjs/utils/cell-matrix.js +5 -5
- package/dist/cjs/utils/encryptor.browser.js +240 -0
- package/dist/cjs/utils/parse-sax.js +2 -2
- package/dist/cjs/utils/shared-formula.js +5 -5
- package/dist/cjs/utils/sheet-utils.js +13 -13
- package/dist/cjs/utils/stream-buf.browser.js +355 -0
- package/dist/cjs/utils/stream-buf.js +5 -5
- package/dist/cjs/utils/unzip/extract.js +11 -11
- package/dist/cjs/utils/unzip/index.js +21 -21
- package/dist/cjs/utils/unzip/parse-extra-field.js +3 -3
- package/dist/cjs/utils/unzip/parse.js +16 -16
- package/dist/cjs/utils/unzip/zip-parser.js +3 -3
- package/dist/cjs/utils/utils.base.js +161 -0
- package/dist/cjs/utils/utils.browser.js +89 -0
- package/dist/cjs/utils/utils.js +46 -154
- package/dist/cjs/utils/xml-stream.js +3 -3
- package/dist/cjs/utils/zip/compress.base.js +85 -0
- package/dist/cjs/utils/zip/compress.browser.js +83 -0
- package/dist/cjs/utils/zip/compress.js +18 -198
- package/dist/cjs/utils/zip/crc32.browser.js +88 -0
- package/dist/cjs/utils/zip/index.js +17 -17
- package/dist/cjs/utils/zip/zip-builder.js +10 -10
- package/dist/cjs/utils/zip-stream.browser.js +135 -0
- package/dist/cjs/utils/zip-stream.js +4 -4
- package/dist/cjs/xlsx/xform/base-xform.js +4 -4
- package/dist/cjs/xlsx/xform/book/defined-name-xform.js +4 -4
- package/dist/cjs/xlsx/xform/book/sheet-xform.js +4 -4
- package/dist/cjs/xlsx/xform/book/workbook-calc-properties-xform.js +2 -2
- package/dist/cjs/xlsx/xform/book/workbook-pivot-cache-xform.js +2 -2
- package/dist/cjs/xlsx/xform/book/workbook-properties-xform.js +2 -2
- package/dist/cjs/xlsx/xform/book/workbook-view-xform.js +2 -2
- package/dist/cjs/xlsx/xform/book/workbook-xform.js +24 -24
- package/dist/cjs/xlsx/xform/comment/comment-xform.js +4 -4
- package/dist/cjs/xlsx/xform/comment/comments-xform.js +6 -6
- package/dist/cjs/xlsx/xform/comment/style/vml-position-xform.js +2 -2
- package/dist/cjs/xlsx/xform/comment/style/vml-protection-xform.js +2 -2
- package/dist/cjs/xlsx/xform/comment/vml-anchor-xform.js +2 -2
- package/dist/cjs/xlsx/xform/comment/vml-client-data-xform.js +10 -10
- package/dist/cjs/xlsx/xform/comment/vml-notes-xform.js +6 -6
- package/dist/cjs/xlsx/xform/comment/vml-shape-xform.js +6 -6
- package/dist/cjs/xlsx/xform/comment/vml-textbox-xform.js +2 -2
- package/dist/cjs/xlsx/xform/composite-xform.js +2 -2
- package/dist/cjs/xlsx/xform/core/app-heading-pairs-xform.js +2 -2
- package/dist/cjs/xlsx/xform/core/app-titles-of-parts-xform.js +2 -2
- package/dist/cjs/xlsx/xform/core/app-xform.js +11 -11
- package/dist/cjs/xlsx/xform/core/content-types-xform.js +4 -4
- package/dist/cjs/xlsx/xform/core/core-xform.js +23 -23
- package/dist/cjs/xlsx/xform/core/relationship-xform.js +2 -2
- package/dist/cjs/xlsx/xform/core/relationships-xform.js +6 -6
- package/dist/cjs/xlsx/xform/drawing/base-cell-anchor-xform.js +2 -2
- package/dist/cjs/xlsx/xform/drawing/blip-fill-xform.js +4 -4
- package/dist/cjs/xlsx/xform/drawing/blip-xform.js +2 -2
- package/dist/cjs/xlsx/xform/drawing/c-nv-pic-pr-xform.js +2 -2
- package/dist/cjs/xlsx/xform/drawing/c-nv-pr-xform.js +6 -6
- package/dist/cjs/xlsx/xform/drawing/cell-position-xform.js +7 -7
- package/dist/cjs/xlsx/xform/drawing/drawing-xform.js +10 -10
- package/dist/cjs/xlsx/xform/drawing/ext-lst-xform.js +2 -2
- package/dist/cjs/xlsx/xform/drawing/ext-xform.js +2 -2
- package/dist/cjs/xlsx/xform/drawing/hlink-click-xform.js +2 -2
- package/dist/cjs/xlsx/xform/drawing/nv-pic-pr-xform.js +6 -6
- package/dist/cjs/xlsx/xform/drawing/one-cell-anchor-xform.js +10 -10
- package/dist/cjs/xlsx/xform/drawing/pic-xform.js +9 -9
- package/dist/cjs/xlsx/xform/drawing/two-cell-anchor-xform.js +9 -9
- package/dist/cjs/xlsx/xform/list-xform.js +2 -2
- package/dist/cjs/xlsx/xform/pivot-table/cache-field-xform.js +5 -5
- package/dist/cjs/xlsx/xform/pivot-table/cache-field.js +3 -3
- package/dist/cjs/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +10 -10
- package/dist/cjs/xlsx/xform/pivot-table/pivot-cache-records-xform.js +9 -9
- package/dist/cjs/xlsx/xform/pivot-table/pivot-table-xform.js +10 -11
- package/dist/cjs/xlsx/xform/sheet/auto-filter-xform.js +4 -4
- package/dist/cjs/xlsx/xform/sheet/cell-xform.js +65 -65
- package/dist/cjs/xlsx/xform/sheet/cf/cf-rule-xform.js +27 -27
- package/dist/cjs/xlsx/xform/sheet/cf/cfvo-xform.js +3 -3
- package/dist/cjs/xlsx/xform/sheet/cf/color-scale-xform.js +6 -6
- package/dist/cjs/xlsx/xform/sheet/cf/conditional-formatting-xform.js +6 -6
- package/dist/cjs/xlsx/xform/sheet/cf/conditional-formattings-xform.js +4 -4
- package/dist/cjs/xlsx/xform/sheet/cf/databar-xform.js +6 -6
- package/dist/cjs/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +5 -5
- package/dist/cjs/xlsx/xform/sheet/cf/formula-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/cf/icon-set-xform.js +11 -11
- package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +3 -3
- package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +11 -12
- package/dist/cjs/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +4 -4
- package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +8 -8
- package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +6 -6
- package/dist/cjs/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +26 -26
- package/dist/cjs/xlsx/xform/sheet/cf-ext/f-ext-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +14 -14
- package/dist/cjs/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/col-xform.js +6 -6
- package/dist/cjs/xlsx/xform/sheet/data-validations-xform.js +18 -18
- package/dist/cjs/xlsx/xform/sheet/dimension-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/drawing-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/ext-lst-xform.js +5 -5
- package/dist/cjs/xlsx/xform/sheet/header-footer-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/hyperlink-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/merge-cell-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/merges.js +8 -8
- package/dist/cjs/xlsx/xform/sheet/outline-properties-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/page-breaks-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/page-margins-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/page-setup-properties-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/page-setup-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/picture-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/print-options-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/row-breaks-xform.js +4 -4
- package/dist/cjs/xlsx/xform/sheet/row-xform.js +11 -11
- package/dist/cjs/xlsx/xform/sheet/sheet-format-properties-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/sheet-properties-xform.js +8 -8
- package/dist/cjs/xlsx/xform/sheet/sheet-protection-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/sheet-view-xform.js +4 -4
- package/dist/cjs/xlsx/xform/sheet/table-part-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/worksheet-xform.js +68 -68
- package/dist/cjs/xlsx/xform/simple/boolean-xform.js +2 -2
- package/dist/cjs/xlsx/xform/simple/date-xform.js +2 -2
- package/dist/cjs/xlsx/xform/simple/float-xform.js +2 -2
- package/dist/cjs/xlsx/xform/simple/integer-xform.js +2 -2
- package/dist/cjs/xlsx/xform/simple/string-xform.js +2 -2
- package/dist/cjs/xlsx/xform/static-xform.js +4 -4
- package/dist/cjs/xlsx/xform/strings/phonetic-text-xform.js +6 -6
- package/dist/cjs/xlsx/xform/strings/rich-text-xform.js +6 -6
- package/dist/cjs/xlsx/xform/strings/shared-string-xform.js +8 -8
- package/dist/cjs/xlsx/xform/strings/shared-strings-xform.js +6 -6
- package/dist/cjs/xlsx/xform/strings/text-xform.js +2 -2
- package/dist/cjs/xlsx/xform/style/alignment-xform.js +8 -8
- package/dist/cjs/xlsx/xform/style/border-xform.js +8 -8
- package/dist/cjs/xlsx/xform/style/color-xform.js +2 -2
- package/dist/cjs/xlsx/xform/style/dxf-xform.js +14 -14
- package/dist/cjs/xlsx/xform/style/fill-xform.js +9 -9
- package/dist/cjs/xlsx/xform/style/font-xform.js +22 -22
- package/dist/cjs/xlsx/xform/style/numfmt-xform.js +5 -5
- package/dist/cjs/xlsx/xform/style/protection-xform.js +2 -2
- package/dist/cjs/xlsx/xform/style/style-xform.js +6 -6
- package/dist/cjs/xlsx/xform/style/styles-xform.js +39 -39
- package/dist/cjs/xlsx/xform/style/underline-xform.js +2 -2
- package/dist/cjs/xlsx/xform/table/auto-filter-xform.js +4 -4
- package/dist/cjs/xlsx/xform/table/custom-filter-xform.js +2 -2
- package/dist/cjs/xlsx/xform/table/filter-column-xform.js +9 -9
- package/dist/cjs/xlsx/xform/table/filter-xform.js +2 -2
- package/dist/cjs/xlsx/xform/table/table-column-xform.js +2 -2
- package/dist/cjs/xlsx/xform/table/table-style-info-xform.js +2 -2
- package/dist/cjs/xlsx/xform/table/table-xform.js +12 -12
- package/dist/cjs/xlsx/xlsx.base.js +742 -0
- package/dist/cjs/xlsx/xlsx.browser.js +205 -0
- package/dist/cjs/xlsx/xlsx.js +91 -833
- package/dist/esm/csv/csv-core.js +694 -0
- package/dist/esm/csv/csv-stream.js +638 -0
- package/dist/esm/csv/csv.base.js +141 -0
- package/dist/esm/csv/csv.browser.js +65 -0
- package/dist/esm/csv/csv.js +189 -159
- package/dist/esm/doc/workbook.base.js +207 -0
- package/dist/esm/doc/workbook.browser.js +59 -0
- package/dist/esm/doc/workbook.js +64 -175
- package/dist/esm/index.browser.js +33 -1
- package/dist/esm/index.js +23 -8
- package/dist/esm/local.js +0 -1
- package/dist/esm/stream/xlsx/hyperlink-reader.js +1 -1
- package/dist/esm/stream/xlsx/workbook-reader.js +7 -4
- package/dist/esm/stream/xlsx/workbook-writer.js +37 -23
- package/dist/esm/stream/xlsx/worksheet-reader.js +12 -8
- package/dist/esm/stream/xlsx/worksheet-writer.js +12 -6
- package/dist/esm/utils/browser-buffer.js +67 -0
- package/dist/esm/utils/encryptor.browser.js +237 -0
- package/dist/esm/utils/stream-buf.browser.js +352 -0
- package/dist/esm/utils/utils.base.js +142 -0
- package/dist/esm/utils/utils.browser.js +68 -0
- package/dist/esm/utils/utils.js +15 -123
- package/dist/esm/utils/zip/compress.base.js +80 -0
- package/dist/esm/utils/zip/compress.browser.js +76 -0
- package/dist/esm/utils/zip/compress.js +16 -164
- package/dist/esm/utils/zip/crc32.browser.js +82 -0
- package/dist/esm/utils/zip-stream.browser.js +132 -0
- package/dist/esm/xlsx/xform/pivot-table/pivot-table-xform.js +2 -3
- package/dist/esm/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +2 -3
- package/dist/esm/xlsx/xlsx.base.js +739 -0
- package/dist/esm/xlsx/xlsx.browser.js +202 -0
- package/dist/esm/xlsx/xlsx.js +87 -829
- package/dist/types/csv/csv-core.d.ts +207 -0
- package/dist/types/csv/csv-stream.d.ts +114 -0
- package/dist/types/csv/csv.base.d.ts +61 -0
- package/dist/types/csv/csv.browser.d.ts +33 -0
- package/dist/types/csv/csv.d.ts +97 -71
- package/dist/types/doc/anchor.d.ts +1 -1
- package/dist/types/doc/cell.d.ts +7 -7
- package/dist/types/doc/column.d.ts +3 -3
- package/dist/types/doc/defined-names.d.ts +4 -4
- package/dist/types/doc/image.d.ts +2 -2
- package/dist/types/doc/modelcontainer.d.ts +1 -1
- package/dist/types/doc/pivot-table.d.ts +1 -1
- package/dist/types/doc/range.d.ts +1 -1
- package/dist/types/doc/row.d.ts +3 -3
- package/dist/types/doc/table.d.ts +4 -4
- package/dist/types/doc/workbook.base.d.ts +111 -0
- package/dist/types/doc/workbook.browser.d.ts +38 -0
- package/dist/types/doc/workbook.d.ts +62 -92
- package/dist/types/doc/worksheet.d.ts +10 -10
- package/dist/types/index.browser.d.ts +19 -5
- package/dist/types/index.d.ts +24 -20
- package/dist/types/local.d.ts +0 -1
- package/dist/types/stream/xlsx/hyperlink-reader.d.ts +11 -11
- package/dist/types/stream/xlsx/workbook-reader.d.ts +125 -36
- package/dist/types/stream/xlsx/workbook-writer.d.ts +105 -22
- package/dist/types/stream/xlsx/worksheet-reader.d.ts +40 -22
- package/dist/types/stream/xlsx/worksheet-writer.d.ts +83 -49
- package/dist/types/types.d.ts +4 -16
- package/dist/types/utils/browser-buffer.d.ts +28 -0
- package/dist/types/utils/col-cache.d.ts +1 -1
- package/dist/types/utils/encryptor.browser.d.ts +28 -0
- package/dist/types/utils/sheet-utils.d.ts +3 -3
- package/dist/types/utils/stream-buf.browser.d.ts +41 -0
- package/dist/types/utils/unzip/extract.d.ts +6 -6
- package/dist/types/utils/unzip/index.d.ts +8 -8
- package/dist/types/utils/unzip/parse.d.ts +3 -3
- package/dist/types/utils/utils.base.d.ts +29 -0
- package/dist/types/utils/utils.browser.d.ts +29 -0
- package/dist/types/utils/utils.d.ts +6 -25
- package/dist/types/utils/zip/compress.base.d.ts +42 -0
- package/dist/types/utils/zip/compress.browser.d.ts +54 -0
- package/dist/types/utils/zip/compress.d.ts +13 -45
- package/dist/types/utils/zip/crc32.browser.d.ts +52 -0
- package/dist/types/utils/zip/index.d.ts +5 -5
- package/dist/types/utils/zip/zip-builder.d.ts +1 -1
- package/dist/types/utils/zip-stream.browser.d.ts +39 -0
- package/dist/types/xlsx/xform/base-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/book/defined-name-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/book/sheet-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/book/workbook-calc-properties-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/book/workbook-pivot-cache-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/book/workbook-properties-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/book/workbook-view-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/book/workbook-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/comment/comment-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/comment/comments-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/comment/style/vml-position-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/comment/style/vml-protection-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/comment/vml-anchor-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/comment/vml-client-data-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/comment/vml-notes-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/comment/vml-shape-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/comment/vml-textbox-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/composite-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/core/app-heading-pairs-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/core/app-titles-of-parts-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/core/app-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/core/content-types-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/core/core-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/core/relationship-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/core/relationships-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/base-cell-anchor-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/blip-fill-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/drawing/blip-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/c-nv-pic-pr-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/c-nv-pr-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/cell-position-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/drawing/drawing-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/ext-lst-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/ext-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/hlink-click-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/nv-pic-pr-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/pic-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/list-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/pivot-table/cache-field-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +3 -3
- package/dist/types/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/pivot-table/pivot-table-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/auto-filter-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/cell-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/cf/cf-rule-xform.d.ts +6 -6
- package/dist/types/xlsx/xform/sheet/cf/cfvo-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/cf/color-scale-xform.d.ts +3 -3
- package/dist/types/xlsx/xform/sheet/cf/conditional-formatting-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/cf/conditional-formattings-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/sheet/cf/databar-xform.d.ts +3 -3
- package/dist/types/xlsx/xform/sheet/cf/ext-lst-ref-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/cf/formula-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/cf/icon-set-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.d.ts +3 -3
- package/dist/types/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.d.ts +3 -3
- package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/sheet/cf-ext/databar-ext-xform.d.ts +3 -3
- package/dist/types/xlsx/xform/sheet/cf-ext/f-ext-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.d.ts +3 -3
- package/dist/types/xlsx/xform/sheet/cf-ext/sqref-ext-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/col-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/data-validations-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/dimension-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/drawing-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/header-footer-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/hyperlink-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/merge-cell-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/outline-properties-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/page-breaks-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/page-margins-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/page-setup-properties-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/page-setup-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/picture-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/print-options-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/row-breaks-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/row-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/sheet-format-properties-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/sheet-properties-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/sheet-protection-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/sheet-view-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/table-part-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/worksheet-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/simple/boolean-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/simple/date-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/simple/float-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/simple/integer-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/simple/string-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/static-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/strings/phonetic-text-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/strings/rich-text-xform.d.ts +3 -3
- package/dist/types/xlsx/xform/strings/shared-string-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/strings/shared-strings-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/strings/text-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/style/alignment-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/style/border-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/style/color-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/style/dxf-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/style/fill-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/style/font-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/style/numfmt-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/style/protection-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/style/style-xform.d.ts +3 -3
- package/dist/types/xlsx/xform/style/styles-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/style/underline-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/table/auto-filter-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/table/custom-filter-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/table/filter-column-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/table/filter-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/table/table-column-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/table/table-style-info-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/table/table-xform.d.ts +1 -1
- package/dist/types/xlsx/xlsx.base.d.ts +134 -0
- package/dist/types/xlsx/xlsx.browser.d.ts +31 -0
- package/dist/types/xlsx/xlsx.d.ts +20 -80
- package/package.json +14 -16
|
@@ -6,19 +6,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.WorkbookWriter = void 0;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const fflate_1 = require("fflate");
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
9
|
+
const stream_buf_1 = require("../../utils/stream-buf");
|
|
10
|
+
const rel_type_1 = require("../../xlsx/rel-type");
|
|
11
|
+
const styles_xform_1 = require("../../xlsx/xform/style/styles-xform");
|
|
12
|
+
const shared_strings_1 = require("../../utils/shared-strings");
|
|
13
|
+
const defined_names_1 = require("../../doc/defined-names");
|
|
14
|
+
const core_xform_1 = require("../../xlsx/xform/core/core-xform");
|
|
15
|
+
const relationships_xform_1 = require("../../xlsx/xform/core/relationships-xform");
|
|
16
|
+
const content_types_xform_1 = require("../../xlsx/xform/core/content-types-xform");
|
|
17
|
+
const app_xform_1 = require("../../xlsx/xform/core/app-xform");
|
|
18
|
+
const workbook_xform_1 = require("../../xlsx/xform/book/workbook-xform");
|
|
19
|
+
const shared_strings_xform_1 = require("../../xlsx/xform/strings/shared-strings-xform");
|
|
20
|
+
const worksheet_writer_1 = require("./worksheet-writer");
|
|
21
|
+
const theme1_1 = require("../../xlsx/xml/theme1");
|
|
22
22
|
class WorkbookWriter {
|
|
23
23
|
constructor(options = {}) {
|
|
24
24
|
this.created = options.created || new Date();
|
|
@@ -28,11 +28,11 @@ class WorkbookWriter {
|
|
|
28
28
|
this.lastPrinted = options.lastPrinted;
|
|
29
29
|
// using shared strings creates a smaller xlsx file but may use more memory
|
|
30
30
|
this.useSharedStrings = options.useSharedStrings || false;
|
|
31
|
-
this.sharedStrings = new
|
|
31
|
+
this.sharedStrings = new shared_strings_1.SharedStrings();
|
|
32
32
|
// style manager
|
|
33
|
-
this.styles = options.useStyles ? new
|
|
33
|
+
this.styles = options.useStyles ? new styles_xform_1.StylesXform(true) : new styles_xform_1.StylesXform.Mock(true);
|
|
34
34
|
// defined names
|
|
35
|
-
this._definedNames = new
|
|
35
|
+
this._definedNames = new defined_names_1.DefinedNames();
|
|
36
36
|
this._worksheets = [];
|
|
37
37
|
this.views = [];
|
|
38
38
|
this.zipOptions = options.zip;
|
|
@@ -62,7 +62,7 @@ class WorkbookWriter {
|
|
|
62
62
|
this.stream = fs_1.default.createWriteStream(options.filename);
|
|
63
63
|
}
|
|
64
64
|
else {
|
|
65
|
-
this.stream = new
|
|
65
|
+
this.stream = new stream_buf_1.StreamBuf();
|
|
66
66
|
}
|
|
67
67
|
// these bits can be added right now
|
|
68
68
|
this.promise = Promise.all([this.addThemes(), this.addOfficeRels()]);
|
|
@@ -71,7 +71,7 @@ class WorkbookWriter {
|
|
|
71
71
|
return this._definedNames;
|
|
72
72
|
}
|
|
73
73
|
_openStream(path) {
|
|
74
|
-
const stream = new
|
|
74
|
+
const stream = new stream_buf_1.StreamBuf({ bufSize: 65536, batch: true });
|
|
75
75
|
// Create a ZipDeflate for this file with compression
|
|
76
76
|
const zipFile = new fflate_1.ZipDeflate(path, { level: this.compressionLevel });
|
|
77
77
|
this.zip.add(zipFile);
|
|
@@ -98,14 +98,14 @@ class WorkbookWriter {
|
|
|
98
98
|
let buffer;
|
|
99
99
|
if (base64) {
|
|
100
100
|
// Use Buffer.from for efficient base64 decoding
|
|
101
|
-
const base64Data = typeof data === "string" ? data :
|
|
101
|
+
const base64Data = typeof data === "string" ? data : new TextDecoder().decode(data);
|
|
102
102
|
buffer = Buffer.from(base64Data, "base64");
|
|
103
103
|
}
|
|
104
104
|
else if (typeof data === "string") {
|
|
105
105
|
buffer = Buffer.from(data, "utf8");
|
|
106
106
|
}
|
|
107
107
|
else {
|
|
108
|
-
buffer =
|
|
108
|
+
buffer = data;
|
|
109
109
|
}
|
|
110
110
|
zipFile.push(buffer, true); // true = final chunk
|
|
111
111
|
}
|
|
@@ -125,15 +125,15 @@ class WorkbookWriter {
|
|
|
125
125
|
// if there are any uncommitted worksheets, commit them now and wait
|
|
126
126
|
const promises = this._worksheets.map(commitWorksheet);
|
|
127
127
|
if (promises.length) {
|
|
128
|
-
return Promise.all(promises);
|
|
128
|
+
return Promise.all(promises).then(() => { });
|
|
129
129
|
}
|
|
130
130
|
return Promise.resolve();
|
|
131
131
|
}
|
|
132
132
|
async commit() {
|
|
133
|
-
// commit all worksheets, then add
|
|
133
|
+
// commit all worksheets, then add supplementary files
|
|
134
134
|
await this.promise;
|
|
135
|
-
await this.addMedia();
|
|
136
135
|
await this._commitWorksheets();
|
|
136
|
+
await this.addMedia();
|
|
137
137
|
await Promise.all([
|
|
138
138
|
this.addContentTypes(),
|
|
139
139
|
this.addApp(),
|
|
@@ -155,46 +155,60 @@ class WorkbookWriter {
|
|
|
155
155
|
}
|
|
156
156
|
return this._worksheets.length || 1;
|
|
157
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* Add Image to Workbook and return the id
|
|
160
|
+
*/
|
|
158
161
|
addImage(image) {
|
|
159
162
|
const id = this.media.length;
|
|
160
|
-
const medium =
|
|
163
|
+
const medium = {
|
|
164
|
+
...image,
|
|
161
165
|
type: "image",
|
|
162
166
|
name: `image${id}.${image.extension}`
|
|
163
|
-
}
|
|
167
|
+
};
|
|
164
168
|
this.media.push(medium);
|
|
165
169
|
return id;
|
|
166
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* Get image by id
|
|
173
|
+
*/
|
|
167
174
|
getImage(id) {
|
|
168
175
|
return this.media[id];
|
|
169
176
|
}
|
|
170
|
-
|
|
177
|
+
/**
|
|
178
|
+
* Add a new worksheet and return a reference to it
|
|
179
|
+
*/
|
|
180
|
+
addWorksheet(name, options) {
|
|
171
181
|
// it's possible to add a worksheet with different than default
|
|
172
182
|
// shared string handling
|
|
173
183
|
// in fact, it's even possible to switch it mid-sheet
|
|
174
|
-
const
|
|
175
|
-
|
|
184
|
+
const opts = options || {};
|
|
185
|
+
const useSharedStrings = opts.useSharedStrings !== undefined ? opts.useSharedStrings : this.useSharedStrings;
|
|
186
|
+
if (opts.tabColor) {
|
|
176
187
|
console.trace("tabColor option has moved to { properties: tabColor: {...} }");
|
|
177
|
-
|
|
178
|
-
tabColor:
|
|
179
|
-
},
|
|
188
|
+
opts.properties = Object.assign({
|
|
189
|
+
tabColor: opts.tabColor
|
|
190
|
+
}, opts.properties);
|
|
180
191
|
}
|
|
181
192
|
const id = this.nextId;
|
|
182
193
|
name = name || `sheet${id}`;
|
|
183
|
-
const worksheet = new
|
|
194
|
+
const worksheet = new worksheet_writer_1.WorksheetWriter({
|
|
184
195
|
id,
|
|
185
196
|
name,
|
|
186
197
|
workbook: this,
|
|
187
198
|
useSharedStrings,
|
|
188
|
-
properties:
|
|
189
|
-
state:
|
|
190
|
-
pageSetup:
|
|
191
|
-
views:
|
|
192
|
-
autoFilter:
|
|
193
|
-
headerFooter:
|
|
199
|
+
properties: opts.properties,
|
|
200
|
+
state: opts.state,
|
|
201
|
+
pageSetup: opts.pageSetup,
|
|
202
|
+
views: opts.views,
|
|
203
|
+
autoFilter: opts.autoFilter,
|
|
204
|
+
headerFooter: opts.headerFooter
|
|
194
205
|
});
|
|
195
206
|
this._worksheets[id] = worksheet;
|
|
196
207
|
return worksheet;
|
|
197
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Fetch sheet by name or id
|
|
211
|
+
*/
|
|
198
212
|
getWorksheet(id) {
|
|
199
213
|
if (id === undefined) {
|
|
200
214
|
return this._worksheets.find(() => true);
|
|
@@ -203,7 +217,7 @@ class WorkbookWriter {
|
|
|
203
217
|
return this._worksheets[id];
|
|
204
218
|
}
|
|
205
219
|
if (typeof id === "string") {
|
|
206
|
-
return this._worksheets.find(
|
|
220
|
+
return this._worksheets.find(worksheet => worksheet && worksheet.name === id);
|
|
207
221
|
}
|
|
208
222
|
return undefined;
|
|
209
223
|
}
|
|
@@ -215,17 +229,17 @@ class WorkbookWriter {
|
|
|
215
229
|
}
|
|
216
230
|
addThemes() {
|
|
217
231
|
return new Promise(resolve => {
|
|
218
|
-
this._addFile(
|
|
232
|
+
this._addFile(theme1_1.theme1Xml, "xl/theme/theme1.xml");
|
|
219
233
|
resolve();
|
|
220
234
|
});
|
|
221
235
|
}
|
|
222
236
|
addOfficeRels() {
|
|
223
237
|
return new Promise(resolve => {
|
|
224
|
-
const xform = new
|
|
238
|
+
const xform = new relationships_xform_1.RelationshipsXform();
|
|
225
239
|
const xml = xform.toXml([
|
|
226
|
-
{ Id: "rId1", Type:
|
|
227
|
-
{ Id: "rId2", Type:
|
|
228
|
-
{ Id: "rId3", Type:
|
|
240
|
+
{ Id: "rId1", Type: rel_type_1.RelType.OfficeDocument, Target: "xl/workbook.xml" },
|
|
241
|
+
{ Id: "rId2", Type: rel_type_1.RelType.CoreProperties, Target: "docProps/core.xml" },
|
|
242
|
+
{ Id: "rId3", Type: rel_type_1.RelType.ExtenderProperties, Target: "docProps/app.xml" }
|
|
229
243
|
]);
|
|
230
244
|
this._addFile(xml, "_rels/.rels");
|
|
231
245
|
resolve();
|
|
@@ -239,7 +253,7 @@ class WorkbookWriter {
|
|
|
239
253
|
commentRefs: this.commentRefs,
|
|
240
254
|
media: this.media
|
|
241
255
|
};
|
|
242
|
-
const xform = new
|
|
256
|
+
const xform = new content_types_xform_1.ContentTypesXform();
|
|
243
257
|
const xml = xform.toXml(model);
|
|
244
258
|
this._addFile(xml, "[Content_Types].xml");
|
|
245
259
|
resolve();
|
|
@@ -256,7 +270,7 @@ class WorkbookWriter {
|
|
|
256
270
|
reject(err);
|
|
257
271
|
}
|
|
258
272
|
else {
|
|
259
|
-
resolve(data);
|
|
273
|
+
resolve(new Uint8Array(data));
|
|
260
274
|
}
|
|
261
275
|
});
|
|
262
276
|
});
|
|
@@ -265,13 +279,13 @@ class WorkbookWriter {
|
|
|
265
279
|
}
|
|
266
280
|
if (medium.buffer) {
|
|
267
281
|
this._addFile(medium.buffer, filename);
|
|
268
|
-
return
|
|
282
|
+
return;
|
|
269
283
|
}
|
|
270
284
|
if (medium.base64) {
|
|
271
285
|
const dataimg64 = medium.base64;
|
|
272
286
|
const content = dataimg64.substring(dataimg64.indexOf(",") + 1);
|
|
273
287
|
this._addFile(content, filename, true);
|
|
274
|
-
return
|
|
288
|
+
return;
|
|
275
289
|
}
|
|
276
290
|
}
|
|
277
291
|
throw new Error("Unsupported media");
|
|
@@ -282,7 +296,7 @@ class WorkbookWriter {
|
|
|
282
296
|
const model = {
|
|
283
297
|
worksheets: this._worksheets.filter(Boolean)
|
|
284
298
|
};
|
|
285
|
-
const xform = new
|
|
299
|
+
const xform = new app_xform_1.AppXform();
|
|
286
300
|
const xml = xform.toXml(model);
|
|
287
301
|
this._addFile(xml, "docProps/app.xml");
|
|
288
302
|
resolve();
|
|
@@ -290,7 +304,7 @@ class WorkbookWriter {
|
|
|
290
304
|
}
|
|
291
305
|
addCore() {
|
|
292
306
|
return new Promise(resolve => {
|
|
293
|
-
const coreXform = new
|
|
307
|
+
const coreXform = new core_xform_1.CoreXform();
|
|
294
308
|
const xml = coreXform.toXml(this);
|
|
295
309
|
this._addFile(xml, "docProps/core.xml");
|
|
296
310
|
resolve();
|
|
@@ -299,7 +313,7 @@ class WorkbookWriter {
|
|
|
299
313
|
addSharedStrings() {
|
|
300
314
|
if (this.sharedStrings.count) {
|
|
301
315
|
return new Promise(resolve => {
|
|
302
|
-
const sharedStringsXform = new
|
|
316
|
+
const sharedStringsXform = new shared_strings_xform_1.SharedStringsXform();
|
|
303
317
|
const xml = sharedStringsXform.toXml(this.sharedStrings);
|
|
304
318
|
this._addFile(xml, "xl/sharedStrings.xml");
|
|
305
319
|
resolve();
|
|
@@ -310,13 +324,13 @@ class WorkbookWriter {
|
|
|
310
324
|
addWorkbookRels() {
|
|
311
325
|
let count = 1;
|
|
312
326
|
const relationships = [
|
|
313
|
-
{ Id: `rId${count++}`, Type:
|
|
314
|
-
{ Id: `rId${count++}`, Type:
|
|
327
|
+
{ Id: `rId${count++}`, Type: rel_type_1.RelType.Styles, Target: "styles.xml" },
|
|
328
|
+
{ Id: `rId${count++}`, Type: rel_type_1.RelType.Theme, Target: "theme/theme1.xml" }
|
|
315
329
|
];
|
|
316
330
|
if (this.sharedStrings.count) {
|
|
317
331
|
relationships.push({
|
|
318
332
|
Id: `rId${count++}`,
|
|
319
|
-
Type:
|
|
333
|
+
Type: rel_type_1.RelType.SharedStrings,
|
|
320
334
|
Target: "sharedStrings.xml"
|
|
321
335
|
});
|
|
322
336
|
}
|
|
@@ -325,13 +339,13 @@ class WorkbookWriter {
|
|
|
325
339
|
worksheet.rId = `rId${count++}`;
|
|
326
340
|
relationships.push({
|
|
327
341
|
Id: worksheet.rId,
|
|
328
|
-
Type:
|
|
342
|
+
Type: rel_type_1.RelType.Worksheet,
|
|
329
343
|
Target: `worksheets/sheet${worksheet.id}.xml`
|
|
330
344
|
});
|
|
331
345
|
}
|
|
332
346
|
});
|
|
333
347
|
return new Promise(resolve => {
|
|
334
|
-
const xform = new
|
|
348
|
+
const xform = new relationships_xform_1.RelationshipsXform();
|
|
335
349
|
const xml = xform.toXml(relationships);
|
|
336
350
|
this._addFile(xml, "xl/_rels/workbook.xml.rels");
|
|
337
351
|
resolve();
|
|
@@ -346,7 +360,7 @@ class WorkbookWriter {
|
|
|
346
360
|
calcProperties: {}
|
|
347
361
|
};
|
|
348
362
|
return new Promise(resolve => {
|
|
349
|
-
const xform = new
|
|
363
|
+
const xform = new workbook_xform_1.WorkbookXform();
|
|
350
364
|
xform.prepare(model);
|
|
351
365
|
this._addFile(xform.toXml(model), "xl/workbook.xml");
|
|
352
366
|
resolve();
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.WorksheetReader = void 0;
|
|
4
4
|
const events_1 = require("events");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
5
|
+
const parse_sax_1 = require("../../utils/parse-sax");
|
|
6
|
+
const utils_1 = require("../../utils/utils");
|
|
7
|
+
const col_cache_1 = require("../../utils/col-cache");
|
|
8
|
+
const range_1 = require("../../doc/range");
|
|
9
|
+
const row_1 = require("../../doc/row");
|
|
10
|
+
const column_1 = require("../../doc/column");
|
|
11
11
|
class WorksheetReader extends events_1.EventEmitter {
|
|
12
12
|
constructor({ workbook, id, iterator, options }) {
|
|
13
13
|
super();
|
|
@@ -21,14 +21,14 @@ class WorksheetReader extends events_1.EventEmitter {
|
|
|
21
21
|
this._columns = null;
|
|
22
22
|
this._keys = {};
|
|
23
23
|
// keep a record of dimensions
|
|
24
|
-
this._dimensions = new
|
|
24
|
+
this._dimensions = new range_1.Dimensions();
|
|
25
25
|
}
|
|
26
26
|
// destroy - not a valid operation for a streaming writer
|
|
27
27
|
// even though some streamers might be able to, it's a bad idea.
|
|
28
28
|
destroy() {
|
|
29
29
|
throw new Error("Invalid Operation: destroy");
|
|
30
30
|
}
|
|
31
|
-
// return the current dimensions of the
|
|
31
|
+
// return the current dimensions of the reader
|
|
32
32
|
get dimensions() {
|
|
33
33
|
return this._dimensions;
|
|
34
34
|
}
|
|
@@ -47,8 +47,8 @@ class WorksheetReader extends events_1.EventEmitter {
|
|
|
47
47
|
if (col) {
|
|
48
48
|
return col;
|
|
49
49
|
}
|
|
50
|
-
//
|
|
51
|
-
c =
|
|
50
|
+
// otherwise, assume letter
|
|
51
|
+
c = col_cache_1.colCache.l2n(c);
|
|
52
52
|
}
|
|
53
53
|
if (!this._columns) {
|
|
54
54
|
this._columns = [];
|
|
@@ -56,7 +56,7 @@ class WorksheetReader extends events_1.EventEmitter {
|
|
|
56
56
|
if (c > this._columns.length) {
|
|
57
57
|
let n = this._columns.length + 1;
|
|
58
58
|
while (n <= c) {
|
|
59
|
-
this._columns.push(new
|
|
59
|
+
this._columns.push(new column_1.Column(this, n++));
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
return this._columns[c - 1];
|
|
@@ -88,9 +88,9 @@ class WorksheetReader extends events_1.EventEmitter {
|
|
|
88
88
|
}
|
|
89
89
|
async *[Symbol.asyncIterator]() {
|
|
90
90
|
for await (const events of this.parse()) {
|
|
91
|
-
for (const
|
|
92
|
-
if (eventType === "row") {
|
|
93
|
-
yield value;
|
|
91
|
+
for (const event of events) {
|
|
92
|
+
if (event.eventType === "row") {
|
|
93
|
+
yield event.value;
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
}
|
|
@@ -133,7 +133,7 @@ class WorksheetReader extends events_1.EventEmitter {
|
|
|
133
133
|
let row = null;
|
|
134
134
|
let c = null;
|
|
135
135
|
let current = null;
|
|
136
|
-
for await (const events of (0,
|
|
136
|
+
for await (const events of (0, parse_sax_1.parseSax)(iterator)) {
|
|
137
137
|
const worksheetEvents = [];
|
|
138
138
|
for (const { eventType, value } of events) {
|
|
139
139
|
if (eventType === "opentag") {
|
|
@@ -160,7 +160,7 @@ class WorksheetReader extends events_1.EventEmitter {
|
|
|
160
160
|
case "row":
|
|
161
161
|
if (inRows) {
|
|
162
162
|
const r = parseInt(node.attributes.r, 10);
|
|
163
|
-
row = new
|
|
163
|
+
row = new row_1.Row(this, r);
|
|
164
164
|
if (node.attributes.ht) {
|
|
165
165
|
row.height = parseFloat(node.attributes.ht);
|
|
166
166
|
}
|
|
@@ -244,7 +244,7 @@ class WorksheetReader extends events_1.EventEmitter {
|
|
|
244
244
|
switch (node.name) {
|
|
245
245
|
case "cols":
|
|
246
246
|
inCols = false;
|
|
247
|
-
this._columns =
|
|
247
|
+
this._columns = column_1.Column.fromModel(cols);
|
|
248
248
|
break;
|
|
249
249
|
case "sheetData":
|
|
250
250
|
inRows = false;
|
|
@@ -256,7 +256,7 @@ class WorksheetReader extends events_1.EventEmitter {
|
|
|
256
256
|
break;
|
|
257
257
|
case "c":
|
|
258
258
|
if (row && c) {
|
|
259
|
-
const address =
|
|
259
|
+
const address = col_cache_1.colCache.decodeAddress(c.ref);
|
|
260
260
|
const cell = row.getCell(address.col);
|
|
261
261
|
if (c.s) {
|
|
262
262
|
const style = styles.getStyleModel(c.s);
|
|
@@ -270,7 +270,7 @@ class WorksheetReader extends events_1.EventEmitter {
|
|
|
270
270
|
};
|
|
271
271
|
if (c.v) {
|
|
272
272
|
if (c.t === "str") {
|
|
273
|
-
cellValue.result = (0,
|
|
273
|
+
cellValue.result = (0, utils_1.xmlDecode)(c.v.text);
|
|
274
274
|
}
|
|
275
275
|
else {
|
|
276
276
|
cellValue.result = parseFloat(c.v.text);
|
|
@@ -286,6 +286,7 @@ class WorksheetReader extends events_1.EventEmitter {
|
|
|
286
286
|
cell.value = sharedStrings[index];
|
|
287
287
|
}
|
|
288
288
|
else {
|
|
289
|
+
// Streaming format - unresolved shared string reference
|
|
289
290
|
cell.value = {
|
|
290
291
|
sharedString: index
|
|
291
292
|
};
|
|
@@ -294,7 +295,7 @@ class WorksheetReader extends events_1.EventEmitter {
|
|
|
294
295
|
}
|
|
295
296
|
case "inlineStr":
|
|
296
297
|
case "str":
|
|
297
|
-
cell.value = (0,
|
|
298
|
+
cell.value = (0, utils_1.xmlDecode)(c.v.text);
|
|
298
299
|
break;
|
|
299
300
|
case "e":
|
|
300
301
|
cell.value = { error: c.v.text };
|
|
@@ -302,19 +303,22 @@ class WorksheetReader extends events_1.EventEmitter {
|
|
|
302
303
|
case "b":
|
|
303
304
|
cell.value = parseInt(c.v.text, 10) !== 0;
|
|
304
305
|
break;
|
|
305
|
-
default:
|
|
306
|
-
|
|
307
|
-
|
|
306
|
+
default: {
|
|
307
|
+
const numFmtStr = typeof cell.numFmt === "string" ? cell.numFmt : cell.numFmt?.formatCode;
|
|
308
|
+
if (numFmtStr && (0, utils_1.isDateFmt)(numFmtStr)) {
|
|
309
|
+
cell.value = (0, utils_1.excelToDate)(parseFloat(c.v.text), properties?.model?.date1904);
|
|
308
310
|
}
|
|
309
311
|
else {
|
|
310
312
|
cell.value = parseFloat(c.v.text);
|
|
311
313
|
}
|
|
312
314
|
break;
|
|
315
|
+
}
|
|
313
316
|
}
|
|
314
317
|
}
|
|
315
318
|
if (hyperlinks) {
|
|
316
319
|
const hyperlink = hyperlinks[c.ref];
|
|
317
320
|
if (hyperlink) {
|
|
321
|
+
// Streaming-specific: assign text and hyperlink for further processing
|
|
318
322
|
cell.text = cell.value;
|
|
319
323
|
cell.value = undefined;
|
|
320
324
|
cell.hyperlink = hyperlink;
|