@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
|
@@ -1,60 +1,60 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.WorksheetWriter = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const xmlBuffer = new
|
|
4
|
+
const rel_type_js_1 = require("../../xlsx/rel-type");
|
|
5
|
+
const col_cache_js_1 = require("../../utils/col-cache");
|
|
6
|
+
const encryptor_js_1 = require("../../utils/encryptor");
|
|
7
|
+
const range_js_1 = require("../../doc/range");
|
|
8
|
+
const string_buf_js_1 = require("../../utils/string-buf");
|
|
9
|
+
const row_js_1 = require("../../doc/row");
|
|
10
|
+
const column_js_1 = require("../../doc/column");
|
|
11
|
+
const sheet_rels_writer_js_1 = require("./sheet-rels-writer");
|
|
12
|
+
const sheet_comments_writer_js_1 = require("./sheet-comments-writer");
|
|
13
|
+
const data_validations_js_1 = require("../../doc/data-validations");
|
|
14
|
+
const xmlBuffer = new string_buf_js_1.StringBuf();
|
|
15
15
|
// ============================================================================================
|
|
16
16
|
// Xforms
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
const
|
|
32
|
-
const
|
|
17
|
+
const list_xform_js_1 = require("../../xlsx/xform/list-xform");
|
|
18
|
+
const data_validations_xform_js_1 = require("../../xlsx/xform/sheet/data-validations-xform");
|
|
19
|
+
const sheet_properties_xform_js_1 = require("../../xlsx/xform/sheet/sheet-properties-xform");
|
|
20
|
+
const sheet_format_properties_xform_js_1 = require("../../xlsx/xform/sheet/sheet-format-properties-xform");
|
|
21
|
+
const col_xform_js_1 = require("../../xlsx/xform/sheet/col-xform");
|
|
22
|
+
const row_xform_js_1 = require("../../xlsx/xform/sheet/row-xform");
|
|
23
|
+
const hyperlink_xform_js_1 = require("../../xlsx/xform/sheet/hyperlink-xform");
|
|
24
|
+
const sheet_view_xform_js_1 = require("../../xlsx/xform/sheet/sheet-view-xform");
|
|
25
|
+
const sheet_protection_xform_js_1 = require("../../xlsx/xform/sheet/sheet-protection-xform");
|
|
26
|
+
const page_margins_xform_js_1 = require("../../xlsx/xform/sheet/page-margins-xform");
|
|
27
|
+
const page_setup_xform_js_1 = require("../../xlsx/xform/sheet/page-setup-xform");
|
|
28
|
+
const auto_filter_xform_js_1 = require("../../xlsx/xform/sheet/auto-filter-xform");
|
|
29
|
+
const picture_xform_js_1 = require("../../xlsx/xform/sheet/picture-xform");
|
|
30
|
+
const conditional_formattings_xform_js_1 = require("../../xlsx/xform/sheet/cf/conditional-formattings-xform");
|
|
31
|
+
const header_footer_xform_js_1 = require("../../xlsx/xform/sheet/header-footer-xform");
|
|
32
|
+
const row_breaks_xform_js_1 = require("../../xlsx/xform/sheet/row-breaks-xform");
|
|
33
33
|
// since prepare and render are functional, we can use singletons
|
|
34
34
|
const xform = {
|
|
35
|
-
dataValidations: new
|
|
36
|
-
sheetProperties: new
|
|
37
|
-
sheetFormatProperties: new
|
|
38
|
-
columns: new
|
|
39
|
-
row: new
|
|
40
|
-
hyperlinks: new
|
|
35
|
+
dataValidations: new data_validations_xform_js_1.DataValidationsXform(),
|
|
36
|
+
sheetProperties: new sheet_properties_xform_js_1.SheetPropertiesXform(),
|
|
37
|
+
sheetFormatProperties: new sheet_format_properties_xform_js_1.SheetFormatPropertiesXform(),
|
|
38
|
+
columns: new list_xform_js_1.ListXform({ tag: "cols", count: false, childXform: new col_xform_js_1.ColXform() }),
|
|
39
|
+
row: new row_xform_js_1.RowXform(),
|
|
40
|
+
hyperlinks: new list_xform_js_1.ListXform({
|
|
41
41
|
tag: "hyperlinks",
|
|
42
42
|
count: false,
|
|
43
|
-
childXform: new
|
|
43
|
+
childXform: new hyperlink_xform_js_1.HyperlinkXform()
|
|
44
44
|
}),
|
|
45
|
-
sheetViews: new
|
|
45
|
+
sheetViews: new list_xform_js_1.ListXform({
|
|
46
46
|
tag: "sheetViews",
|
|
47
47
|
count: false,
|
|
48
|
-
childXform: new
|
|
48
|
+
childXform: new sheet_view_xform_js_1.SheetViewXform()
|
|
49
49
|
}),
|
|
50
|
-
sheetProtection: new
|
|
51
|
-
pageMargins: new
|
|
52
|
-
pageSeteup: new
|
|
53
|
-
autoFilter: new
|
|
54
|
-
picture: new
|
|
55
|
-
conditionalFormattings: new
|
|
56
|
-
headerFooter: new
|
|
57
|
-
rowBreaks: new
|
|
50
|
+
sheetProtection: new sheet_protection_xform_js_1.SheetProtectionXform(),
|
|
51
|
+
pageMargins: new page_margins_xform_js_1.PageMarginsXform(),
|
|
52
|
+
pageSeteup: new page_setup_xform_js_1.PageSetupXform(),
|
|
53
|
+
autoFilter: new auto_filter_xform_js_1.AutoFilterXform(),
|
|
54
|
+
picture: new picture_xform_js_1.PictureXform(),
|
|
55
|
+
conditionalFormattings: new conditional_formattings_xform_js_1.ConditionalFormattingsXform(),
|
|
56
|
+
headerFooter: new header_footer_xform_js_1.HeaderFooterXform(),
|
|
57
|
+
rowBreaks: new row_breaks_xform_js_1.RowBreaksXform()
|
|
58
58
|
};
|
|
59
59
|
class WorksheetWriter {
|
|
60
60
|
constructor(options) {
|
|
@@ -75,16 +75,16 @@ class WorksheetWriter {
|
|
|
75
75
|
this._merges = [];
|
|
76
76
|
this._merges.add = function () { }; // ignore cell instruction
|
|
77
77
|
// keep record of all hyperlinks
|
|
78
|
-
this._sheetRelsWriter = new
|
|
79
|
-
this._sheetCommentsWriter = new
|
|
78
|
+
this._sheetRelsWriter = new sheet_rels_writer_js_1.SheetRelsWriter(options);
|
|
79
|
+
this._sheetCommentsWriter = new sheet_comments_writer_js_1.SheetCommentsWriter(this, this._sheetRelsWriter, options);
|
|
80
80
|
// keep a record of dimensions
|
|
81
|
-
this._dimensions = new
|
|
81
|
+
this._dimensions = new range_js_1.Dimensions();
|
|
82
82
|
// first uncommitted row
|
|
83
83
|
this._rowZero = 1;
|
|
84
84
|
// committed flag
|
|
85
85
|
this.committed = false;
|
|
86
86
|
// for data validations
|
|
87
|
-
this.dataValidations = new
|
|
87
|
+
this.dataValidations = new data_validations_js_1.DataValidations();
|
|
88
88
|
// for sharing formulae
|
|
89
89
|
this._formulae = {};
|
|
90
90
|
this._siFormulae = 0;
|
|
@@ -231,7 +231,7 @@ class WorksheetWriter {
|
|
|
231
231
|
let count = 1;
|
|
232
232
|
const columns = (this._columns = []);
|
|
233
233
|
value.forEach(defn => {
|
|
234
|
-
const column = new
|
|
234
|
+
const column = new column_js_1.Column(this, count++, false);
|
|
235
235
|
columns.push(column);
|
|
236
236
|
column.defn = defn;
|
|
237
237
|
});
|
|
@@ -258,7 +258,7 @@ class WorksheetWriter {
|
|
|
258
258
|
return col;
|
|
259
259
|
}
|
|
260
260
|
// otherwise, assume letter
|
|
261
|
-
c =
|
|
261
|
+
c = col_cache_js_1.colCache.l2n(c);
|
|
262
262
|
}
|
|
263
263
|
if (!this._columns) {
|
|
264
264
|
this._columns = [];
|
|
@@ -266,7 +266,7 @@ class WorksheetWriter {
|
|
|
266
266
|
if (c > this._columns.length) {
|
|
267
267
|
let n = this._columns.length + 1;
|
|
268
268
|
while (n <= c) {
|
|
269
|
-
this._columns.push(new
|
|
269
|
+
this._columns.push(new column_js_1.Column(this, n++));
|
|
270
270
|
}
|
|
271
271
|
}
|
|
272
272
|
return this._columns[c - 1];
|
|
@@ -335,12 +335,12 @@ class WorksheetWriter {
|
|
|
335
335
|
}
|
|
336
336
|
let row = this._rows[index];
|
|
337
337
|
if (!row) {
|
|
338
|
-
this._rows[index] = row = new
|
|
338
|
+
this._rows[index] = row = new row_js_1.Row(this, rowNumber);
|
|
339
339
|
}
|
|
340
340
|
return row;
|
|
341
341
|
}
|
|
342
342
|
addRow(value) {
|
|
343
|
-
const row = new
|
|
343
|
+
const row = new row_js_1.Row(this, this._nextRow);
|
|
344
344
|
this._rows[row.number - this._rowZero] = row;
|
|
345
345
|
row.values = value;
|
|
346
346
|
return row;
|
|
@@ -349,19 +349,19 @@ class WorksheetWriter {
|
|
|
349
349
|
// Cells
|
|
350
350
|
// returns the cell at [r,c] or address given by r. If not found, return undefined
|
|
351
351
|
findCell(r, c) {
|
|
352
|
-
const address =
|
|
352
|
+
const address = col_cache_js_1.colCache.getAddress(r, c);
|
|
353
353
|
const row = this.findRow(address.row);
|
|
354
354
|
return row ? row.findCell(address.column) : undefined;
|
|
355
355
|
}
|
|
356
356
|
// return the cell at [r,c] or address given by r. If not found, create a new one.
|
|
357
357
|
getCell(r, c) {
|
|
358
|
-
const address =
|
|
358
|
+
const address = col_cache_js_1.colCache.getAddress(r, c);
|
|
359
359
|
const row = this.getRow(address.row);
|
|
360
360
|
return row.getCellEx(address);
|
|
361
361
|
}
|
|
362
362
|
mergeCells(...cells) {
|
|
363
363
|
// may fail if rows have been comitted
|
|
364
|
-
const dimensions = new
|
|
364
|
+
const dimensions = new range_js_1.Dimensions(cells);
|
|
365
365
|
// check cells aren't already merged
|
|
366
366
|
this._merges.forEach(merge => {
|
|
367
367
|
if (merge.intersects(dimensions)) {
|
|
@@ -422,10 +422,10 @@ class WorksheetWriter {
|
|
|
422
422
|
}
|
|
423
423
|
if (password) {
|
|
424
424
|
this.sheetProtection.algorithmName = "SHA-512";
|
|
425
|
-
this.sheetProtection.saltValue =
|
|
425
|
+
this.sheetProtection.saltValue = encryptor_js_1.Encryptor.randomBytes(16).toString("base64");
|
|
426
426
|
this.sheetProtection.spinCount =
|
|
427
427
|
options && "spinCount" in options ? options.spinCount : 100000; // allow user specified spinCount
|
|
428
|
-
this.sheetProtection.hashValue =
|
|
428
|
+
this.sheetProtection.hashValue = encryptor_js_1.Encryptor.convertPasswordToHash(password, "SHA512", this.sheetProtection.saltValue, this.sheetProtection.spinCount);
|
|
429
429
|
}
|
|
430
430
|
if (options) {
|
|
431
431
|
this.sheetProtection = Object.assign(this.sheetProtection, options);
|
|
@@ -485,7 +485,7 @@ class WorksheetWriter {
|
|
|
485
485
|
this.stream.write(xmlBuffer);
|
|
486
486
|
}
|
|
487
487
|
_writeColumns() {
|
|
488
|
-
const cols =
|
|
488
|
+
const cols = column_js_1.Column.toModel(this.columns);
|
|
489
489
|
if (cols) {
|
|
490
490
|
xform.columns.prepare(cols, { styles: this._workbook.styles });
|
|
491
491
|
this.stream.write(xform.columns.toXml(cols));
|
|
@@ -570,7 +570,7 @@ class WorksheetWriter {
|
|
|
570
570
|
const image = this._workbook.getImage(this._background.imageId);
|
|
571
571
|
const pictureId = this._sheetRelsWriter.addMedia({
|
|
572
572
|
Target: `../media/${image.name}`,
|
|
573
|
-
Type:
|
|
573
|
+
Type: rel_type_js_1.RelType.Image
|
|
574
574
|
});
|
|
575
575
|
this._background = {
|
|
576
576
|
...this._background,
|
|
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
exports.cellFormat = void 0;
|
|
11
11
|
exports.getFormat = getFormat;
|
|
12
12
|
exports.format = format;
|
|
13
|
-
const
|
|
13
|
+
const utils_js_1 = require("./utils");
|
|
14
14
|
// =============================================================================
|
|
15
15
|
// Built-in Format Table (Excel numFmtId to format string mapping)
|
|
16
16
|
// =============================================================================
|
|
@@ -228,7 +228,7 @@ function formatDate(serial, fmt) {
|
|
|
228
228
|
const minutes = Math.floor((timeOfDay % 3600) / 60);
|
|
229
229
|
const seconds = timeOfDay % 60;
|
|
230
230
|
// For date components, use excelToDate but only for date parts
|
|
231
|
-
const date = (0,
|
|
231
|
+
const date = (0, utils_js_1.excelToDate)(serial, false);
|
|
232
232
|
const year = date.getUTCFullYear();
|
|
233
233
|
const month = date.getUTCMonth(); // 0-indexed
|
|
234
234
|
const day = date.getUTCDate();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CellMatrix = void 0;
|
|
4
|
-
const
|
|
4
|
+
const col_cache_js_1 = require("./col-cache");
|
|
5
5
|
// Helper to check for prototype pollution
|
|
6
6
|
function isSafeKey(key) {
|
|
7
7
|
if (typeof key === "number") {
|
|
@@ -31,13 +31,13 @@ class CellMatrix {
|
|
|
31
31
|
this.sheets = {};
|
|
32
32
|
}
|
|
33
33
|
addCell(addressStr) {
|
|
34
|
-
this.addCellEx(
|
|
34
|
+
this.addCellEx(col_cache_js_1.colCache.decodeEx(addressStr));
|
|
35
35
|
}
|
|
36
36
|
getCell(addressStr) {
|
|
37
|
-
return this.findCellEx(
|
|
37
|
+
return this.findCellEx(col_cache_js_1.colCache.decodeEx(addressStr), true);
|
|
38
38
|
}
|
|
39
39
|
findCell(addressStr) {
|
|
40
|
-
return this.findCellEx(
|
|
40
|
+
return this.findCellEx(col_cache_js_1.colCache.decodeEx(addressStr), false);
|
|
41
41
|
}
|
|
42
42
|
findCellAt(sheetName, rowNumber, colNumber) {
|
|
43
43
|
const sheet = this.sheets[sheetName];
|
|
@@ -73,7 +73,7 @@ class CellMatrix {
|
|
|
73
73
|
const cell = row[colNumber] ||
|
|
74
74
|
(row[colNumber] = {
|
|
75
75
|
sheetName,
|
|
76
|
-
address:
|
|
76
|
+
address: col_cache_js_1.colCache.n2l(colNumber) + rowNumber,
|
|
77
77
|
row: rowNumber,
|
|
78
78
|
col: colNumber
|
|
79
79
|
});
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseSax = parseSax;
|
|
4
4
|
const saxes_1 = require("saxes");
|
|
5
|
-
const
|
|
5
|
+
const utils_js_1 = require("./utils");
|
|
6
6
|
async function* parseSax(iterable) {
|
|
7
7
|
const saxesParser = new saxes_1.SaxesParser({
|
|
8
8
|
xmlns: false,
|
|
@@ -17,7 +17,7 @@ async function* parseSax(iterable) {
|
|
|
17
17
|
saxesParser.on("text", (value) => events.push({ eventType: "text", value }));
|
|
18
18
|
saxesParser.on("closetag", (value) => events.push({ eventType: "closetag", value }));
|
|
19
19
|
for await (const chunk of iterable) {
|
|
20
|
-
saxesParser.write((0,
|
|
20
|
+
saxesParser.write((0, utils_js_1.bufferToString)(chunk));
|
|
21
21
|
// saxesParser.write and saxesParser.on() are synchronous,
|
|
22
22
|
// so we can only reach the below line once all events have been emitted
|
|
23
23
|
if (error) {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.slideFormula = slideFormula;
|
|
4
|
-
const
|
|
4
|
+
const col_cache_js_1 = require("./col-cache");
|
|
5
5
|
// const cellRefRegex = /(([a-z_\-0-9]*)!)?[$]?([a-z]+)[$]?([1-9][0-9]*)/i;
|
|
6
6
|
const replacementCandidateRx = /(([a-z_\-0-9]*)!)?([a-z0-9_$]{2,})([(])?/gi;
|
|
7
7
|
const CRrx = /^([$])?([a-z]+)([$])?([1-9][0-9]*)$/i;
|
|
8
8
|
function slideFormula(formula, fromCell, toCell) {
|
|
9
|
-
const offset =
|
|
10
|
-
const to =
|
|
9
|
+
const offset = col_cache_js_1.colCache.decode(fromCell);
|
|
10
|
+
const to = col_cache_js_1.colCache.decode(toCell);
|
|
11
11
|
return formula.replace(replacementCandidateRx, (refMatch, sheet, sheetMaybe, addrPart, trailingParen) => {
|
|
12
12
|
if (trailingParen) {
|
|
13
13
|
return refMatch;
|
|
@@ -22,7 +22,7 @@ function slideFormula(formula, fromCell, toCell) {
|
|
|
22
22
|
// > XFD is the highest col number in excel 2007 and beyond, so this is a named range
|
|
23
23
|
return refMatch;
|
|
24
24
|
}
|
|
25
|
-
let col =
|
|
25
|
+
let col = col_cache_js_1.colCache.l2n(colStr);
|
|
26
26
|
let row = parseInt(rowStr, 10);
|
|
27
27
|
if (!colDollar) {
|
|
28
28
|
col += to.col - offset.col;
|
|
@@ -30,7 +30,7 @@ function slideFormula(formula, fromCell, toCell) {
|
|
|
30
30
|
if (!rowDollar) {
|
|
31
31
|
row += to.row - offset.row;
|
|
32
32
|
}
|
|
33
|
-
const res = (sheet || "") + (colDollar || "") +
|
|
33
|
+
const res = (sheet || "") + (colDollar || "") + col_cache_js_1.colCache.n2l(col) + (rowDollar || "") + row;
|
|
34
34
|
return res;
|
|
35
35
|
}
|
|
36
36
|
return refMatch;
|
|
@@ -22,9 +22,9 @@ exports.bookAppendSheet = bookAppendSheet;
|
|
|
22
22
|
exports.aoaToSheet = aoaToSheet;
|
|
23
23
|
exports.sheetAddAoa = sheetAddAoa;
|
|
24
24
|
exports.sheetToAoa = sheetToAoa;
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const
|
|
25
|
+
const workbook_js_1 = require("../doc/workbook");
|
|
26
|
+
const col_cache_js_1 = require("./col-cache");
|
|
27
|
+
const cell_format_js_1 = require("./cell-format");
|
|
28
28
|
/**
|
|
29
29
|
* Convert a Date object back to Excel serial number without timezone issues.
|
|
30
30
|
* This reverses the excelToDate conversion exactly.
|
|
@@ -113,15 +113,15 @@ function formatValue(value, fmt, dateFormat) {
|
|
|
113
113
|
if (serial < 0) {
|
|
114
114
|
serial += 1;
|
|
115
115
|
}
|
|
116
|
-
return (0,
|
|
116
|
+
return (0, cell_format_js_1.format)(fmt, serial);
|
|
117
117
|
}
|
|
118
118
|
// Only apply dateFormat override to actual date formats
|
|
119
119
|
// (not elapsed time formats like [h]:mm:ss)
|
|
120
120
|
const actualFmt = dateFormat && isDateFormat(fmt) ? dateFormat : fmt;
|
|
121
|
-
return (0,
|
|
121
|
+
return (0, cell_format_js_1.format)(actualFmt, serial);
|
|
122
122
|
}
|
|
123
123
|
// Number/Boolean/String - let cellFormat handle it
|
|
124
|
-
return (0,
|
|
124
|
+
return (0, cell_format_js_1.format)(fmt, value);
|
|
125
125
|
}
|
|
126
126
|
/**
|
|
127
127
|
* Get formatted display text for a cell value
|
|
@@ -170,14 +170,14 @@ function getCellDisplayText(cell, dateFormat) {
|
|
|
170
170
|
* @example decodeCol("A") => 0, decodeCol("Z") => 25, decodeCol("AA") => 26
|
|
171
171
|
*/
|
|
172
172
|
function decodeCol(colstr) {
|
|
173
|
-
return
|
|
173
|
+
return col_cache_js_1.colCache.l2n(colstr.toUpperCase()) - 1;
|
|
174
174
|
}
|
|
175
175
|
/**
|
|
176
176
|
* Encode 0-indexed column number to string
|
|
177
177
|
* @example encodeCol(0) => "A", encodeCol(25) => "Z", encodeCol(26) => "AA"
|
|
178
178
|
*/
|
|
179
179
|
function encodeCol(col) {
|
|
180
|
-
return
|
|
180
|
+
return col_cache_js_1.colCache.n2l(col + 1);
|
|
181
181
|
}
|
|
182
182
|
/**
|
|
183
183
|
* Decode row string to 0-indexed number
|
|
@@ -198,7 +198,7 @@ function encodeRow(row) {
|
|
|
198
198
|
* @example decodeCell("A1") => {c: 0, r: 0}, decodeCell("B2") => {c: 1, r: 1}
|
|
199
199
|
*/
|
|
200
200
|
function decodeCell(cstr) {
|
|
201
|
-
const addr =
|
|
201
|
+
const addr = col_cache_js_1.colCache.decodeAddress(cstr.toUpperCase());
|
|
202
202
|
return { c: addr.col - 1, r: addr.row - 1 };
|
|
203
203
|
}
|
|
204
204
|
/**
|
|
@@ -206,7 +206,7 @@ function decodeCell(cstr) {
|
|
|
206
206
|
* @example encodeCell({c: 0, r: 0}) => "A1", encodeCell({c: 1, r: 1}) => "B2"
|
|
207
207
|
*/
|
|
208
208
|
function encodeCell(cell) {
|
|
209
|
-
return
|
|
209
|
+
return col_cache_js_1.colCache.encodeAddress(cell.r + 1, cell.c + 1);
|
|
210
210
|
}
|
|
211
211
|
/**
|
|
212
212
|
* Decode range string to Range object
|
|
@@ -241,7 +241,7 @@ function encodeRange(startOrRange, end) {
|
|
|
241
241
|
function jsonToSheet(data, opts) {
|
|
242
242
|
const o = opts || {};
|
|
243
243
|
// Create a temporary workbook to get a worksheet
|
|
244
|
-
const tempWb = new
|
|
244
|
+
const tempWb = new workbook_js_1.Workbook();
|
|
245
245
|
const worksheet = tempWb.addWorksheet("Sheet1");
|
|
246
246
|
if (data.length === 0) {
|
|
247
247
|
return worksheet;
|
|
@@ -573,7 +573,7 @@ function sheetToCsv(worksheet, opts) {
|
|
|
573
573
|
* Create a new workbook
|
|
574
574
|
*/
|
|
575
575
|
function bookNew() {
|
|
576
|
-
return new
|
|
576
|
+
return new workbook_js_1.Workbook();
|
|
577
577
|
}
|
|
578
578
|
/**
|
|
579
579
|
* Append worksheet to workbook (xlsx compatible)
|
|
@@ -610,7 +610,7 @@ function bookAppendSheet(workbook, worksheet, name) {
|
|
|
610
610
|
* const ws = aoaToSheet([["Name", "Age"], ["Alice", 30], ["Bob", 25]])
|
|
611
611
|
*/
|
|
612
612
|
function aoaToSheet(data, opts) {
|
|
613
|
-
const tempWb = new
|
|
613
|
+
const tempWb = new workbook_js_1.Workbook();
|
|
614
614
|
const worksheet = tempWb.addWorksheet("Sheet1");
|
|
615
615
|
if (data.length === 0) {
|
|
616
616
|
return worksheet;
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StreamBuf = void 0;
|
|
4
4
|
const stream_1 = require("stream");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
5
|
+
const utils_js_1 = require("./utils");
|
|
6
|
+
const string_buf_js_1 = require("./string-buf");
|
|
7
7
|
// =============================================================================
|
|
8
8
|
// data chunks - encapsulating incoming data
|
|
9
9
|
class StringChunk {
|
|
@@ -142,7 +142,7 @@ const StreamBuf = function (options) {
|
|
|
142
142
|
this.encoding = null;
|
|
143
143
|
};
|
|
144
144
|
exports.StreamBuf = StreamBuf;
|
|
145
|
-
(0,
|
|
145
|
+
(0, utils_js_1.inherits)(StreamBuf, stream_1.Duplex, {
|
|
146
146
|
toBuffer() {
|
|
147
147
|
switch (this.buffers.length) {
|
|
148
148
|
case 0:
|
|
@@ -195,11 +195,11 @@ exports.StreamBuf = StreamBuf;
|
|
|
195
195
|
callback = encoding;
|
|
196
196
|
encoding = "utf8";
|
|
197
197
|
}
|
|
198
|
-
callback = callback ||
|
|
198
|
+
callback = callback || utils_js_1.nop;
|
|
199
199
|
// encapsulate data into a chunk
|
|
200
200
|
let chunk;
|
|
201
201
|
// Use constructor name check for better ES6 module compatibility
|
|
202
|
-
if (data instanceof
|
|
202
|
+
if (data instanceof string_buf_js_1.StringBuf || (data && data.constructor?.name === "StringBuf")) {
|
|
203
203
|
chunk = new StringBufChunk(data);
|
|
204
204
|
}
|
|
205
205
|
else if (Buffer.isBuffer(data)) {
|
|
@@ -10,7 +10,7 @@ exports.extractAll = extractAll;
|
|
|
10
10
|
exports.extractFile = extractFile;
|
|
11
11
|
exports.listFiles = listFiles;
|
|
12
12
|
exports.forEachEntry = forEachEntry;
|
|
13
|
-
const
|
|
13
|
+
const zip_parser_js_1 = require("./zip-parser");
|
|
14
14
|
/**
|
|
15
15
|
* Extract all files from a ZIP buffer
|
|
16
16
|
*
|
|
@@ -19,7 +19,7 @@ const zip_parser_1 = require("./zip-parser");
|
|
|
19
19
|
*
|
|
20
20
|
* @example
|
|
21
21
|
* ```ts
|
|
22
|
-
* import { extractAll } from "./utils/unzip/extract";
|
|
22
|
+
* import { extractAll } from "./utils/unzip/extract.js";
|
|
23
23
|
*
|
|
24
24
|
* const zipData = fs.readFileSync("archive.zip");
|
|
25
25
|
* const files = await extractAll(zipData);
|
|
@@ -31,7 +31,7 @@ const zip_parser_1 = require("./zip-parser");
|
|
|
31
31
|
*/
|
|
32
32
|
async function extractAll(zipData) {
|
|
33
33
|
const files = new Map();
|
|
34
|
-
const parser = new
|
|
34
|
+
const parser = new zip_parser_js_1.ZipParser(zipData);
|
|
35
35
|
for (const entry of parser.getEntries()) {
|
|
36
36
|
const data = await parser.extract(entry.path);
|
|
37
37
|
files.set(entry.path, {
|
|
@@ -52,7 +52,7 @@ async function extractAll(zipData) {
|
|
|
52
52
|
*
|
|
53
53
|
* @example
|
|
54
54
|
* ```ts
|
|
55
|
-
* import { extractFile } from "./utils/unzip/extract";
|
|
55
|
+
* import { extractFile } from "./utils/unzip/extract.js";
|
|
56
56
|
*
|
|
57
57
|
* const zipData = fs.readFileSync("archive.zip");
|
|
58
58
|
* const content = await extractFile(zipData, "readme.txt");
|
|
@@ -62,7 +62,7 @@ async function extractAll(zipData) {
|
|
|
62
62
|
* ```
|
|
63
63
|
*/
|
|
64
64
|
async function extractFile(zipData, filePath) {
|
|
65
|
-
const parser = new
|
|
65
|
+
const parser = new zip_parser_js_1.ZipParser(zipData);
|
|
66
66
|
return parser.extract(filePath);
|
|
67
67
|
}
|
|
68
68
|
/**
|
|
@@ -73,7 +73,7 @@ async function extractFile(zipData, filePath) {
|
|
|
73
73
|
*
|
|
74
74
|
* @example
|
|
75
75
|
* ```ts
|
|
76
|
-
* import { listFiles } from "./utils/unzip/extract";
|
|
76
|
+
* import { listFiles } from "./utils/unzip/extract.js";
|
|
77
77
|
*
|
|
78
78
|
* const zipData = fs.readFileSync("archive.zip");
|
|
79
79
|
* const paths = await listFiles(zipData);
|
|
@@ -81,7 +81,7 @@ async function extractFile(zipData, filePath) {
|
|
|
81
81
|
* ```
|
|
82
82
|
*/
|
|
83
83
|
async function listFiles(zipData) {
|
|
84
|
-
const parser = new
|
|
84
|
+
const parser = new zip_parser_js_1.ZipParser(zipData);
|
|
85
85
|
return parser.listFiles();
|
|
86
86
|
}
|
|
87
87
|
/**
|
|
@@ -92,7 +92,7 @@ async function listFiles(zipData) {
|
|
|
92
92
|
*
|
|
93
93
|
* @example
|
|
94
94
|
* ```ts
|
|
95
|
-
* import { forEachEntry } from "./utils/unzip/extract";
|
|
95
|
+
* import { forEachEntry } from "./utils/unzip/extract.js";
|
|
96
96
|
*
|
|
97
97
|
* await forEachEntry(zipData, async (path, getData) => {
|
|
98
98
|
* if (path.endsWith(".xml")) {
|
|
@@ -104,11 +104,11 @@ async function listFiles(zipData) {
|
|
|
104
104
|
* ```
|
|
105
105
|
*/
|
|
106
106
|
async function forEachEntry(zipData, callback) {
|
|
107
|
-
const parser = new
|
|
107
|
+
const parser = new zip_parser_js_1.ZipParser(zipData);
|
|
108
108
|
await parser.forEach(async (entry, getData) => {
|
|
109
109
|
return callback(entry.path, getData, entry);
|
|
110
110
|
});
|
|
111
111
|
}
|
|
112
112
|
// Re-export ZipParser for advanced usage
|
|
113
|
-
var
|
|
114
|
-
Object.defineProperty(exports, "ZipParser", { enumerable: true, get: function () { return
|
|
113
|
+
var zip_parser_js_2 = require("./zip-parser");
|
|
114
|
+
Object.defineProperty(exports, "ZipParser", { enumerable: true, get: function () { return zip_parser_js_2.ZipParser; } });
|
|
@@ -21,25 +21,25 @@
|
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
22
|
exports.ZipParser = exports.forEachEntry = exports.listFiles = exports.extractFile = exports.extractAll = exports.parseExtraField = exports.parseDateTime = exports.parseBuffer = exports.bufferStream = exports.NoopStream = exports.PullStream = exports.createParse = exports.Parse = void 0;
|
|
23
23
|
// Stream-based API (Node.js only - requires stream module)
|
|
24
|
-
var
|
|
25
|
-
Object.defineProperty(exports, "Parse", { enumerable: true, get: function () { return
|
|
26
|
-
Object.defineProperty(exports, "createParse", { enumerable: true, get: function () { return
|
|
27
|
-
var
|
|
28
|
-
Object.defineProperty(exports, "PullStream", { enumerable: true, get: function () { return
|
|
29
|
-
var
|
|
30
|
-
Object.defineProperty(exports, "NoopStream", { enumerable: true, get: function () { return
|
|
31
|
-
var
|
|
32
|
-
Object.defineProperty(exports, "bufferStream", { enumerable: true, get: function () { return
|
|
33
|
-
var
|
|
34
|
-
Object.defineProperty(exports, "parseBuffer", { enumerable: true, get: function () { return
|
|
35
|
-
var
|
|
36
|
-
Object.defineProperty(exports, "parseDateTime", { enumerable: true, get: function () { return
|
|
37
|
-
var
|
|
38
|
-
Object.defineProperty(exports, "parseExtraField", { enumerable: true, get: function () { return
|
|
24
|
+
var parse_js_1 = require("./parse");
|
|
25
|
+
Object.defineProperty(exports, "Parse", { enumerable: true, get: function () { return parse_js_1.Parse; } });
|
|
26
|
+
Object.defineProperty(exports, "createParse", { enumerable: true, get: function () { return parse_js_1.createParse; } });
|
|
27
|
+
var pull_stream_js_1 = require("./pull-stream");
|
|
28
|
+
Object.defineProperty(exports, "PullStream", { enumerable: true, get: function () { return pull_stream_js_1.PullStream; } });
|
|
29
|
+
var noop_stream_js_1 = require("./noop-stream");
|
|
30
|
+
Object.defineProperty(exports, "NoopStream", { enumerable: true, get: function () { return noop_stream_js_1.NoopStream; } });
|
|
31
|
+
var buffer_stream_js_1 = require("./buffer-stream");
|
|
32
|
+
Object.defineProperty(exports, "bufferStream", { enumerable: true, get: function () { return buffer_stream_js_1.bufferStream; } });
|
|
33
|
+
var parse_buffer_js_1 = require("./parse-buffer");
|
|
34
|
+
Object.defineProperty(exports, "parseBuffer", { enumerable: true, get: function () { return parse_buffer_js_1.parse; } });
|
|
35
|
+
var parse_datetime_js_1 = require("./parse-datetime");
|
|
36
|
+
Object.defineProperty(exports, "parseDateTime", { enumerable: true, get: function () { return parse_datetime_js_1.parseDateTime; } });
|
|
37
|
+
var parse_extra_field_js_1 = require("./parse-extra-field");
|
|
38
|
+
Object.defineProperty(exports, "parseExtraField", { enumerable: true, get: function () { return parse_extra_field_js_1.parseExtraField; } });
|
|
39
39
|
// Buffer-based API (Browser + Node.js - cross-platform)
|
|
40
|
-
var
|
|
41
|
-
Object.defineProperty(exports, "extractAll", { enumerable: true, get: function () { return
|
|
42
|
-
Object.defineProperty(exports, "extractFile", { enumerable: true, get: function () { return
|
|
43
|
-
Object.defineProperty(exports, "listFiles", { enumerable: true, get: function () { return
|
|
44
|
-
Object.defineProperty(exports, "forEachEntry", { enumerable: true, get: function () { return
|
|
45
|
-
Object.defineProperty(exports, "ZipParser", { enumerable: true, get: function () { return
|
|
40
|
+
var extract_js_1 = require("./extract");
|
|
41
|
+
Object.defineProperty(exports, "extractAll", { enumerable: true, get: function () { return extract_js_1.extractAll; } });
|
|
42
|
+
Object.defineProperty(exports, "extractFile", { enumerable: true, get: function () { return extract_js_1.extractFile; } });
|
|
43
|
+
Object.defineProperty(exports, "listFiles", { enumerable: true, get: function () { return extract_js_1.listFiles; } });
|
|
44
|
+
Object.defineProperty(exports, "forEachEntry", { enumerable: true, get: function () { return extract_js_1.forEachEntry; } });
|
|
45
|
+
Object.defineProperty(exports, "ZipParser", { enumerable: true, get: function () { return extract_js_1.ZipParser; } });
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.parseExtraField = parseExtraField;
|
|
11
|
-
const
|
|
11
|
+
const parse_buffer_js_1 = require("./parse-buffer");
|
|
12
12
|
function parseExtraField(extraField, vars) {
|
|
13
13
|
let extra;
|
|
14
14
|
// Find the ZIP64 header, if present.
|
|
15
15
|
while (!extra && extraField && extraField.length) {
|
|
16
|
-
const candidateExtra = (0,
|
|
16
|
+
const candidateExtra = (0, parse_buffer_js_1.parse)(extraField, [
|
|
17
17
|
["signature", 2],
|
|
18
18
|
["partSize", 2]
|
|
19
19
|
]);
|
|
@@ -30,7 +30,7 @@ function parseExtraField(extraField, vars) {
|
|
|
30
30
|
fieldsToExpect.push(["offsetToLocalFileHeader", 8]);
|
|
31
31
|
}
|
|
32
32
|
// slice off the 4 bytes for signature and partSize
|
|
33
|
-
extra = (0,
|
|
33
|
+
extra = (0, parse_buffer_js_1.parse)(extraField.slice(4), fieldsToExpect);
|
|
34
34
|
}
|
|
35
35
|
else {
|
|
36
36
|
// Advance the buffer to the next part.
|