@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/csv/csv.base.js
DELETED
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* CSV Base class - Shared functionality for Node.js and Browser
|
|
4
|
-
*
|
|
5
|
-
* Uses native CSV parser (RFC 4180 compliant) with zero external dependencies.
|
|
6
|
-
* Date parsing uses dayjs for format flexibility.
|
|
7
|
-
*/
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.parseCsvStream = exports.formatCsv = exports.parseCsv = void 0;
|
|
13
|
-
exports.createDefaultValueMapper = createDefaultValueMapper;
|
|
14
|
-
exports.createDefaultWriteMapper = createDefaultWriteMapper;
|
|
15
|
-
exports.parseCsvToWorksheet = parseCsvToWorksheet;
|
|
16
|
-
exports.formatWorksheetToCsv = formatWorksheetToCsv;
|
|
17
|
-
const dayjs_1 = __importDefault(require("dayjs"));
|
|
18
|
-
const customParseFormat_js_1 = __importDefault(require("dayjs/plugin/customParseFormat.js"));
|
|
19
|
-
const utc_js_1 = __importDefault(require("dayjs/plugin/utc.js"));
|
|
20
|
-
const csv_core_1 = require("./csv-core");
|
|
21
|
-
// Initialize dayjs plugins
|
|
22
|
-
dayjs_1.default.extend(customParseFormat_js_1.default);
|
|
23
|
-
dayjs_1.default.extend(utc_js_1.default);
|
|
24
|
-
// Special Excel values mapping
|
|
25
|
-
const SpecialValues = {
|
|
26
|
-
true: true,
|
|
27
|
-
false: false,
|
|
28
|
-
"#N/A": { error: "#N/A" },
|
|
29
|
-
"#REF!": { error: "#REF!" },
|
|
30
|
-
"#NAME?": { error: "#NAME?" },
|
|
31
|
-
"#DIV/0!": { error: "#DIV/0!" },
|
|
32
|
-
"#NULL!": { error: "#NULL!" },
|
|
33
|
-
"#VALUE!": { error: "#VALUE!" },
|
|
34
|
-
"#NUM!": { error: "#NUM!" }
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* Create the default value mapper for CSV parsing
|
|
38
|
-
*/
|
|
39
|
-
function createDefaultValueMapper(dateFormats) {
|
|
40
|
-
return function mapValue(datum) {
|
|
41
|
-
if (datum === "") {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
// Try to parse as number
|
|
45
|
-
const datumNumber = Number(datum);
|
|
46
|
-
if (!Number.isNaN(datumNumber) && datumNumber !== Infinity) {
|
|
47
|
-
return datumNumber;
|
|
48
|
-
}
|
|
49
|
-
// Try to parse as date
|
|
50
|
-
const dt = dateFormats.reduce((matchingDate, currentDateFormat) => {
|
|
51
|
-
if (matchingDate) {
|
|
52
|
-
return matchingDate;
|
|
53
|
-
}
|
|
54
|
-
const dayjsObj = (0, dayjs_1.default)(datum, currentDateFormat, true);
|
|
55
|
-
if (dayjsObj.isValid()) {
|
|
56
|
-
return dayjsObj;
|
|
57
|
-
}
|
|
58
|
-
return null;
|
|
59
|
-
}, null);
|
|
60
|
-
if (dt) {
|
|
61
|
-
return new Date(dt.valueOf());
|
|
62
|
-
}
|
|
63
|
-
// Check for special values
|
|
64
|
-
const special = SpecialValues[datum];
|
|
65
|
-
if (special !== undefined) {
|
|
66
|
-
return special;
|
|
67
|
-
}
|
|
68
|
-
return datum;
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Create the default value mapper for CSV writing
|
|
73
|
-
*/
|
|
74
|
-
function createDefaultWriteMapper(dateFormat, dateUTC) {
|
|
75
|
-
return function mapValue(value) {
|
|
76
|
-
if (value) {
|
|
77
|
-
// Handle hyperlinks
|
|
78
|
-
if (value.text || value.hyperlink) {
|
|
79
|
-
return value.hyperlink || value.text || "";
|
|
80
|
-
}
|
|
81
|
-
// Handle formulas
|
|
82
|
-
if (value.formula || value.result) {
|
|
83
|
-
return value.result || "";
|
|
84
|
-
}
|
|
85
|
-
// Handle dates
|
|
86
|
-
if (value instanceof Date) {
|
|
87
|
-
if (dateFormat) {
|
|
88
|
-
return dateUTC ? dayjs_1.default.utc(value).format(dateFormat) : (0, dayjs_1.default)(value).format(dateFormat);
|
|
89
|
-
}
|
|
90
|
-
return dateUTC ? dayjs_1.default.utc(value).format() : (0, dayjs_1.default)(value).format();
|
|
91
|
-
}
|
|
92
|
-
// Handle errors
|
|
93
|
-
if (value.error) {
|
|
94
|
-
return value.error;
|
|
95
|
-
}
|
|
96
|
-
// Handle other objects
|
|
97
|
-
if (typeof value === "object") {
|
|
98
|
-
return JSON.stringify(value);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
return value;
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Parse CSV content into a worksheet
|
|
106
|
-
*/
|
|
107
|
-
function parseCsvToWorksheet(content, workbook, options = {}) {
|
|
108
|
-
const worksheet = workbook.addWorksheet(options.sheetName);
|
|
109
|
-
const dateFormats = options.dateFormats || [
|
|
110
|
-
"YYYY-MM-DD[T]HH:mm:ssZ",
|
|
111
|
-
"YYYY-MM-DD[T]HH:mm:ss",
|
|
112
|
-
"MM-DD-YYYY",
|
|
113
|
-
"YYYY-MM-DD"
|
|
114
|
-
];
|
|
115
|
-
const map = options.map || createDefaultValueMapper(dateFormats);
|
|
116
|
-
// Parse CSV
|
|
117
|
-
const rows = (0, csv_core_1.parseCsv)(content, options.parserOptions);
|
|
118
|
-
// Add rows to worksheet
|
|
119
|
-
for (const row of rows) {
|
|
120
|
-
worksheet.addRow(row.map(map));
|
|
121
|
-
}
|
|
122
|
-
return worksheet;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Format worksheet as CSV string
|
|
126
|
-
*/
|
|
127
|
-
function formatWorksheetToCsv(worksheet, options = {}) {
|
|
128
|
-
if (!worksheet) {
|
|
129
|
-
return "";
|
|
130
|
-
}
|
|
131
|
-
const { dateFormat, dateUTC } = options;
|
|
132
|
-
const map = options.map || createDefaultWriteMapper(dateFormat, dateUTC);
|
|
133
|
-
const includeEmptyRows = options.includeEmptyRows !== false;
|
|
134
|
-
const rows = [];
|
|
135
|
-
let lastRow = 1;
|
|
136
|
-
worksheet.eachRow((row, rowNumber) => {
|
|
137
|
-
// Add empty rows if needed
|
|
138
|
-
if (includeEmptyRows) {
|
|
139
|
-
while (lastRow++ < rowNumber - 1) {
|
|
140
|
-
rows.push([]);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
const { values } = row;
|
|
144
|
-
values.shift(); // Remove first empty element (1-indexed)
|
|
145
|
-
rows.push(values.map(map));
|
|
146
|
-
lastRow = rowNumber;
|
|
147
|
-
});
|
|
148
|
-
return (0, csv_core_1.formatCsv)(rows, options.formatterOptions);
|
|
149
|
-
}
|
|
150
|
-
// Re-export core types
|
|
151
|
-
var csv_core_2 = require("./csv-core");
|
|
152
|
-
Object.defineProperty(exports, "parseCsv", { enumerable: true, get: function () { return csv_core_2.parseCsv; } });
|
|
153
|
-
Object.defineProperty(exports, "formatCsv", { enumerable: true, get: function () { return csv_core_2.formatCsv; } });
|
|
154
|
-
Object.defineProperty(exports, "parseCsvStream", { enumerable: true, get: function () { return csv_core_2.parseCsvStream; } });
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* CSV class for Browser - No file system dependencies
|
|
4
|
-
*
|
|
5
|
-
* Provides:
|
|
6
|
-
* - load: Load from string or ArrayBuffer
|
|
7
|
-
* - writeString: Write to string
|
|
8
|
-
* - writeBuffer: Write to Uint8Array
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.CSV = void 0;
|
|
12
|
-
const csv_base_1 = require("./csv.base");
|
|
13
|
-
class CSV {
|
|
14
|
-
constructor(workbook) {
|
|
15
|
-
this.workbook = workbook;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Load CSV from string or ArrayBuffer
|
|
19
|
-
*/
|
|
20
|
-
load(data, options) {
|
|
21
|
-
let content;
|
|
22
|
-
if (typeof data === "string") {
|
|
23
|
-
content = data;
|
|
24
|
-
}
|
|
25
|
-
else if (data instanceof ArrayBuffer) {
|
|
26
|
-
content = new TextDecoder("utf-8").decode(data);
|
|
27
|
-
}
|
|
28
|
-
else if (data instanceof Uint8Array) {
|
|
29
|
-
content = new TextDecoder("utf-8").decode(data);
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
throw new Error("Invalid data type. Expected string, ArrayBuffer, or Uint8Array.");
|
|
33
|
-
}
|
|
34
|
-
return (0, csv_base_1.parseCsvToWorksheet)(content, this.workbook, options);
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Write CSV to string
|
|
38
|
-
*/
|
|
39
|
-
writeString(options) {
|
|
40
|
-
const worksheet = this.workbook.getWorksheet(options?.sheetName || options?.sheetId);
|
|
41
|
-
return (0, csv_base_1.formatWorksheetToCsv)(worksheet, options);
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Write CSV to Uint8Array buffer
|
|
45
|
-
*/
|
|
46
|
-
writeBuffer(options) {
|
|
47
|
-
const content = this.writeString(options);
|
|
48
|
-
return new TextEncoder().encode(content);
|
|
49
|
-
}
|
|
50
|
-
// Stubs for unsupported methods - throw helpful errors
|
|
51
|
-
async readFile(_filename, _options) {
|
|
52
|
-
throw new Error("CSV.readFile() is not available in browser. " +
|
|
53
|
-
"Use CSV.load() with string or ArrayBuffer instead.");
|
|
54
|
-
}
|
|
55
|
-
async read(_stream, _options) {
|
|
56
|
-
throw new Error("CSV.read() stream is not available in browser. " +
|
|
57
|
-
"Use CSV.load() with string or ArrayBuffer instead.");
|
|
58
|
-
}
|
|
59
|
-
async writeFile(_filename, _options) {
|
|
60
|
-
throw new Error("CSV.writeFile() is not available in browser. " +
|
|
61
|
-
"Use CSV.writeString() or CSV.writeBuffer() and handle download manually.");
|
|
62
|
-
}
|
|
63
|
-
write(_stream, _options) {
|
|
64
|
-
throw new Error("CSV.write() stream is not available in browser. " +
|
|
65
|
-
"Use CSV.writeString() or CSV.writeBuffer() instead.");
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
exports.CSV = CSV;
|
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* WorkbookBase - Platform-independent base class for Workbook
|
|
4
|
-
*
|
|
5
|
-
* This file contains all the shared logic between Node.js and Browser versions.
|
|
6
|
-
* Platform-specific features (xlsx, csv, streaming) are added by subclasses.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.WorkbookBase = void 0;
|
|
10
|
-
const worksheet_1 = require("./worksheet");
|
|
11
|
-
const defined_names_1 = require("./defined-names");
|
|
12
|
-
// =============================================================================
|
|
13
|
-
// WorkbookBase Class
|
|
14
|
-
// =============================================================================
|
|
15
|
-
/**
|
|
16
|
-
* Base class for Workbook containing all platform-independent functionality.
|
|
17
|
-
*
|
|
18
|
-
* Subclasses add:
|
|
19
|
-
* - Node.js: xlsx (full), csv, streaming (createStreamWriter/Reader)
|
|
20
|
-
* - Browser: xlsx (buffer only), no csv, no streaming
|
|
21
|
-
*/
|
|
22
|
-
class WorkbookBase {
|
|
23
|
-
constructor() {
|
|
24
|
-
this.category = "";
|
|
25
|
-
this.company = "";
|
|
26
|
-
this.created = new Date();
|
|
27
|
-
this.description = "";
|
|
28
|
-
this.keywords = "";
|
|
29
|
-
this.manager = "";
|
|
30
|
-
this.modified = this.created;
|
|
31
|
-
this.properties = {};
|
|
32
|
-
this.calcProperties = {};
|
|
33
|
-
this._worksheets = [];
|
|
34
|
-
this.subject = "";
|
|
35
|
-
this.title = "";
|
|
36
|
-
this.views = [];
|
|
37
|
-
this.media = [];
|
|
38
|
-
this.pivotTables = [];
|
|
39
|
-
this._definedNames = new defined_names_1.DefinedNames();
|
|
40
|
-
}
|
|
41
|
-
// ===========================================================================
|
|
42
|
-
// Worksheet Management
|
|
43
|
-
// ===========================================================================
|
|
44
|
-
get nextId() {
|
|
45
|
-
// Find the next unique spot to add worksheet
|
|
46
|
-
for (let i = 1; i < this._worksheets.length; i++) {
|
|
47
|
-
if (!this._worksheets[i]) {
|
|
48
|
-
return i;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return this._worksheets.length || 1;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Add a new worksheet and return a reference to it
|
|
55
|
-
*/
|
|
56
|
-
addWorksheet(name, options) {
|
|
57
|
-
const id = this.nextId;
|
|
58
|
-
const lastOrderNo = this._worksheets.reduce((acc, ws) => ((ws && ws.orderNo) > acc ? ws.orderNo : acc), 0);
|
|
59
|
-
const worksheetOptions = {
|
|
60
|
-
...options,
|
|
61
|
-
id,
|
|
62
|
-
name,
|
|
63
|
-
orderNo: lastOrderNo + 1,
|
|
64
|
-
workbook: this
|
|
65
|
-
};
|
|
66
|
-
const worksheet = new worksheet_1.Worksheet(worksheetOptions);
|
|
67
|
-
this._worksheets[id] = worksheet;
|
|
68
|
-
return worksheet;
|
|
69
|
-
}
|
|
70
|
-
removeWorksheetEx(worksheet) {
|
|
71
|
-
delete this._worksheets[worksheet.id];
|
|
72
|
-
}
|
|
73
|
-
removeWorksheet(id) {
|
|
74
|
-
const worksheet = this.getWorksheet(id);
|
|
75
|
-
if (worksheet) {
|
|
76
|
-
worksheet.destroy();
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Fetch sheet by name or id
|
|
81
|
-
*/
|
|
82
|
-
getWorksheet(id) {
|
|
83
|
-
if (id === undefined) {
|
|
84
|
-
return this._worksheets.find(Boolean);
|
|
85
|
-
}
|
|
86
|
-
if (typeof id === "number") {
|
|
87
|
-
return this._worksheets[id];
|
|
88
|
-
}
|
|
89
|
-
if (typeof id === "string") {
|
|
90
|
-
return this._worksheets.find(worksheet => worksheet && worksheet.name === id);
|
|
91
|
-
}
|
|
92
|
-
return undefined;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Return a clone of worksheets in order
|
|
96
|
-
*/
|
|
97
|
-
get worksheets() {
|
|
98
|
-
return this._worksheets
|
|
99
|
-
.slice(1)
|
|
100
|
-
.sort((a, b) => a.orderNo - b.orderNo)
|
|
101
|
-
.filter(Boolean);
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Iterate over all sheets.
|
|
105
|
-
*
|
|
106
|
-
* Note: `workbook.worksheets.forEach` will still work but this is better.
|
|
107
|
-
*/
|
|
108
|
-
eachSheet(callback) {
|
|
109
|
-
this.worksheets.forEach(sheet => {
|
|
110
|
-
callback(sheet, sheet.id);
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
// ===========================================================================
|
|
114
|
-
// Defined Names
|
|
115
|
-
// ===========================================================================
|
|
116
|
-
get definedNames() {
|
|
117
|
-
return this._definedNames;
|
|
118
|
-
}
|
|
119
|
-
// ===========================================================================
|
|
120
|
-
// Themes
|
|
121
|
-
// ===========================================================================
|
|
122
|
-
clearThemes() {
|
|
123
|
-
// Note: themes are not an exposed feature, meddle at your peril!
|
|
124
|
-
this._themes = undefined;
|
|
125
|
-
}
|
|
126
|
-
// ===========================================================================
|
|
127
|
-
// Images
|
|
128
|
-
// ===========================================================================
|
|
129
|
-
/**
|
|
130
|
-
* Add Image to Workbook and return the id
|
|
131
|
-
*/
|
|
132
|
-
addImage(image) {
|
|
133
|
-
const id = this.media.length;
|
|
134
|
-
this.media.push({ ...image, type: "image" });
|
|
135
|
-
return id;
|
|
136
|
-
}
|
|
137
|
-
getImage(id) {
|
|
138
|
-
return this.media[Number(id)];
|
|
139
|
-
}
|
|
140
|
-
// ===========================================================================
|
|
141
|
-
// Model (Serialization)
|
|
142
|
-
// ===========================================================================
|
|
143
|
-
get model() {
|
|
144
|
-
return {
|
|
145
|
-
creator: this.creator || "Unknown",
|
|
146
|
-
lastModifiedBy: this.lastModifiedBy || "Unknown",
|
|
147
|
-
lastPrinted: this.lastPrinted,
|
|
148
|
-
created: this.created,
|
|
149
|
-
modified: this.modified,
|
|
150
|
-
properties: this.properties,
|
|
151
|
-
worksheets: this.worksheets.map(worksheet => worksheet.model),
|
|
152
|
-
sheets: this.worksheets.map(ws => ws.model).filter(Boolean),
|
|
153
|
-
definedNames: this._definedNames.model,
|
|
154
|
-
views: this.views,
|
|
155
|
-
company: this.company,
|
|
156
|
-
manager: this.manager,
|
|
157
|
-
title: this.title,
|
|
158
|
-
subject: this.subject,
|
|
159
|
-
keywords: this.keywords,
|
|
160
|
-
category: this.category,
|
|
161
|
-
description: this.description,
|
|
162
|
-
language: this.language,
|
|
163
|
-
revision: this.revision,
|
|
164
|
-
contentStatus: this.contentStatus,
|
|
165
|
-
themes: this._themes,
|
|
166
|
-
media: this.media,
|
|
167
|
-
pivotTables: this.pivotTables,
|
|
168
|
-
calcProperties: this.calcProperties
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
set model(value) {
|
|
172
|
-
this.creator = value.creator;
|
|
173
|
-
this.lastModifiedBy = value.lastModifiedBy;
|
|
174
|
-
this.lastPrinted = value.lastPrinted;
|
|
175
|
-
this.created = value.created;
|
|
176
|
-
this.modified = value.modified;
|
|
177
|
-
this.company = value.company;
|
|
178
|
-
this.manager = value.manager;
|
|
179
|
-
this.title = value.title;
|
|
180
|
-
this.subject = value.subject;
|
|
181
|
-
this.keywords = value.keywords;
|
|
182
|
-
this.category = value.category;
|
|
183
|
-
this.description = value.description;
|
|
184
|
-
this.language = value.language;
|
|
185
|
-
this.revision = value.revision;
|
|
186
|
-
this.contentStatus = value.contentStatus;
|
|
187
|
-
this.properties = value.properties;
|
|
188
|
-
this.calcProperties = value.calcProperties;
|
|
189
|
-
this._worksheets = [];
|
|
190
|
-
value.worksheets.forEach(worksheetModel => {
|
|
191
|
-
const { id, name, state } = worksheetModel;
|
|
192
|
-
const orderNo = value.sheets && value.sheets.findIndex(ws => ws.id === id);
|
|
193
|
-
const worksheet = (this._worksheets[id] = new worksheet_1.Worksheet({
|
|
194
|
-
id,
|
|
195
|
-
name,
|
|
196
|
-
orderNo: orderNo !== -1 ? orderNo : undefined,
|
|
197
|
-
state,
|
|
198
|
-
workbook: this
|
|
199
|
-
}));
|
|
200
|
-
worksheet.model = worksheetModel;
|
|
201
|
-
});
|
|
202
|
-
this._definedNames.model = value.definedNames;
|
|
203
|
-
this.views = value.views;
|
|
204
|
-
this._themes = value.themes;
|
|
205
|
-
this.media = value.media || [];
|
|
206
|
-
// Handle pivot tables - either newly created or loaded from file
|
|
207
|
-
// Loaded pivot tables come from loadedPivotTables after reconciliation
|
|
208
|
-
this.pivotTables = value.pivotTables || value.loadedPivotTables || [];
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
exports.WorkbookBase = WorkbookBase;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Workbook Browser version - No Node.js dependencies
|
|
4
|
-
*
|
|
5
|
-
* Extends WorkbookBase with:
|
|
6
|
-
* - xlsx: Buffer-based operations (load, writeBuffer)
|
|
7
|
-
* - csv: Buffer-based operations (load, writeString, writeBuffer)
|
|
8
|
-
* - streaming: NOT supported (throws error)
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.Workbook = void 0;
|
|
12
|
-
const workbook_base_1 = require("./workbook.base");
|
|
13
|
-
const xlsx_browser_1 = require("../xlsx/xlsx.browser");
|
|
14
|
-
const csv_browser_1 = require("../csv/csv.browser");
|
|
15
|
-
class Workbook extends workbook_base_1.WorkbookBase {
|
|
16
|
-
/**
|
|
17
|
-
* xlsx file format operations
|
|
18
|
-
* Supports: load (buffer), writeBuffer
|
|
19
|
-
* NOT supported: readFile, writeFile, read (stream), write (stream)
|
|
20
|
-
*/
|
|
21
|
-
get xlsx() {
|
|
22
|
-
if (!this._xlsx) {
|
|
23
|
-
this._xlsx = new xlsx_browser_1.XLSX(this);
|
|
24
|
-
}
|
|
25
|
-
return this._xlsx;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* CSV file format operations
|
|
29
|
-
* Supports: load (string/buffer), writeString, writeBuffer
|
|
30
|
-
* NOT supported: readFile, writeFile, read (stream), write (stream)
|
|
31
|
-
*/
|
|
32
|
-
get csv() {
|
|
33
|
-
if (!this._csv) {
|
|
34
|
-
this._csv = new csv_browser_1.CSV(this);
|
|
35
|
-
}
|
|
36
|
-
return this._csv;
|
|
37
|
-
}
|
|
38
|
-
// ===========================================================================
|
|
39
|
-
// Static Factory Methods - NOT available in browser
|
|
40
|
-
// TypeScript users: These methods don't exist on this type
|
|
41
|
-
// JavaScript users: These methods throw helpful errors
|
|
42
|
-
// ===========================================================================
|
|
43
|
-
/**
|
|
44
|
-
* @deprecated Streaming is not available in browser
|
|
45
|
-
* @throws Error with helpful message
|
|
46
|
-
*/
|
|
47
|
-
static createStreamWriter(_options) {
|
|
48
|
-
throw new Error("Streaming workbook writer is not available in browser. " +
|
|
49
|
-
"Use `new Workbook()` with `xlsx.writeBuffer()` instead, " +
|
|
50
|
-
"or import from 'excelts' (Node.js) for streaming support.");
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* @deprecated Streaming is not available in browser
|
|
54
|
-
* @throws Error with helpful message
|
|
55
|
-
*/
|
|
56
|
-
static createStreamReader(_input, _options) {
|
|
57
|
-
throw new Error("Streaming workbook reader is not available in browser. " +
|
|
58
|
-
"Use `new Workbook()` with `xlsx.load()` instead, " +
|
|
59
|
-
"or import from 'excelts' (Node.js) for streaming support.");
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
exports.Workbook = Workbook;
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Browser-compatible Buffer utilities
|
|
4
|
-
* Provides base64 encoding/decoding and a Buffer-like wrapper for Uint8Array
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.BrowserBuffer = void 0;
|
|
8
|
-
exports.uint8ArrayToBase64 = uint8ArrayToBase64;
|
|
9
|
-
exports.base64ToUint8Array = base64ToUint8Array;
|
|
10
|
-
exports.stringToUtf16Le = stringToUtf16Le;
|
|
11
|
-
exports.concatUint8Arrays = concatUint8Arrays;
|
|
12
|
-
/**
|
|
13
|
-
* Convert Uint8Array to base64 string
|
|
14
|
-
*/
|
|
15
|
-
function uint8ArrayToBase64(bytes) {
|
|
16
|
-
let binary = "";
|
|
17
|
-
for (let i = 0; i < bytes.length; i++) {
|
|
18
|
-
binary += String.fromCharCode(bytes[i]);
|
|
19
|
-
}
|
|
20
|
-
return btoa(binary);
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Convert base64 string to Uint8Array
|
|
24
|
-
*/
|
|
25
|
-
function base64ToUint8Array(base64) {
|
|
26
|
-
const binaryString = atob(base64);
|
|
27
|
-
const bytes = new Uint8Array(binaryString.length);
|
|
28
|
-
for (let i = 0; i < binaryString.length; i++) {
|
|
29
|
-
bytes[i] = binaryString.charCodeAt(i);
|
|
30
|
-
}
|
|
31
|
-
return bytes;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Buffer-like wrapper for Uint8Array with toString("base64") support
|
|
35
|
-
* This provides Node.js Buffer-like API for browser environments
|
|
36
|
-
*/
|
|
37
|
-
class BrowserBuffer extends Uint8Array {
|
|
38
|
-
toString(encoding) {
|
|
39
|
-
if (encoding === "base64") {
|
|
40
|
-
return uint8ArrayToBase64(this);
|
|
41
|
-
}
|
|
42
|
-
return new TextDecoder().decode(this);
|
|
43
|
-
}
|
|
44
|
-
static from(data) {
|
|
45
|
-
const buffer = new BrowserBuffer(data.length);
|
|
46
|
-
buffer.set(data);
|
|
47
|
-
return buffer;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
exports.BrowserBuffer = BrowserBuffer;
|
|
51
|
-
/**
|
|
52
|
-
* Convert string to UTF-16LE Uint8Array (used for Excel password hashing)
|
|
53
|
-
*/
|
|
54
|
-
function stringToUtf16Le(str) {
|
|
55
|
-
const bytes = new Uint8Array(str.length * 2);
|
|
56
|
-
for (let i = 0; i < str.length; i++) {
|
|
57
|
-
const code = str.charCodeAt(i);
|
|
58
|
-
bytes[i * 2] = code & 0xff;
|
|
59
|
-
bytes[i * 2 + 1] = (code >> 8) & 0xff;
|
|
60
|
-
}
|
|
61
|
-
return bytes;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Concatenate multiple Uint8Arrays into one
|
|
65
|
-
*/
|
|
66
|
-
function concatUint8Arrays(...arrays) {
|
|
67
|
-
const totalLength = arrays.reduce((acc, arr) => acc + arr.length, 0);
|
|
68
|
-
const result = new Uint8Array(totalLength);
|
|
69
|
-
let offset = 0;
|
|
70
|
-
for (const arr of arrays) {
|
|
71
|
-
result.set(arr, offset);
|
|
72
|
-
offset += arr.length;
|
|
73
|
-
}
|
|
74
|
-
return result;
|
|
75
|
-
}
|