@cj-tech-master/excelts 1.6.3-canary.20251224124621.73c5d94 → 1.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -31
- package/README_zh.md +19 -31
- package/dist/browser/excelts.iife.js +40910 -7518
- package/dist/browser/excelts.iife.js.map +1 -1
- package/dist/browser/excelts.iife.min.js +105 -25
- package/dist/cjs/csv/csv.js +162 -226
- 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.js +179 -68
- package/dist/cjs/doc/worksheet.js +41 -41
- package/dist/cjs/index.js +32 -49
- 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 +22 -22
- package/dist/cjs/stream/xlsx/workbook-writer.js +34 -34
- package/dist/cjs/stream/xlsx/worksheet-reader.js +17 -17
- package/dist/cjs/stream/xlsx/worksheet-writer.js +60 -60
- package/dist/cjs/utils/cell-format.js +2 -2
- package/dist/cjs/utils/cell-matrix.js +5 -5
- 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.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.js +154 -46
- package/dist/cjs/utils/xml-stream.js +3 -3
- package/dist/cjs/utils/zip/compress.js +198 -18
- 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.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 +11 -10
- 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 +12 -11
- 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.js +833 -91
- package/dist/esm/csv/csv.js +159 -189
- package/dist/esm/doc/workbook.js +175 -64
- package/dist/esm/index.browser.js +1 -33
- package/dist/esm/index.js +8 -23
- package/dist/esm/local.js +1 -0
- package/dist/esm/utils/utils.js +123 -15
- package/dist/esm/utils/zip/compress.js +164 -16
- package/dist/esm/xlsx/xform/pivot-table/pivot-table-xform.js +3 -2
- package/dist/esm/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +3 -2
- package/dist/esm/xlsx/xlsx.js +829 -87
- package/dist/types/csv/csv.d.ts +71 -97
- 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 +2 -2
- package/dist/types/doc/workbook.d.ts +92 -62
- package/dist/types/doc/worksheet.d.ts +10 -10
- package/dist/types/index.browser.d.ts +5 -19
- package/dist/types/index.d.ts +23 -24
- package/dist/types/local.d.ts +1 -0
- package/dist/types/stream/xlsx/hyperlink-reader.d.ts +1 -1
- package/dist/types/stream/xlsx/workbook-reader.d.ts +4 -4
- package/dist/types/stream/xlsx/workbook-writer.d.ts +6 -6
- package/dist/types/stream/xlsx/worksheet-reader.d.ts +5 -5
- package/dist/types/stream/xlsx/worksheet-writer.d.ts +9 -9
- package/dist/types/utils/col-cache.d.ts +1 -1
- package/dist/types/utils/sheet-utils.d.ts +3 -3
- 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.d.ts +25 -6
- package/dist/types/utils/zip/compress.d.ts +45 -13
- package/dist/types/utils/zip/index.d.ts +5 -5
- package/dist/types/utils/zip/zip-builder.d.ts +1 -1
- 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.d.ts +80 -20
- package/package.json +15 -13
- package/dist/browser/excelts.esm.js +0 -19115
- package/dist/browser/excelts.esm.js.map +0 -1
- package/dist/browser/excelts.esm.min.js +0 -127
- package/dist/cjs/csv/csv-core.js +0 -701
- package/dist/cjs/csv/csv-stream.js +0 -646
- package/dist/cjs/csv/csv.base.js +0 -154
- package/dist/cjs/csv/csv.browser.js +0 -68
- package/dist/cjs/doc/workbook.base.js +0 -211
- package/dist/cjs/doc/workbook.browser.js +0 -62
- package/dist/cjs/utils/browser-buffer.js +0 -75
- package/dist/cjs/utils/encryptor.browser.js +0 -240
- package/dist/cjs/utils/stream-buf.browser.js +0 -355
- package/dist/cjs/utils/utils.base.js +0 -161
- package/dist/cjs/utils/utils.browser.js +0 -89
- package/dist/cjs/utils/zip/compress.base.js +0 -85
- package/dist/cjs/utils/zip/compress.browser.js +0 -83
- package/dist/cjs/utils/zip/crc32.browser.js +0 -88
- package/dist/cjs/utils/zip-stream.browser.js +0 -135
- package/dist/cjs/xlsx/xlsx.base.js +0 -742
- package/dist/cjs/xlsx/xlsx.browser.js +0 -205
- package/dist/esm/csv/csv-core.js +0 -694
- package/dist/esm/csv/csv-stream.js +0 -638
- package/dist/esm/csv/csv.base.js +0 -141
- package/dist/esm/csv/csv.browser.js +0 -65
- package/dist/esm/doc/workbook.base.js +0 -207
- package/dist/esm/doc/workbook.browser.js +0 -59
- package/dist/esm/utils/browser-buffer.js +0 -67
- package/dist/esm/utils/encryptor.browser.js +0 -237
- package/dist/esm/utils/stream-buf.browser.js +0 -352
- package/dist/esm/utils/utils.base.js +0 -142
- package/dist/esm/utils/utils.browser.js +0 -68
- package/dist/esm/utils/zip/compress.base.js +0 -80
- package/dist/esm/utils/zip/compress.browser.js +0 -76
- package/dist/esm/utils/zip/crc32.browser.js +0 -82
- package/dist/esm/utils/zip-stream.browser.js +0 -132
- package/dist/esm/xlsx/xlsx.base.js +0 -739
- package/dist/esm/xlsx/xlsx.browser.js +0 -202
- package/dist/types/csv/csv-core.d.ts +0 -207
- package/dist/types/csv/csv-stream.d.ts +0 -114
- package/dist/types/csv/csv.base.d.ts +0 -61
- package/dist/types/csv/csv.browser.d.ts +0 -33
- package/dist/types/doc/workbook.base.d.ts +0 -111
- package/dist/types/doc/workbook.browser.d.ts +0 -38
- package/dist/types/utils/browser-buffer.d.ts +0 -28
- package/dist/types/utils/encryptor.browser.d.ts +0 -28
- package/dist/types/utils/stream-buf.browser.d.ts +0 -41
- package/dist/types/utils/utils.base.d.ts +0 -29
- package/dist/types/utils/utils.browser.d.ts +0 -29
- package/dist/types/utils/zip/compress.base.d.ts +0 -42
- package/dist/types/utils/zip/compress.browser.d.ts +0 -54
- package/dist/types/utils/zip/crc32.browser.d.ts +0 -52
- package/dist/types/utils/zip-stream.browser.d.ts +0 -39
- package/dist/types/xlsx/xlsx.base.d.ts +0 -134
- package/dist/types/xlsx/xlsx.browser.d.ts +0 -31
package/dist/cjs/doc/workbook.js
CHANGED
|
@@ -1,96 +1,207 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Workbook - Node.js version with full functionality
|
|
4
|
-
*
|
|
5
|
-
* Extends WorkbookBase with:
|
|
6
|
-
* - xlsx: Full file/stream/buffer support
|
|
7
|
-
* - csv: CSV read/write support
|
|
8
|
-
* - streaming: createStreamWriter/createStreamReader for large files
|
|
9
|
-
*/
|
|
10
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
3
|
exports.Workbook = void 0;
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
4
|
+
const worksheet_js_1 = require("./worksheet");
|
|
5
|
+
const defined_names_js_1 = require("./defined-names");
|
|
6
|
+
const xlsx_js_1 = require("../xlsx/xlsx");
|
|
7
|
+
const csv_js_1 = require("../csv/csv");
|
|
8
|
+
// Workbook requirements
|
|
9
|
+
// Load and Save from file and stream
|
|
10
|
+
// Access/Add/Delete individual worksheets
|
|
11
|
+
// Manage String table, Hyperlink table, etc.
|
|
12
|
+
// Manage scaffolding for contained objects to write to/read from
|
|
13
|
+
class Workbook {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.category = "";
|
|
16
|
+
this.company = "";
|
|
17
|
+
this.created = new Date();
|
|
18
|
+
this.description = "";
|
|
19
|
+
this.keywords = "";
|
|
20
|
+
this.manager = "";
|
|
21
|
+
this.modified = this.created;
|
|
22
|
+
this.properties = {};
|
|
23
|
+
this.calcProperties = {};
|
|
24
|
+
this._worksheets = [];
|
|
25
|
+
this.subject = "";
|
|
26
|
+
this.title = "";
|
|
27
|
+
this.views = [];
|
|
28
|
+
this.media = [];
|
|
29
|
+
this.pivotTables = [];
|
|
30
|
+
this._definedNames = new defined_names_js_1.DefinedNames();
|
|
31
|
+
}
|
|
18
32
|
/**
|
|
19
33
|
* xlsx file format operations
|
|
20
|
-
* Supports: readFile, writeFile, read (stream), write (stream), load (buffer), writeBuffer
|
|
21
34
|
*/
|
|
22
35
|
get xlsx() {
|
|
23
36
|
if (!this._xlsx) {
|
|
24
|
-
this._xlsx = new
|
|
37
|
+
this._xlsx = new xlsx_js_1.XLSX(this);
|
|
25
38
|
}
|
|
26
39
|
return this._xlsx;
|
|
27
40
|
}
|
|
28
41
|
/**
|
|
29
42
|
* csv file format operations
|
|
30
|
-
* Supports: readFile, writeFile, read (stream), write (stream)
|
|
31
43
|
*/
|
|
32
44
|
get csv() {
|
|
33
45
|
if (!this._csv) {
|
|
34
|
-
this._csv = new
|
|
46
|
+
this._csv = new csv_js_1.CSV(this);
|
|
35
47
|
}
|
|
36
48
|
return this._csv;
|
|
37
49
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
50
|
+
get nextId() {
|
|
51
|
+
// find the next unique spot to add worksheet
|
|
52
|
+
for (let i = 1; i < this._worksheets.length; i++) {
|
|
53
|
+
if (!this._worksheets[i]) {
|
|
54
|
+
return i;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return this._worksheets.length || 1;
|
|
58
|
+
}
|
|
41
59
|
/**
|
|
42
|
-
*
|
|
43
|
-
* This is more memory-efficient than using Workbook for large datasets.
|
|
44
|
-
*
|
|
45
|
-
* @param options - Options for the workbook writer
|
|
46
|
-
* @returns A new WorkbookWriter instance
|
|
47
|
-
*
|
|
48
|
-
* @example
|
|
49
|
-
* ```ts
|
|
50
|
-
* const writer = Workbook.createStreamWriter({ filename: "large-file.xlsx" });
|
|
51
|
-
* const sheet = writer.addWorksheet("Sheet1");
|
|
52
|
-
* for (let i = 0; i < 1000000; i++) {
|
|
53
|
-
* sheet.addRow([i, `Row ${i}`]).commit();
|
|
54
|
-
* }
|
|
55
|
-
* await writer.commit();
|
|
56
|
-
* ```
|
|
60
|
+
* Add a new worksheet and return a reference to it
|
|
57
61
|
*/
|
|
58
|
-
|
|
59
|
-
|
|
62
|
+
addWorksheet(name, options) {
|
|
63
|
+
const id = this.nextId;
|
|
64
|
+
const lastOrderNo = this._worksheets.reduce((acc, ws) => ((ws && ws.orderNo) > acc ? ws.orderNo : acc), 0);
|
|
65
|
+
const worksheetOptions = {
|
|
66
|
+
...options,
|
|
67
|
+
id,
|
|
68
|
+
name,
|
|
69
|
+
orderNo: lastOrderNo + 1,
|
|
70
|
+
workbook: this
|
|
71
|
+
};
|
|
72
|
+
const worksheet = new worksheet_js_1.Worksheet(worksheetOptions);
|
|
73
|
+
this._worksheets[id] = worksheet;
|
|
74
|
+
return worksheet;
|
|
75
|
+
}
|
|
76
|
+
removeWorksheetEx(worksheet) {
|
|
77
|
+
delete this._worksheets[worksheet.id];
|
|
78
|
+
}
|
|
79
|
+
removeWorksheet(id) {
|
|
80
|
+
const worksheet = this.getWorksheet(id);
|
|
81
|
+
if (worksheet) {
|
|
82
|
+
worksheet.destroy();
|
|
83
|
+
}
|
|
60
84
|
}
|
|
61
85
|
/**
|
|
62
|
-
*
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
86
|
+
* Fetch sheet by name or id
|
|
87
|
+
*/
|
|
88
|
+
getWorksheet(id) {
|
|
89
|
+
if (id === undefined) {
|
|
90
|
+
return this._worksheets.find(Boolean);
|
|
91
|
+
}
|
|
92
|
+
if (typeof id === "number") {
|
|
93
|
+
return this._worksheets[id];
|
|
94
|
+
}
|
|
95
|
+
if (typeof id === "string") {
|
|
96
|
+
return this._worksheets.find(worksheet => worksheet && worksheet.name === id);
|
|
97
|
+
}
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Return a clone of worksheets in order
|
|
102
|
+
*/
|
|
103
|
+
get worksheets() {
|
|
104
|
+
// return a clone of _worksheets
|
|
105
|
+
return this._worksheets
|
|
106
|
+
.slice(1)
|
|
107
|
+
.sort((a, b) => a.orderNo - b.orderNo)
|
|
108
|
+
.filter(Boolean);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Iterate over all sheets.
|
|
68
112
|
*
|
|
69
|
-
*
|
|
70
|
-
* ```ts
|
|
71
|
-
* const reader = Workbook.createStreamReader("large-file.xlsx");
|
|
72
|
-
* for await (const event of reader) {
|
|
73
|
-
* if (event.eventType === "worksheet") {
|
|
74
|
-
* const worksheet = event.value;
|
|
75
|
-
* for await (const row of worksheet) {
|
|
76
|
-
* console.log(row.values);
|
|
77
|
-
* }
|
|
78
|
-
* }
|
|
79
|
-
* }
|
|
80
|
-
* ```
|
|
113
|
+
* Note: `workbook.worksheets.forEach` will still work but this is better.
|
|
81
114
|
*/
|
|
82
|
-
|
|
83
|
-
|
|
115
|
+
eachSheet(callback) {
|
|
116
|
+
this.worksheets.forEach(sheet => {
|
|
117
|
+
callback(sheet, sheet.id);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
get definedNames() {
|
|
121
|
+
return this._definedNames;
|
|
122
|
+
}
|
|
123
|
+
clearThemes() {
|
|
124
|
+
// Note: themes are not an exposed feature, meddle at your peril!
|
|
125
|
+
this._themes = undefined;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Add Image to Workbook and return the id
|
|
129
|
+
*/
|
|
130
|
+
addImage(image) {
|
|
131
|
+
// TODO: validation?
|
|
132
|
+
const id = this.media.length;
|
|
133
|
+
this.media.push({ ...image, type: "image" });
|
|
134
|
+
return id;
|
|
135
|
+
}
|
|
136
|
+
getImage(id) {
|
|
137
|
+
return this.media[Number(id)];
|
|
138
|
+
}
|
|
139
|
+
get model() {
|
|
140
|
+
return {
|
|
141
|
+
creator: this.creator || "Unknown",
|
|
142
|
+
lastModifiedBy: this.lastModifiedBy || "Unknown",
|
|
143
|
+
lastPrinted: this.lastPrinted,
|
|
144
|
+
created: this.created,
|
|
145
|
+
modified: this.modified,
|
|
146
|
+
properties: this.properties,
|
|
147
|
+
worksheets: this.worksheets.map(worksheet => worksheet.model),
|
|
148
|
+
sheets: this.worksheets.map(ws => ws.model).filter(Boolean),
|
|
149
|
+
definedNames: this._definedNames.model,
|
|
150
|
+
views: this.views,
|
|
151
|
+
company: this.company,
|
|
152
|
+
manager: this.manager,
|
|
153
|
+
title: this.title,
|
|
154
|
+
subject: this.subject,
|
|
155
|
+
keywords: this.keywords,
|
|
156
|
+
category: this.category,
|
|
157
|
+
description: this.description,
|
|
158
|
+
language: this.language,
|
|
159
|
+
revision: this.revision,
|
|
160
|
+
contentStatus: this.contentStatus,
|
|
161
|
+
themes: this._themes,
|
|
162
|
+
media: this.media,
|
|
163
|
+
pivotTables: this.pivotTables,
|
|
164
|
+
calcProperties: this.calcProperties
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
set model(value) {
|
|
168
|
+
this.creator = value.creator;
|
|
169
|
+
this.lastModifiedBy = value.lastModifiedBy;
|
|
170
|
+
this.lastPrinted = value.lastPrinted;
|
|
171
|
+
this.created = value.created;
|
|
172
|
+
this.modified = value.modified;
|
|
173
|
+
this.company = value.company;
|
|
174
|
+
this.manager = value.manager;
|
|
175
|
+
this.title = value.title;
|
|
176
|
+
this.subject = value.subject;
|
|
177
|
+
this.keywords = value.keywords;
|
|
178
|
+
this.category = value.category;
|
|
179
|
+
this.description = value.description;
|
|
180
|
+
this.language = value.language;
|
|
181
|
+
this.revision = value.revision;
|
|
182
|
+
this.contentStatus = value.contentStatus;
|
|
183
|
+
this.properties = value.properties;
|
|
184
|
+
this.calcProperties = value.calcProperties;
|
|
185
|
+
this._worksheets = [];
|
|
186
|
+
value.worksheets.forEach(worksheetModel => {
|
|
187
|
+
const { id, name, state } = worksheetModel;
|
|
188
|
+
const orderNo = value.sheets && value.sheets.findIndex(ws => ws.id === id);
|
|
189
|
+
const worksheet = (this._worksheets[id] = new worksheet_js_1.Worksheet({
|
|
190
|
+
id,
|
|
191
|
+
name,
|
|
192
|
+
orderNo: orderNo !== -1 ? orderNo : undefined,
|
|
193
|
+
state,
|
|
194
|
+
workbook: this
|
|
195
|
+
}));
|
|
196
|
+
worksheet.model = worksheetModel;
|
|
197
|
+
});
|
|
198
|
+
this._definedNames.model = value.definedNames;
|
|
199
|
+
this.views = value.views;
|
|
200
|
+
this._themes = value.themes;
|
|
201
|
+
this.media = value.media || [];
|
|
202
|
+
// Handle pivot tables - either newly created or loaded from file
|
|
203
|
+
// Loaded pivot tables come from loadedPivotTables after reconciliation
|
|
204
|
+
this.pivotTables = value.pivotTables || value.loadedPivotTables || [];
|
|
84
205
|
}
|
|
85
206
|
}
|
|
86
207
|
exports.Workbook = Workbook;
|
|
87
|
-
/**
|
|
88
|
-
* Streaming workbook writer class for large files.
|
|
89
|
-
* @example new Workbook.Writer({ filename: "large.xlsx" })
|
|
90
|
-
*/
|
|
91
|
-
Workbook.Writer = workbook_writer_1.WorkbookWriter;
|
|
92
|
-
/**
|
|
93
|
-
* Streaming workbook reader class for large files.
|
|
94
|
-
* @example new Workbook.Reader("large.xlsx")
|
|
95
|
-
*/
|
|
96
|
-
Workbook.Reader = workbook_reader_1.WorkbookReader;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Worksheet = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
4
|
+
const col_cache_js_1 = require("../utils/col-cache");
|
|
5
|
+
const range_js_1 = require("./range");
|
|
6
|
+
const row_js_1 = require("./row");
|
|
7
|
+
const column_js_1 = require("./column");
|
|
8
|
+
const enums_js_1 = require("./enums");
|
|
9
|
+
const image_js_1 = require("./image");
|
|
10
|
+
const table_js_1 = require("./table");
|
|
11
|
+
const data_validations_js_1 = require("./data-validations");
|
|
12
|
+
const encryptor_js_1 = require("../utils/encryptor");
|
|
13
|
+
const pivot_table_js_1 = require("./pivot-table");
|
|
14
|
+
const copy_style_js_1 = require("../utils/copy-style");
|
|
15
15
|
// Worksheet requirements
|
|
16
16
|
// Operate as sheet inside workbook or standalone
|
|
17
17
|
// Load and Save from file and stream
|
|
@@ -82,7 +82,7 @@ class Worksheet {
|
|
|
82
82
|
firstHeader: null,
|
|
83
83
|
firstFooter: null
|
|
84
84
|
}, options.headerFooter);
|
|
85
|
-
this.dataValidations = new
|
|
85
|
+
this.dataValidations = new data_validations_js_1.DataValidations();
|
|
86
86
|
// for freezepanes, split, zoom, gridlines, etc
|
|
87
87
|
this.views = options.views || [];
|
|
88
88
|
this.autoFilter = options.autoFilter || null;
|
|
@@ -149,7 +149,7 @@ class Worksheet {
|
|
|
149
149
|
* Get the bounding range of the cells in this worksheet
|
|
150
150
|
*/
|
|
151
151
|
get dimensions() {
|
|
152
|
-
const dimensions = new
|
|
152
|
+
const dimensions = new range_js_1.Range();
|
|
153
153
|
this._rows.forEach(row => {
|
|
154
154
|
if (row) {
|
|
155
155
|
const rowDims = row.dimensions;
|
|
@@ -184,7 +184,7 @@ class Worksheet {
|
|
|
184
184
|
let count = 1;
|
|
185
185
|
const columns = (this._columns = []);
|
|
186
186
|
value.forEach(defn => {
|
|
187
|
-
const column = new
|
|
187
|
+
const column = new column_js_1.Column(this, count++, false);
|
|
188
188
|
columns.push(column);
|
|
189
189
|
column.defn = defn;
|
|
190
190
|
});
|
|
@@ -213,7 +213,7 @@ class Worksheet {
|
|
|
213
213
|
return col;
|
|
214
214
|
}
|
|
215
215
|
// otherwise, assume letter
|
|
216
|
-
colNum =
|
|
216
|
+
colNum = col_cache_js_1.colCache.l2n(c);
|
|
217
217
|
}
|
|
218
218
|
else {
|
|
219
219
|
colNum = c;
|
|
@@ -224,7 +224,7 @@ class Worksheet {
|
|
|
224
224
|
if (colNum > this._columns.length) {
|
|
225
225
|
let n = this._columns.length + 1;
|
|
226
226
|
while (n <= colNum) {
|
|
227
|
-
this._columns.push(new
|
|
227
|
+
this._columns.push(new column_js_1.Column(this, n++));
|
|
228
228
|
}
|
|
229
229
|
}
|
|
230
230
|
return this._columns[colNum - 1];
|
|
@@ -376,7 +376,7 @@ class Worksheet {
|
|
|
376
376
|
getRow(r) {
|
|
377
377
|
let row = this._rows[r - 1];
|
|
378
378
|
if (!row) {
|
|
379
|
-
row = this._rows[r - 1] = new
|
|
379
|
+
row = this._rows[r - 1] = new row_js_1.Row(this, r);
|
|
380
380
|
}
|
|
381
381
|
return row;
|
|
382
382
|
}
|
|
@@ -437,9 +437,9 @@ class Worksheet {
|
|
|
437
437
|
_copyStyle(src, dest, styleEmpty = false) {
|
|
438
438
|
const rSrc = this.getRow(src);
|
|
439
439
|
const rDst = this.getRow(dest);
|
|
440
|
-
rDst.style = (0,
|
|
440
|
+
rDst.style = (0, copy_style_js_1.copyStyle)(rSrc.style);
|
|
441
441
|
rSrc.eachCell({ includeEmpty: styleEmpty }, (cell, colNumber) => {
|
|
442
|
-
rDst.getCell(colNumber).style = (0,
|
|
442
|
+
rDst.getCell(colNumber).style = (0, copy_style_js_1.copyStyle)(cell.style);
|
|
443
443
|
});
|
|
444
444
|
rDst.height = rSrc.height;
|
|
445
445
|
}
|
|
@@ -510,7 +510,7 @@ class Worksheet {
|
|
|
510
510
|
rSrc.eachCell({ includeEmpty: true }, (cell, colNumber) => {
|
|
511
511
|
rDst.getCell(colNumber).style = cell.style;
|
|
512
512
|
// remerge cells accounting for insert offset
|
|
513
|
-
if (cell.type ===
|
|
513
|
+
if (cell.type === enums_js_1.Enums.ValueType.Merge) {
|
|
514
514
|
const cellToBeMerged = this.getRow(cell.row + nInserts).getCell(colNumber);
|
|
515
515
|
const prevMaster = cell.master;
|
|
516
516
|
const newMaster = this.getRow(prevMaster.row + nInserts).getCell(prevMaster.col);
|
|
@@ -574,7 +574,7 @@ class Worksheet {
|
|
|
574
574
|
* Returns the cell at [r,c] or address given by r. If not found, return undefined
|
|
575
575
|
*/
|
|
576
576
|
findCell(r, c) {
|
|
577
|
-
const address =
|
|
577
|
+
const address = col_cache_js_1.colCache.getAddress(r, c);
|
|
578
578
|
const row = this._rows[address.row - 1];
|
|
579
579
|
return row ? row.findCell(address.col) : undefined;
|
|
580
580
|
}
|
|
@@ -582,7 +582,7 @@ class Worksheet {
|
|
|
582
582
|
* Get or create cell at [r,c] or address given by r
|
|
583
583
|
*/
|
|
584
584
|
getCell(r, c) {
|
|
585
|
-
const address =
|
|
585
|
+
const address = col_cache_js_1.colCache.getAddress(r, c);
|
|
586
586
|
const row = this.getRow(address.row);
|
|
587
587
|
return row.getCellEx(address);
|
|
588
588
|
}
|
|
@@ -598,11 +598,11 @@ class Worksheet {
|
|
|
598
598
|
* t, l, b, r numbers, e.g. `10,11,12,13`
|
|
599
599
|
*/
|
|
600
600
|
mergeCells(...cells) {
|
|
601
|
-
const dimensions = new
|
|
601
|
+
const dimensions = new range_js_1.Range(cells);
|
|
602
602
|
this._mergeCellsInternal(dimensions);
|
|
603
603
|
}
|
|
604
604
|
mergeCellsWithoutStyle(...cells) {
|
|
605
|
-
const dimensions = new
|
|
605
|
+
const dimensions = new range_js_1.Range(cells);
|
|
606
606
|
this._mergeCellsInternal(dimensions, true);
|
|
607
607
|
}
|
|
608
608
|
_mergeCellsInternal(dimensions, ignoreStyle) {
|
|
@@ -647,13 +647,13 @@ class Worksheet {
|
|
|
647
647
|
* atomic - either they're all merged or all un-merged.
|
|
648
648
|
*/
|
|
649
649
|
unMergeCells(...cells) {
|
|
650
|
-
const dimensions = new
|
|
650
|
+
const dimensions = new range_js_1.Range(cells);
|
|
651
651
|
// find any cells in that range and unmerge them
|
|
652
652
|
for (let i = dimensions.top; i <= dimensions.bottom; i++) {
|
|
653
653
|
for (let j = dimensions.left; j <= dimensions.right; j++) {
|
|
654
654
|
const cell = this.findCell(i, j);
|
|
655
655
|
if (cell) {
|
|
656
|
-
if (cell.type ===
|
|
656
|
+
if (cell.type === enums_js_1.Enums.ValueType.Merge) {
|
|
657
657
|
// this cell merges to another master
|
|
658
658
|
this._unMergeMaster(cell.master);
|
|
659
659
|
}
|
|
@@ -669,10 +669,10 @@ class Worksheet {
|
|
|
669
669
|
// Shared/Array Formula
|
|
670
670
|
fillFormula(range, formula, results, shareType = "shared") {
|
|
671
671
|
// Define formula for top-left cell and share to rest
|
|
672
|
-
const decoded =
|
|
672
|
+
const decoded = col_cache_js_1.colCache.decode(range);
|
|
673
673
|
const { top, left, bottom, right } = decoded;
|
|
674
674
|
const width = right - left + 1;
|
|
675
|
-
const masterAddress =
|
|
675
|
+
const masterAddress = col_cache_js_1.colCache.encodeAddress(top, left);
|
|
676
676
|
const isShared = shareType === "shared";
|
|
677
677
|
// work out result accessor
|
|
678
678
|
let getResult;
|
|
@@ -727,7 +727,7 @@ class Worksheet {
|
|
|
727
727
|
imageId: String(imageId),
|
|
728
728
|
range
|
|
729
729
|
};
|
|
730
|
-
this._media.push(new
|
|
730
|
+
this._media.push(new image_js_1.Image(this, model));
|
|
731
731
|
}
|
|
732
732
|
getImages() {
|
|
733
733
|
return this._media.filter(m => m.type === "image");
|
|
@@ -740,7 +740,7 @@ class Worksheet {
|
|
|
740
740
|
type: "background",
|
|
741
741
|
imageId: String(imageId)
|
|
742
742
|
};
|
|
743
|
-
this._media.push(new
|
|
743
|
+
this._media.push(new image_js_1.Image(this, model));
|
|
744
744
|
}
|
|
745
745
|
getBackgroundImageId() {
|
|
746
746
|
const image = this._media.find(m => m.type === "background");
|
|
@@ -766,10 +766,10 @@ class Worksheet {
|
|
|
766
766
|
}
|
|
767
767
|
if (password) {
|
|
768
768
|
this.sheetProtection.algorithmName = "SHA-512";
|
|
769
|
-
this.sheetProtection.saltValue =
|
|
769
|
+
this.sheetProtection.saltValue = encryptor_js_1.Encryptor.randomBytes(16).toString("base64");
|
|
770
770
|
this.sheetProtection.spinCount =
|
|
771
771
|
options && "spinCount" in options ? options.spinCount : 100000; // allow user specified spinCount
|
|
772
|
-
this.sheetProtection.hashValue =
|
|
772
|
+
this.sheetProtection.hashValue = encryptor_js_1.Encryptor.convertPasswordToHash(password, "SHA512", this.sheetProtection.saltValue, this.sheetProtection.spinCount);
|
|
773
773
|
}
|
|
774
774
|
if (options) {
|
|
775
775
|
this.sheetProtection = Object.assign(this.sheetProtection, options);
|
|
@@ -789,7 +789,7 @@ class Worksheet {
|
|
|
789
789
|
* Add a new table and return a reference to it
|
|
790
790
|
*/
|
|
791
791
|
addTable(model) {
|
|
792
|
-
const table = new
|
|
792
|
+
const table = new table_js_1.Table(this, model);
|
|
793
793
|
this.tables[model.name] = table;
|
|
794
794
|
return table;
|
|
795
795
|
}
|
|
@@ -814,7 +814,7 @@ class Worksheet {
|
|
|
814
814
|
// =========================================================================
|
|
815
815
|
// Pivot Tables
|
|
816
816
|
addPivotTable(model) {
|
|
817
|
-
const pivotTable = (0,
|
|
817
|
+
const pivotTable = (0, pivot_table_js_1.makePivotTable)(this, model);
|
|
818
818
|
this.pivotTables.push(pivotTable);
|
|
819
819
|
this.workbook.pivotTables.push(pivotTable);
|
|
820
820
|
return pivotTable;
|
|
@@ -863,11 +863,11 @@ class Worksheet {
|
|
|
863
863
|
};
|
|
864
864
|
// =================================================
|
|
865
865
|
// columns
|
|
866
|
-
model.cols =
|
|
866
|
+
model.cols = column_js_1.Column.toModel(this.columns || []);
|
|
867
867
|
// ==========================================================
|
|
868
868
|
// Rows
|
|
869
869
|
const rows = (model.rows = []);
|
|
870
|
-
const dimensions = (model.dimensions = new
|
|
870
|
+
const dimensions = (model.dimensions = new range_js_1.Range());
|
|
871
871
|
this._rows.forEach(row => {
|
|
872
872
|
const rowModel = row && row.model;
|
|
873
873
|
if (rowModel) {
|
|
@@ -887,7 +887,7 @@ class Worksheet {
|
|
|
887
887
|
this._rows = [];
|
|
888
888
|
if (model.rows) {
|
|
889
889
|
model.rows.forEach(rowModel => {
|
|
890
|
-
const row = new
|
|
890
|
+
const row = new row_js_1.Row(this, rowModel.number);
|
|
891
891
|
this._rows[row.number - 1] = row;
|
|
892
892
|
row.model = rowModel;
|
|
893
893
|
});
|
|
@@ -904,19 +904,19 @@ class Worksheet {
|
|
|
904
904
|
}
|
|
905
905
|
set model(value) {
|
|
906
906
|
this.name = value.name;
|
|
907
|
-
this._columns =
|
|
907
|
+
this._columns = column_js_1.Column.fromModel(this, value.cols);
|
|
908
908
|
this._parseRows(value);
|
|
909
909
|
this._parseMergeCells(value);
|
|
910
|
-
this.dataValidations = new
|
|
910
|
+
this.dataValidations = new data_validations_js_1.DataValidations(value.dataValidations);
|
|
911
911
|
this.properties = value.properties;
|
|
912
912
|
this.pageSetup = value.pageSetup;
|
|
913
913
|
this.headerFooter = value.headerFooter;
|
|
914
914
|
this.views = value.views;
|
|
915
915
|
this.autoFilter = value.autoFilter;
|
|
916
|
-
this._media = value.media.map(medium => new
|
|
916
|
+
this._media = value.media.map(medium => new image_js_1.Image(this, medium));
|
|
917
917
|
this.sheetProtection = value.sheetProtection;
|
|
918
918
|
this.tables = value.tables.reduce((tables, table) => {
|
|
919
|
-
const t = new
|
|
919
|
+
const t = new table_js_1.Table(this, table);
|
|
920
920
|
t.model = table;
|
|
921
921
|
tables[table.name] = t;
|
|
922
922
|
return tables;
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// =============================================================================
|
|
3
|
-
// Main Classes
|
|
4
|
-
// =============================================================================
|
|
5
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
3
|
if (k2 === undefined) k2 = k;
|
|
7
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -17,53 +14,39 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
17
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
15
|
};
|
|
19
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
17
|
+
exports.DataValidations = exports.Table = exports.Image = exports.Range = exports.Cell = exports.Column = exports.Row = exports.WorksheetWriter = exports.WorksheetReader = exports.Worksheet = exports.WorkbookReader = exports.WorkbookWriter = exports.ModelContainer = exports.Workbook = void 0;
|
|
18
|
+
// Export main classes
|
|
19
|
+
var workbook_js_1 = require("./doc/workbook");
|
|
20
|
+
Object.defineProperty(exports, "Workbook", { enumerable: true, get: function () { return workbook_js_1.Workbook; } });
|
|
21
|
+
var modelcontainer_js_1 = require("./doc/modelcontainer");
|
|
22
|
+
Object.defineProperty(exports, "ModelContainer", { enumerable: true, get: function () { return modelcontainer_js_1.ModelContainer; } });
|
|
23
|
+
var workbook_writer_js_1 = require("./stream/xlsx/workbook-writer");
|
|
24
|
+
Object.defineProperty(exports, "WorkbookWriter", { enumerable: true, get: function () { return workbook_writer_js_1.WorkbookWriter; } });
|
|
25
|
+
var workbook_reader_js_1 = require("./stream/xlsx/workbook-reader");
|
|
26
|
+
Object.defineProperty(exports, "WorkbookReader", { enumerable: true, get: function () { return workbook_reader_js_1.WorkbookReader; } });
|
|
27
|
+
var worksheet_js_1 = require("./doc/worksheet");
|
|
28
|
+
Object.defineProperty(exports, "Worksheet", { enumerable: true, get: function () { return worksheet_js_1.Worksheet; } });
|
|
29
|
+
var worksheet_reader_js_1 = require("./stream/xlsx/worksheet-reader");
|
|
30
|
+
Object.defineProperty(exports, "WorksheetReader", { enumerable: true, get: function () { return worksheet_reader_js_1.WorksheetReader; } });
|
|
31
|
+
var worksheet_writer_js_1 = require("./stream/xlsx/worksheet-writer");
|
|
32
|
+
Object.defineProperty(exports, "WorksheetWriter", { enumerable: true, get: function () { return worksheet_writer_js_1.WorksheetWriter; } });
|
|
33
|
+
var row_js_1 = require("./doc/row");
|
|
34
|
+
Object.defineProperty(exports, "Row", { enumerable: true, get: function () { return row_js_1.Row; } });
|
|
35
|
+
var column_js_1 = require("./doc/column");
|
|
36
|
+
Object.defineProperty(exports, "Column", { enumerable: true, get: function () { return column_js_1.Column; } });
|
|
37
|
+
var cell_js_1 = require("./doc/cell");
|
|
38
|
+
Object.defineProperty(exports, "Cell", { enumerable: true, get: function () { return cell_js_1.Cell; } });
|
|
39
|
+
var range_js_1 = require("./doc/range");
|
|
40
|
+
Object.defineProperty(exports, "Range", { enumerable: true, get: function () { return range_js_1.Range; } });
|
|
41
|
+
var image_js_1 = require("./doc/image");
|
|
42
|
+
Object.defineProperty(exports, "Image", { enumerable: true, get: function () { return image_js_1.Image; } });
|
|
35
43
|
__exportStar(require("./doc/anchor"), exports);
|
|
36
|
-
var
|
|
37
|
-
Object.defineProperty(exports, "Table", { enumerable: true, get: function () { return
|
|
38
|
-
var
|
|
39
|
-
Object.defineProperty(exports, "DataValidations", { enumerable: true, get: function () { return
|
|
40
|
-
//
|
|
41
|
-
// Node.js Only: Streaming Classes
|
|
42
|
-
// These can also be accessed via Workbook.createStreamWriter/createStreamReader
|
|
43
|
-
// =============================================================================
|
|
44
|
-
var workbook_writer_1 = require("./stream/xlsx/workbook-writer");
|
|
45
|
-
Object.defineProperty(exports, "WorkbookWriter", { enumerable: true, get: function () { return workbook_writer_1.WorkbookWriter; } });
|
|
46
|
-
var workbook_reader_1 = require("./stream/xlsx/workbook-reader");
|
|
47
|
-
Object.defineProperty(exports, "WorkbookReader", { enumerable: true, get: function () { return workbook_reader_1.WorkbookReader; } });
|
|
48
|
-
var worksheet_writer_1 = require("./stream/xlsx/worksheet-writer");
|
|
49
|
-
Object.defineProperty(exports, "WorksheetWriter", { enumerable: true, get: function () { return worksheet_writer_1.WorksheetWriter; } });
|
|
50
|
-
var worksheet_reader_1 = require("./stream/xlsx/worksheet-reader");
|
|
51
|
-
Object.defineProperty(exports, "WorksheetReader", { enumerable: true, get: function () { return worksheet_reader_1.WorksheetReader; } });
|
|
52
|
-
var modelcontainer_1 = require("./doc/modelcontainer");
|
|
53
|
-
Object.defineProperty(exports, "ModelContainer", { enumerable: true, get: function () { return modelcontainer_1.ModelContainer; } });
|
|
54
|
-
// =============================================================================
|
|
55
|
-
// Enums
|
|
56
|
-
// =============================================================================
|
|
44
|
+
var table_js_1 = require("./doc/table");
|
|
45
|
+
Object.defineProperty(exports, "Table", { enumerable: true, get: function () { return table_js_1.Table; } });
|
|
46
|
+
var data_validations_js_1 = require("./doc/data-validations");
|
|
47
|
+
Object.defineProperty(exports, "DataValidations", { enumerable: true, get: function () { return data_validations_js_1.DataValidations; } });
|
|
48
|
+
// Export enums
|
|
57
49
|
__exportStar(require("./doc/enums"), exports);
|
|
58
|
-
//
|
|
59
|
-
// Types
|
|
60
|
-
// =============================================================================
|
|
61
|
-
// Export all type definitions from types.ts
|
|
50
|
+
// Export all type definitions
|
|
62
51
|
__exportStar(require("./types"), exports);
|
|
63
|
-
var csv_1 = require("./csv/csv");
|
|
64
|
-
Object.defineProperty(exports, "CsvParserStream", { enumerable: true, get: function () { return csv_1.CsvParserStream; } });
|
|
65
|
-
Object.defineProperty(exports, "CsvFormatterStream", { enumerable: true, get: function () { return csv_1.CsvFormatterStream; } });
|
|
66
|
-
// =============================================================================
|
|
67
|
-
// Utilities
|
|
68
|
-
// =============================================================================
|
|
69
52
|
__exportStar(require("./utils/sheet-utils"), exports);
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.HyperlinkReader = void 0;
|
|
4
4
|
const events_1 = require("events");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
5
|
+
const parse_sax_js_1 = require("../../utils/parse-sax");
|
|
6
|
+
const enums_js_1 = require("../../doc/enums");
|
|
7
|
+
const rel_type_js_1 = require("../../xlsx/rel-type");
|
|
8
8
|
class HyperlinkReader extends events_1.EventEmitter {
|
|
9
9
|
constructor({ workbook, id, iterator, options }) {
|
|
10
10
|
super();
|
|
@@ -42,17 +42,17 @@ class HyperlinkReader extends events_1.EventEmitter {
|
|
|
42
42
|
return;
|
|
43
43
|
}
|
|
44
44
|
try {
|
|
45
|
-
for await (const events of (0,
|
|
45
|
+
for await (const events of (0, parse_sax_js_1.parseSax)(iterator)) {
|
|
46
46
|
for (const { eventType, value } of events) {
|
|
47
47
|
if (eventType === "opentag") {
|
|
48
48
|
const node = value;
|
|
49
49
|
if (node.name === "Relationship") {
|
|
50
50
|
const rId = node.attributes.Id;
|
|
51
51
|
switch (node.attributes.Type) {
|
|
52
|
-
case
|
|
52
|
+
case rel_type_js_1.RelType.Hyperlink:
|
|
53
53
|
{
|
|
54
54
|
const relationship = {
|
|
55
|
-
type:
|
|
55
|
+
type: enums_js_1.Enums.RelationshipType.Hyperlink,
|
|
56
56
|
rId,
|
|
57
57
|
target: node.attributes.Target,
|
|
58
58
|
targetMode: node.attributes.TargetMode
|