@cj-tech-master/excelts 1.6.3 → 2.0.0-canary.20251228024848.8822305
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 +139 -24
- package/README_zh.md +140 -26
- package/dist/browser/excelts.esm.js +18529 -0
- package/dist/browser/excelts.esm.js.map +1 -0
- package/dist/browser/excelts.esm.min.js +128 -0
- package/dist/browser/excelts.iife.js +12966 -46944
- package/dist/browser/excelts.iife.js.map +1 -1
- package/dist/browser/excelts.iife.min.js +36 -115
- package/dist/cjs/csv/csv-core.js +701 -0
- package/dist/cjs/csv/csv-stream.js +646 -0
- package/dist/cjs/csv/csv.base.js +137 -0
- package/dist/cjs/csv/csv.browser.js +68 -0
- package/dist/cjs/csv/csv.js +218 -162
- package/dist/cjs/doc/anchor.js +2 -2
- package/dist/cjs/doc/cell.js +22 -22
- package/dist/cjs/doc/column.js +28 -7
- package/dist/cjs/doc/data-validations.js +3 -3
- package/dist/cjs/doc/defined-names.js +13 -13
- package/dist/cjs/doc/image.js +7 -7
- package/dist/cjs/doc/modelcontainer.js +2 -2
- package/dist/cjs/doc/note.js +2 -2
- package/dist/cjs/doc/pivot-table.js +5 -5
- package/dist/cjs/doc/range.js +11 -11
- package/dist/cjs/doc/row.js +16 -16
- package/dist/cjs/doc/table.js +5 -5
- package/dist/cjs/doc/workbook.base.js +211 -0
- package/dist/cjs/doc/workbook.browser.js +62 -0
- package/dist/cjs/doc/workbook.js +68 -179
- package/dist/cjs/doc/worksheet.js +45 -41
- package/dist/cjs/index.js +49 -32
- package/dist/cjs/stream/xlsx/hyperlink-reader.js +6 -6
- package/dist/cjs/stream/xlsx/sheet-comments-writer.js +12 -12
- package/dist/cjs/stream/xlsx/sheet-rels-writer.js +4 -4
- package/dist/cjs/stream/xlsx/workbook-reader.js +22 -22
- package/dist/cjs/stream/xlsx/workbook-writer.js +38 -38
- package/dist/cjs/stream/xlsx/worksheet-reader.js +17 -17
- package/dist/cjs/stream/xlsx/worksheet-writer.js +67 -60
- package/dist/cjs/utils/browser-buffer.js +75 -0
- package/dist/cjs/utils/cell-format.js +2 -2
- package/dist/cjs/utils/cell-matrix.js +5 -5
- package/dist/cjs/utils/datetime.js +499 -0
- package/dist/cjs/utils/encryptor.browser.js +240 -0
- package/dist/cjs/utils/parse-sax.js +1191 -13
- package/dist/cjs/utils/shared-formula.js +5 -5
- package/dist/cjs/utils/sheet-utils.js +13 -13
- package/dist/cjs/utils/stream-buf.browser.js +355 -0
- package/dist/cjs/utils/stream-buf.js +5 -5
- package/dist/cjs/utils/unzip/extract.js +11 -11
- package/dist/cjs/utils/unzip/index.js +21 -21
- package/dist/cjs/utils/unzip/parse-extra-field.js +3 -3
- package/dist/cjs/utils/unzip/parse.js +16 -16
- package/dist/cjs/utils/unzip/zip-parser.js +14 -3
- package/dist/cjs/utils/utils.base.js +161 -0
- package/dist/cjs/utils/utils.browser.js +89 -0
- package/dist/cjs/utils/utils.js +46 -154
- package/dist/cjs/utils/xml-stream.js +3 -3
- package/dist/cjs/utils/zip/compress.base.js +88 -0
- package/dist/cjs/utils/zip/compress.browser.js +127 -0
- package/dist/cjs/utils/zip/compress.js +18 -198
- package/dist/cjs/utils/zip/crc32.browser.js +88 -0
- package/dist/cjs/utils/zip/deflate-fallback.js +575 -0
- package/dist/cjs/utils/zip/index.js +17 -17
- package/dist/cjs/utils/zip/streaming-zip.js +264 -0
- package/dist/cjs/utils/zip/zip-builder.js +10 -10
- package/dist/cjs/utils/zip-stream.browser.js +135 -0
- package/dist/cjs/utils/zip-stream.js +4 -4
- package/dist/cjs/xlsx/xform/base-xform.js +4 -4
- package/dist/cjs/xlsx/xform/book/defined-name-xform.js +4 -4
- package/dist/cjs/xlsx/xform/book/sheet-xform.js +4 -4
- package/dist/cjs/xlsx/xform/book/workbook-calc-properties-xform.js +2 -2
- package/dist/cjs/xlsx/xform/book/workbook-pivot-cache-xform.js +2 -2
- package/dist/cjs/xlsx/xform/book/workbook-properties-xform.js +2 -2
- package/dist/cjs/xlsx/xform/book/workbook-view-xform.js +2 -2
- package/dist/cjs/xlsx/xform/book/workbook-xform.js +24 -24
- package/dist/cjs/xlsx/xform/comment/comment-xform.js +4 -4
- package/dist/cjs/xlsx/xform/comment/comments-xform.js +6 -6
- package/dist/cjs/xlsx/xform/comment/style/vml-position-xform.js +2 -2
- package/dist/cjs/xlsx/xform/comment/style/vml-protection-xform.js +2 -2
- package/dist/cjs/xlsx/xform/comment/vml-anchor-xform.js +2 -2
- package/dist/cjs/xlsx/xform/comment/vml-client-data-xform.js +10 -10
- package/dist/cjs/xlsx/xform/comment/vml-notes-xform.js +6 -6
- package/dist/cjs/xlsx/xform/comment/vml-shape-xform.js +6 -6
- package/dist/cjs/xlsx/xform/comment/vml-textbox-xform.js +2 -2
- package/dist/cjs/xlsx/xform/composite-xform.js +2 -2
- package/dist/cjs/xlsx/xform/core/app-heading-pairs-xform.js +2 -2
- package/dist/cjs/xlsx/xform/core/app-titles-of-parts-xform.js +2 -2
- package/dist/cjs/xlsx/xform/core/app-xform.js +11 -11
- package/dist/cjs/xlsx/xform/core/content-types-xform.js +4 -4
- package/dist/cjs/xlsx/xform/core/core-xform.js +23 -23
- package/dist/cjs/xlsx/xform/core/relationship-xform.js +2 -2
- package/dist/cjs/xlsx/xform/core/relationships-xform.js +6 -6
- package/dist/cjs/xlsx/xform/drawing/base-cell-anchor-xform.js +2 -2
- package/dist/cjs/xlsx/xform/drawing/blip-fill-xform.js +4 -4
- package/dist/cjs/xlsx/xform/drawing/blip-xform.js +2 -2
- package/dist/cjs/xlsx/xform/drawing/c-nv-pic-pr-xform.js +2 -2
- package/dist/cjs/xlsx/xform/drawing/c-nv-pr-xform.js +6 -6
- package/dist/cjs/xlsx/xform/drawing/cell-position-xform.js +7 -7
- package/dist/cjs/xlsx/xform/drawing/drawing-xform.js +10 -10
- package/dist/cjs/xlsx/xform/drawing/ext-lst-xform.js +2 -2
- package/dist/cjs/xlsx/xform/drawing/ext-xform.js +2 -2
- package/dist/cjs/xlsx/xform/drawing/hlink-click-xform.js +2 -2
- package/dist/cjs/xlsx/xform/drawing/nv-pic-pr-xform.js +6 -6
- package/dist/cjs/xlsx/xform/drawing/one-cell-anchor-xform.js +10 -10
- package/dist/cjs/xlsx/xform/drawing/pic-xform.js +9 -9
- package/dist/cjs/xlsx/xform/drawing/two-cell-anchor-xform.js +9 -9
- package/dist/cjs/xlsx/xform/list-xform.js +2 -2
- package/dist/cjs/xlsx/xform/pivot-table/cache-field-xform.js +5 -5
- package/dist/cjs/xlsx/xform/pivot-table/cache-field.js +3 -3
- package/dist/cjs/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +13 -11
- 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 +101 -17
- package/dist/cjs/xlsx/xform/sheet/auto-filter-xform.js +4 -4
- package/dist/cjs/xlsx/xform/sheet/cell-xform.js +65 -65
- package/dist/cjs/xlsx/xform/sheet/cf/cf-rule-xform.js +27 -27
- package/dist/cjs/xlsx/xform/sheet/cf/cfvo-xform.js +3 -3
- package/dist/cjs/xlsx/xform/sheet/cf/color-scale-xform.js +6 -6
- package/dist/cjs/xlsx/xform/sheet/cf/conditional-formatting-xform.js +6 -6
- package/dist/cjs/xlsx/xform/sheet/cf/conditional-formattings-xform.js +4 -4
- package/dist/cjs/xlsx/xform/sheet/cf/databar-xform.js +6 -6
- package/dist/cjs/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +5 -5
- package/dist/cjs/xlsx/xform/sheet/cf/formula-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/cf/icon-set-xform.js +11 -11
- package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +3 -3
- package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +11 -12
- package/dist/cjs/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +4 -4
- package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +8 -8
- package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +6 -6
- package/dist/cjs/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +26 -26
- package/dist/cjs/xlsx/xform/sheet/cf-ext/f-ext-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +14 -14
- package/dist/cjs/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +2 -2
- package/dist/cjs/xlsx/xform/sheet/col-breaks-xform.js +38 -0
- 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 +15 -3
- 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 +15 -17
- 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 +75 -70
- package/dist/cjs/xlsx/xform/simple/boolean-xform.js +2 -2
- package/dist/cjs/xlsx/xform/simple/date-xform.js +2 -2
- package/dist/cjs/xlsx/xform/simple/float-xform.js +2 -2
- package/dist/cjs/xlsx/xform/simple/integer-xform.js +2 -2
- package/dist/cjs/xlsx/xform/simple/string-xform.js +2 -2
- package/dist/cjs/xlsx/xform/static-xform.js +4 -4
- package/dist/cjs/xlsx/xform/strings/phonetic-text-xform.js +6 -6
- package/dist/cjs/xlsx/xform/strings/rich-text-xform.js +6 -6
- package/dist/cjs/xlsx/xform/strings/shared-string-xform.js +8 -8
- package/dist/cjs/xlsx/xform/strings/shared-strings-xform.js +6 -6
- package/dist/cjs/xlsx/xform/strings/text-xform.js +2 -2
- package/dist/cjs/xlsx/xform/style/alignment-xform.js +8 -8
- package/dist/cjs/xlsx/xform/style/border-xform.js +8 -8
- package/dist/cjs/xlsx/xform/style/color-xform.js +2 -2
- package/dist/cjs/xlsx/xform/style/dxf-xform.js +14 -14
- package/dist/cjs/xlsx/xform/style/fill-xform.js +9 -9
- package/dist/cjs/xlsx/xform/style/font-xform.js +22 -22
- package/dist/cjs/xlsx/xform/style/numfmt-xform.js +5 -5
- package/dist/cjs/xlsx/xform/style/protection-xform.js +2 -2
- package/dist/cjs/xlsx/xform/style/style-xform.js +6 -6
- package/dist/cjs/xlsx/xform/style/styles-xform.js +39 -39
- package/dist/cjs/xlsx/xform/style/underline-xform.js +2 -2
- package/dist/cjs/xlsx/xform/table/auto-filter-xform.js +4 -4
- package/dist/cjs/xlsx/xform/table/custom-filter-xform.js +2 -2
- package/dist/cjs/xlsx/xform/table/filter-column-xform.js +9 -9
- package/dist/cjs/xlsx/xform/table/filter-xform.js +2 -2
- package/dist/cjs/xlsx/xform/table/table-column-xform.js +2 -2
- package/dist/cjs/xlsx/xform/table/table-style-info-xform.js +2 -2
- package/dist/cjs/xlsx/xform/table/table-xform.js +12 -12
- package/dist/cjs/xlsx/xlsx.base.js +742 -0
- package/dist/cjs/xlsx/xlsx.browser.js +162 -0
- package/dist/cjs/xlsx/xlsx.js +118 -892
- package/dist/esm/csv/csv-core.js +694 -0
- package/dist/esm/csv/csv-stream.js +638 -0
- package/dist/esm/csv/csv.base.js +127 -0
- package/dist/esm/csv/csv.browser.js +65 -0
- package/dist/esm/csv/csv.js +181 -159
- package/dist/esm/doc/column.js +21 -0
- package/dist/esm/doc/workbook.base.js +207 -0
- package/dist/esm/doc/workbook.browser.js +59 -0
- package/dist/esm/doc/workbook.js +64 -175
- package/dist/esm/doc/worksheet.js +4 -0
- package/dist/esm/index.browser.js +33 -1
- package/dist/esm/index.js +23 -8
- package/dist/esm/local.js +0 -1
- package/dist/esm/stream/xlsx/workbook-writer.js +1 -1
- package/dist/esm/stream/xlsx/worksheet-writer.js +8 -1
- package/dist/esm/utils/browser-buffer.js +67 -0
- package/dist/esm/utils/datetime.js +493 -0
- package/dist/esm/utils/encryptor.browser.js +237 -0
- package/dist/esm/utils/parse-sax.js +1188 -12
- package/dist/esm/utils/stream-buf.browser.js +352 -0
- package/dist/esm/utils/unzip/zip-parser.js +11 -0
- package/dist/esm/utils/utils.base.js +142 -0
- package/dist/esm/utils/utils.browser.js +68 -0
- package/dist/esm/utils/utils.js +15 -123
- package/dist/esm/utils/zip/compress.base.js +83 -0
- package/dist/esm/utils/zip/compress.browser.js +121 -0
- package/dist/esm/utils/zip/compress.js +16 -164
- package/dist/esm/utils/zip/crc32.browser.js +82 -0
- package/dist/esm/utils/zip/deflate-fallback.js +570 -0
- package/dist/esm/utils/zip/streaming-zip.js +259 -0
- package/dist/esm/utils/zip-stream.browser.js +132 -0
- package/dist/esm/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +3 -1
- package/dist/esm/xlsx/xform/pivot-table/pivot-table-xform.js +93 -9
- package/dist/esm/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +2 -3
- package/dist/esm/xlsx/xform/sheet/col-breaks-xform.js +35 -0
- package/dist/esm/xlsx/xform/sheet/page-breaks-xform.js +13 -1
- package/dist/esm/xlsx/xform/sheet/row-breaks-xform.js +11 -13
- package/dist/esm/xlsx/xform/sheet/worksheet-xform.js +7 -2
- package/dist/esm/xlsx/xlsx.base.js +739 -0
- package/dist/esm/xlsx/xlsx.browser.js +159 -0
- package/dist/esm/xlsx/xlsx.js +114 -888
- package/dist/types/csv/csv-core.d.ts +201 -0
- package/dist/types/csv/csv-stream.d.ts +114 -0
- package/dist/types/csv/csv.base.d.ts +62 -0
- package/dist/types/csv/csv.browser.d.ts +33 -0
- package/dist/types/csv/csv.d.ts +97 -71
- package/dist/types/doc/anchor.d.ts +1 -1
- package/dist/types/doc/cell.d.ts +7 -7
- package/dist/types/doc/column.d.ts +9 -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.base.d.ts +111 -0
- package/dist/types/doc/workbook.browser.d.ts +38 -0
- package/dist/types/doc/workbook.d.ts +62 -92
- package/dist/types/doc/worksheet.d.ts +12 -10
- package/dist/types/index.browser.d.ts +19 -5
- package/dist/types/index.d.ts +24 -23
- package/dist/types/local.d.ts +0 -1
- package/dist/types/stream/xlsx/hyperlink-reader.d.ts +1 -1
- package/dist/types/stream/xlsx/workbook-reader.d.ts +5 -5
- package/dist/types/stream/xlsx/workbook-writer.d.ts +7 -7
- package/dist/types/stream/xlsx/worksheet-reader.d.ts +6 -6
- package/dist/types/stream/xlsx/worksheet-writer.d.ts +11 -9
- package/dist/types/types.d.ts +6 -0
- package/dist/types/utils/browser-buffer.d.ts +28 -0
- package/dist/types/utils/col-cache.d.ts +1 -1
- package/dist/types/utils/datetime.d.ts +56 -0
- package/dist/types/utils/encryptor.browser.d.ts +28 -0
- package/dist/types/utils/parse-sax.d.ts +108 -1
- package/dist/types/utils/sheet-utils.d.ts +3 -3
- package/dist/types/utils/stream-buf.browser.d.ts +41 -0
- package/dist/types/utils/unzip/extract.d.ts +6 -6
- package/dist/types/utils/unzip/index.d.ts +8 -8
- package/dist/types/utils/unzip/parse.d.ts +3 -3
- package/dist/types/utils/unzip/zip-parser.d.ts +5 -0
- package/dist/types/utils/utils.base.d.ts +29 -0
- package/dist/types/utils/utils.browser.d.ts +29 -0
- package/dist/types/utils/utils.d.ts +6 -25
- package/dist/types/utils/zip/compress.base.d.ts +45 -0
- package/dist/types/utils/zip/compress.browser.d.ts +63 -0
- package/dist/types/utils/zip/compress.d.ts +13 -45
- package/dist/types/utils/zip/crc32.browser.d.ts +52 -0
- package/dist/types/utils/zip/deflate-fallback.d.ts +39 -0
- package/dist/types/utils/zip/index.d.ts +5 -5
- package/dist/types/utils/zip/streaming-zip.d.ts +96 -0
- package/dist/types/utils/zip/zip-builder.d.ts +1 -1
- package/dist/types/utils/zip-stream.browser.d.ts +39 -0
- package/dist/types/xlsx/xform/base-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/book/defined-name-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/book/sheet-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/book/workbook-calc-properties-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/book/workbook-pivot-cache-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/book/workbook-properties-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/book/workbook-view-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/book/workbook-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/comment/comment-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/comment/comments-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/comment/style/vml-position-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/comment/style/vml-protection-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/comment/vml-anchor-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/comment/vml-client-data-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/comment/vml-notes-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/comment/vml-shape-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/comment/vml-textbox-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/composite-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/core/app-heading-pairs-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/core/app-titles-of-parts-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/core/app-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/core/content-types-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/core/core-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/core/relationship-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/core/relationships-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/base-cell-anchor-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/blip-fill-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/drawing/blip-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/c-nv-pic-pr-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/c-nv-pr-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/cell-position-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/drawing/drawing-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/ext-lst-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/ext-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/hlink-click-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/nv-pic-pr-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/pic-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/list-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/pivot-table/cache-field-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +3 -3
- package/dist/types/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/pivot-table/pivot-table-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/auto-filter-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/cell-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/cf/cf-rule-xform.d.ts +6 -6
- package/dist/types/xlsx/xform/sheet/cf/cfvo-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/cf/color-scale-xform.d.ts +3 -3
- package/dist/types/xlsx/xform/sheet/cf/conditional-formatting-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/cf/conditional-formattings-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/sheet/cf/databar-xform.d.ts +3 -3
- package/dist/types/xlsx/xform/sheet/cf/ext-lst-ref-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/cf/formula-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/cf/icon-set-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.d.ts +3 -3
- package/dist/types/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.d.ts +3 -3
- package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/sheet/cf-ext/databar-ext-xform.d.ts +3 -3
- package/dist/types/xlsx/xform/sheet/cf-ext/f-ext-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.d.ts +3 -3
- package/dist/types/xlsx/xform/sheet/cf-ext/sqref-ext-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/col-breaks-xform.d.ts +16 -0
- 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 +5 -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 +5 -1
- package/dist/types/xlsx/xform/sheet/row-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/sheet-format-properties-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/sheet-properties-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/sheet-protection-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/sheet-view-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/table-part-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/sheet/worksheet-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/simple/boolean-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/simple/date-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/simple/float-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/simple/integer-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/simple/string-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/static-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/strings/phonetic-text-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/strings/rich-text-xform.d.ts +3 -3
- package/dist/types/xlsx/xform/strings/shared-string-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/strings/shared-strings-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/strings/text-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/style/alignment-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/style/border-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/style/color-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/style/dxf-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/style/fill-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/style/font-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/style/numfmt-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/style/protection-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/style/style-xform.d.ts +3 -3
- package/dist/types/xlsx/xform/style/styles-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/style/underline-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/table/auto-filter-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/table/custom-filter-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/table/filter-column-xform.d.ts +2 -2
- package/dist/types/xlsx/xform/table/filter-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/table/table-column-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/table/table-style-info-xform.d.ts +1 -1
- package/dist/types/xlsx/xform/table/table-xform.d.ts +1 -1
- package/dist/types/xlsx/xlsx.base.d.ts +134 -0
- package/dist/types/xlsx/xlsx.browser.d.ts +31 -0
- package/dist/types/xlsx/xlsx.d.ts +20 -80
- package/package.json +16 -39
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ExtLstXform = void 0;
|
|
4
|
-
const
|
|
5
|
-
class ExtLstXform extends
|
|
4
|
+
const base_xform_1 = require("../base-xform");
|
|
5
|
+
class ExtLstXform extends base_xform_1.BaseXform {
|
|
6
6
|
get tag() {
|
|
7
7
|
return "a:extLst";
|
|
8
8
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ExtXform = void 0;
|
|
4
|
-
const
|
|
4
|
+
const base_xform_1 = require("../base-xform");
|
|
5
5
|
/** https://en.wikipedia.org/wiki/Office_Open_XML_file_formats#DrawingML */
|
|
6
6
|
const EMU_PER_PIXEL_AT_96_DPI = 9525;
|
|
7
|
-
class ExtXform extends
|
|
7
|
+
class ExtXform extends base_xform_1.BaseXform {
|
|
8
8
|
constructor(options) {
|
|
9
9
|
super();
|
|
10
10
|
this.tag = options.tag;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.HLinkClickXform = void 0;
|
|
4
|
-
const
|
|
5
|
-
class HLinkClickXform extends
|
|
4
|
+
const base_xform_1 = require("../base-xform");
|
|
5
|
+
class HLinkClickXform extends base_xform_1.BaseXform {
|
|
6
6
|
constructor() {
|
|
7
7
|
super();
|
|
8
8
|
this.model = {};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NvPicPrXform = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
class NvPicPrXform extends
|
|
4
|
+
const base_xform_1 = require("../base-xform");
|
|
5
|
+
const c_nv_pr_xform_1 = require("./c-nv-pr-xform");
|
|
6
|
+
const c_nv_pic_pr_xform_1 = require("./c-nv-pic-pr-xform");
|
|
7
|
+
class NvPicPrXform extends base_xform_1.BaseXform {
|
|
8
8
|
constructor() {
|
|
9
9
|
super();
|
|
10
10
|
this.map = {
|
|
11
|
-
"xdr:cNvPr": new
|
|
12
|
-
"xdr:cNvPicPr": new
|
|
11
|
+
"xdr:cNvPr": new c_nv_pr_xform_1.CNvPrXform(),
|
|
12
|
+
"xdr:cNvPicPr": new c_nv_pic_pr_xform_1.CNvPicPrXform()
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
15
|
get tag() {
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.OneCellAnchorXform = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
class OneCellAnchorXform extends
|
|
4
|
+
const base_cell_anchor_xform_1 = require("./base-cell-anchor-xform");
|
|
5
|
+
const static_xform_1 = require("../static-xform");
|
|
6
|
+
const cell_position_xform_1 = require("./cell-position-xform");
|
|
7
|
+
const ext_xform_1 = require("./ext-xform");
|
|
8
|
+
const pic_xform_1 = require("./pic-xform");
|
|
9
|
+
class OneCellAnchorXform extends base_cell_anchor_xform_1.BaseCellAnchorXform {
|
|
10
10
|
constructor() {
|
|
11
11
|
super();
|
|
12
12
|
this.map = {
|
|
13
|
-
"xdr:from": new
|
|
14
|
-
"xdr:ext": new
|
|
15
|
-
"xdr:pic": new
|
|
16
|
-
"xdr:clientData": new
|
|
13
|
+
"xdr:from": new cell_position_xform_1.CellPositionXform({ tag: "xdr:from" }),
|
|
14
|
+
"xdr:ext": new ext_xform_1.ExtXform({ tag: "xdr:ext" }),
|
|
15
|
+
"xdr:pic": new pic_xform_1.PicXform(),
|
|
16
|
+
"xdr:clientData": new static_xform_1.StaticXform({ tag: "xdr:clientData" })
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
get tag() {
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PicXform = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
class PicXform extends
|
|
4
|
+
const base_xform_1 = require("../base-xform");
|
|
5
|
+
const static_xform_1 = require("../static-xform");
|
|
6
|
+
const blip_fill_xform_1 = require("./blip-fill-xform");
|
|
7
|
+
const nv_pic_pr_xform_1 = require("./nv-pic-pr-xform");
|
|
8
|
+
const sp_pr_1 = require("./sp-pr");
|
|
9
|
+
class PicXform extends base_xform_1.BaseXform {
|
|
10
10
|
constructor() {
|
|
11
11
|
super();
|
|
12
12
|
this.map = {
|
|
13
|
-
"xdr:nvPicPr": new
|
|
14
|
-
"xdr:blipFill": new
|
|
15
|
-
"xdr:spPr": new
|
|
13
|
+
"xdr:nvPicPr": new nv_pic_pr_xform_1.NvPicPrXform(),
|
|
14
|
+
"xdr:blipFill": new blip_fill_xform_1.BlipFillXform(),
|
|
15
|
+
"xdr:spPr": new static_xform_1.StaticXform(sp_pr_1.spPrJSON)
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
get tag() {
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TwoCellAnchorXform = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
class TwoCellAnchorXform extends
|
|
4
|
+
const base_cell_anchor_xform_1 = require("./base-cell-anchor-xform");
|
|
5
|
+
const static_xform_1 = require("../static-xform");
|
|
6
|
+
const cell_position_xform_1 = require("./cell-position-xform");
|
|
7
|
+
const pic_xform_1 = require("./pic-xform");
|
|
8
|
+
class TwoCellAnchorXform extends base_cell_anchor_xform_1.BaseCellAnchorXform {
|
|
9
9
|
constructor() {
|
|
10
10
|
super();
|
|
11
11
|
this.map = {
|
|
12
|
-
"xdr:from": new
|
|
13
|
-
"xdr:to": new
|
|
14
|
-
"xdr:pic": new
|
|
15
|
-
"xdr:clientData": new
|
|
12
|
+
"xdr:from": new cell_position_xform_1.CellPositionXform({ tag: "xdr:from" }),
|
|
13
|
+
"xdr:to": new cell_position_xform_1.CellPositionXform({ tag: "xdr:to" }),
|
|
14
|
+
"xdr:pic": new pic_xform_1.PicXform(),
|
|
15
|
+
"xdr:clientData": new static_xform_1.StaticXform({ tag: "xdr:clientData" })
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
get tag() {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ListXform = void 0;
|
|
4
|
-
const
|
|
5
|
-
class ListXform extends
|
|
4
|
+
const base_xform_1 = require("./base-xform");
|
|
5
|
+
class ListXform extends base_xform_1.BaseXform {
|
|
6
6
|
constructor(options) {
|
|
7
7
|
super();
|
|
8
8
|
this.tag = options.tag;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CacheFieldXform = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const base_xform_1 = require("../base-xform");
|
|
5
|
+
const utils_1 = require("../../../utils/utils");
|
|
6
6
|
/**
|
|
7
7
|
* Xform for parsing individual <cacheField> elements within a pivot cache definition.
|
|
8
8
|
*
|
|
@@ -22,7 +22,7 @@ const utils_js_1 = require("../../../utils/utils");
|
|
|
22
22
|
* </cacheField>
|
|
23
23
|
* ```
|
|
24
24
|
*/
|
|
25
|
-
class CacheFieldXform extends
|
|
25
|
+
class CacheFieldXform extends base_xform_1.BaseXform {
|
|
26
26
|
constructor() {
|
|
27
27
|
super();
|
|
28
28
|
this.model = null;
|
|
@@ -41,7 +41,7 @@ class CacheFieldXform extends base_xform_js_1.BaseXform {
|
|
|
41
41
|
case "cacheField":
|
|
42
42
|
// Initialize the model with field name
|
|
43
43
|
this.model = {
|
|
44
|
-
name: (0,
|
|
44
|
+
name: (0, utils_1.xmlDecode)(attributes.name || ""),
|
|
45
45
|
sharedItems: null
|
|
46
46
|
};
|
|
47
47
|
break;
|
|
@@ -76,7 +76,7 @@ class CacheFieldXform extends base_xform_js_1.BaseXform {
|
|
|
76
76
|
// String value in sharedItems
|
|
77
77
|
if (this.inSharedItems && this.model?.sharedItems !== null) {
|
|
78
78
|
// Decode XML entities in the value
|
|
79
|
-
const value = (0,
|
|
79
|
+
const value = (0, utils_1.xmlDecode)(attributes.v || "");
|
|
80
80
|
this.model.sharedItems.push(value);
|
|
81
81
|
}
|
|
82
82
|
break;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CacheField = void 0;
|
|
4
|
-
const
|
|
4
|
+
const utils_1 = require("../../../utils/utils");
|
|
5
5
|
class CacheField {
|
|
6
6
|
constructor({ name, sharedItems }) {
|
|
7
7
|
// string type
|
|
@@ -26,7 +26,7 @@ class CacheField {
|
|
|
26
26
|
// PivotCache Field: http://www.datypic.com/sc/ooxml/e-ssml_cacheField-1.html
|
|
27
27
|
// Shared Items: http://www.datypic.com/sc/ooxml/e-ssml_sharedItems-1.html
|
|
28
28
|
// Escape XML special characters in name attribute
|
|
29
|
-
const escapedName = (0,
|
|
29
|
+
const escapedName = (0, utils_1.xmlEncode)(this.name);
|
|
30
30
|
// integer types
|
|
31
31
|
if (this.sharedItems === null) {
|
|
32
32
|
// TK(2023-07-18): left out attributes... minValue="5" maxValue="45"
|
|
@@ -37,7 +37,7 @@ class CacheField {
|
|
|
37
37
|
// string types - escape XML special characters in each shared item value
|
|
38
38
|
return `<cacheField name="${escapedName}" numFmtId="0">
|
|
39
39
|
<sharedItems count="${this.sharedItems.length}">
|
|
40
|
-
${this.sharedItems.map(item => `<s v="${(0,
|
|
40
|
+
${this.sharedItems.map(item => `<s v="${(0, utils_1.xmlEncode)(String(item))}" />`).join("")}
|
|
41
41
|
</sharedItems>
|
|
42
42
|
</cacheField>`;
|
|
43
43
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PivotCacheDefinitionXform = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
class PivotCacheDefinitionXform extends
|
|
4
|
+
const base_xform_1 = require("../base-xform");
|
|
5
|
+
const cache_field_1 = require("./cache-field");
|
|
6
|
+
const cache_field_xform_1 = require("./cache-field-xform");
|
|
7
|
+
const xml_stream_1 = require("../../../utils/xml-stream");
|
|
8
|
+
class PivotCacheDefinitionXform extends base_xform_1.BaseXform {
|
|
9
9
|
constructor() {
|
|
10
10
|
super();
|
|
11
11
|
this.map = {};
|
|
@@ -46,7 +46,9 @@ class PivotCacheDefinitionXform extends base_xform_js_1.BaseXform {
|
|
|
46
46
|
*/
|
|
47
47
|
renderNew(xmlStream, model) {
|
|
48
48
|
const { source, cacheFields } = model;
|
|
49
|
-
|
|
49
|
+
// Record count = number of data rows (excluding header row)
|
|
50
|
+
const recordCount = source.getSheetValues().slice(2).length;
|
|
51
|
+
xmlStream.openXml(xml_stream_1.XmlStream.StdDocAttributes);
|
|
50
52
|
xmlStream.openNode(this.tag, {
|
|
51
53
|
...PivotCacheDefinitionXform.PIVOT_CACHE_DEFINITION_ATTRIBUTES,
|
|
52
54
|
"r:id": "rId1",
|
|
@@ -56,7 +58,7 @@ class PivotCacheDefinitionXform extends base_xform_js_1.BaseXform {
|
|
|
56
58
|
createdVersion: "8",
|
|
57
59
|
refreshedVersion: "8",
|
|
58
60
|
minRefreshableVersion: "3",
|
|
59
|
-
recordCount
|
|
61
|
+
recordCount
|
|
60
62
|
});
|
|
61
63
|
xmlStream.openNode("cacheSource", { type: "worksheet" });
|
|
62
64
|
xmlStream.leafNode("worksheetSource", {
|
|
@@ -66,7 +68,7 @@ class PivotCacheDefinitionXform extends base_xform_js_1.BaseXform {
|
|
|
66
68
|
xmlStream.closeNode();
|
|
67
69
|
xmlStream.openNode("cacheFields", { count: cacheFields.length });
|
|
68
70
|
// Note: keeping this pretty-printed for now to ease debugging.
|
|
69
|
-
xmlStream.writeXml(cacheFields.map((cacheField) => new
|
|
71
|
+
xmlStream.writeXml(cacheFields.map((cacheField) => new cache_field_1.CacheField(cacheField).render()).join("\n "));
|
|
70
72
|
xmlStream.closeNode();
|
|
71
73
|
xmlStream.closeNode();
|
|
72
74
|
}
|
|
@@ -75,7 +77,7 @@ class PivotCacheDefinitionXform extends base_xform_js_1.BaseXform {
|
|
|
75
77
|
*/
|
|
76
78
|
renderLoaded(xmlStream, model) {
|
|
77
79
|
const { cacheFields, sourceRef, sourceSheet, recordCount } = model;
|
|
78
|
-
xmlStream.openXml(
|
|
80
|
+
xmlStream.openXml(xml_stream_1.XmlStream.StdDocAttributes);
|
|
79
81
|
xmlStream.openNode(this.tag, {
|
|
80
82
|
...PivotCacheDefinitionXform.PIVOT_CACHE_DEFINITION_ATTRIBUTES,
|
|
81
83
|
"r:id": model.rId || "rId1",
|
|
@@ -95,7 +97,7 @@ class PivotCacheDefinitionXform extends base_xform_js_1.BaseXform {
|
|
|
95
97
|
xmlStream.closeNode();
|
|
96
98
|
xmlStream.openNode("cacheFields", { count: cacheFields.length });
|
|
97
99
|
xmlStream.writeXml(cacheFields
|
|
98
|
-
.map((cacheField) => new
|
|
100
|
+
.map((cacheField) => new cache_field_1.CacheField(cacheField).render())
|
|
99
101
|
.join("\n "));
|
|
100
102
|
xmlStream.closeNode();
|
|
101
103
|
xmlStream.closeNode();
|
|
@@ -138,7 +140,7 @@ class PivotCacheDefinitionXform extends base_xform_js_1.BaseXform {
|
|
|
138
140
|
break;
|
|
139
141
|
case "cacheField":
|
|
140
142
|
if (this.inCacheFields) {
|
|
141
|
-
this.currentCacheField = new
|
|
143
|
+
this.currentCacheField = new cache_field_xform_1.CacheFieldXform();
|
|
142
144
|
this.currentCacheField.parseOpen(node);
|
|
143
145
|
}
|
|
144
146
|
break;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PivotCacheRecordsXform = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
class PivotCacheRecordsXform extends
|
|
4
|
+
const xml_stream_1 = require("../../../utils/xml-stream");
|
|
5
|
+
const utils_1 = require("../../../utils/utils");
|
|
6
|
+
const base_xform_1 = require("../base-xform");
|
|
7
|
+
class PivotCacheRecordsXform extends base_xform_1.BaseXform {
|
|
8
8
|
constructor() {
|
|
9
9
|
super();
|
|
10
10
|
this.map = {};
|
|
@@ -42,7 +42,7 @@ class PivotCacheRecordsXform extends base_xform_js_1.BaseXform {
|
|
|
42
42
|
renderNew(xmlStream, model) {
|
|
43
43
|
const { source, cacheFields } = model;
|
|
44
44
|
const sourceBodyRows = source.getSheetValues().slice(2);
|
|
45
|
-
xmlStream.openXml(
|
|
45
|
+
xmlStream.openXml(xml_stream_1.XmlStream.StdDocAttributes);
|
|
46
46
|
xmlStream.openNode(this.tag, {
|
|
47
47
|
...PivotCacheRecordsXform.PIVOT_CACHE_RECORDS_ATTRIBUTES,
|
|
48
48
|
count: sourceBodyRows.length
|
|
@@ -54,7 +54,7 @@ class PivotCacheRecordsXform extends base_xform_js_1.BaseXform {
|
|
|
54
54
|
* Render loaded pivot cache records
|
|
55
55
|
*/
|
|
56
56
|
renderLoaded(xmlStream, model) {
|
|
57
|
-
xmlStream.openXml(
|
|
57
|
+
xmlStream.openXml(xml_stream_1.XmlStream.StdDocAttributes);
|
|
58
58
|
xmlStream.openNode(this.tag, {
|
|
59
59
|
...PivotCacheRecordsXform.PIVOT_CACHE_RECORDS_ATTRIBUTES,
|
|
60
60
|
count: model.count
|
|
@@ -80,7 +80,7 @@ class PivotCacheRecordsXform extends base_xform_js_1.BaseXform {
|
|
|
80
80
|
case "n":
|
|
81
81
|
return `<n v="${value.value}" />`;
|
|
82
82
|
case "s":
|
|
83
|
-
return `<s v="${(0,
|
|
83
|
+
return `<s v="${(0, utils_1.xmlEncode)(String(value.value))}" />`;
|
|
84
84
|
case "b":
|
|
85
85
|
return `<b v="${value.value ? "1" : "0"}" />`;
|
|
86
86
|
case "m":
|
|
@@ -117,7 +117,7 @@ class PivotCacheRecordsXform extends base_xform_js_1.BaseXform {
|
|
|
117
117
|
if (Number.isFinite(value)) {
|
|
118
118
|
return `<n v="${value}" />`;
|
|
119
119
|
}
|
|
120
|
-
return `<s v="${(0,
|
|
120
|
+
return `<s v="${(0, utils_1.xmlEncode)(String(value))}" />`;
|
|
121
121
|
}
|
|
122
122
|
// shared items
|
|
123
123
|
const sharedItemsIndex = sharedItems.indexOf(value);
|
|
@@ -165,7 +165,7 @@ class PivotCacheRecordsXform extends base_xform_js_1.BaseXform {
|
|
|
165
165
|
if (this.currentRecord) {
|
|
166
166
|
this.currentRecord.push({
|
|
167
167
|
type: "s",
|
|
168
|
-
value: (0,
|
|
168
|
+
value: (0, utils_1.xmlDecode)(attributes.v || "")
|
|
169
169
|
});
|
|
170
170
|
}
|
|
171
171
|
break;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PivotTableXform = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
class PivotTableXform extends base_xform_js_1.BaseXform {
|
|
4
|
+
const xml_stream_1 = require("../../../utils/xml-stream");
|
|
5
|
+
const utils_1 = require("../../../utils/utils");
|
|
6
|
+
const base_xform_1 = require("../base-xform");
|
|
7
|
+
class PivotTableXform extends base_xform_1.BaseXform {
|
|
9
8
|
constructor() {
|
|
10
9
|
super();
|
|
11
10
|
this.map = {};
|
|
@@ -60,8 +59,24 @@ class PivotTableXform extends base_xform_js_1.BaseXform {
|
|
|
60
59
|
renderNew(xmlStream, model) {
|
|
61
60
|
const { rows, columns, values, cacheFields, cacheId, applyWidthHeightFormats } = model;
|
|
62
61
|
// Generate unique UID for each pivot table to prevent Excel treating them as identical
|
|
63
|
-
const uniqueUid = `{${
|
|
64
|
-
|
|
62
|
+
const uniqueUid = `{${crypto.randomUUID().toUpperCase()}}`;
|
|
63
|
+
// Build rowItems - need one <i> for each unique value in row fields, plus grand total
|
|
64
|
+
const rowItems = buildRowItems(rows, cacheFields);
|
|
65
|
+
// Build colItems - need one <i> for each unique value in col fields, plus grand total
|
|
66
|
+
const colItems = buildColItems(columns, cacheFields, values.length);
|
|
67
|
+
// Calculate pivot table dimensions
|
|
68
|
+
const rowFieldItemCount = rows.length > 0 ? cacheFields[rows[0]]?.sharedItems?.length || 0 : 0;
|
|
69
|
+
const colFieldItemCount = columns.length > 0 ? cacheFields[columns[0]]?.sharedItems?.length || 0 : 0;
|
|
70
|
+
// Location: A3 is where pivot table starts
|
|
71
|
+
// - firstHeaderRow: 1 (column headers are in first row of pivot table)
|
|
72
|
+
// - firstDataRow: 2 (data starts in second row)
|
|
73
|
+
// - firstDataCol: 1 (data starts in second column, after row labels)
|
|
74
|
+
// Calculate ref based on actual data size
|
|
75
|
+
const endRow = 3 + rowFieldItemCount + 1; // start row + data rows + grand total
|
|
76
|
+
const endCol = 1 + colFieldItemCount + 1; // start col + data cols + grand total
|
|
77
|
+
const endColLetter = String.fromCharCode(64 + endCol);
|
|
78
|
+
const locationRef = `A3:${endColLetter}${endRow}`;
|
|
79
|
+
xmlStream.openXml(xml_stream_1.XmlStream.StdDocAttributes);
|
|
65
80
|
xmlStream.openNode(this.tag, {
|
|
66
81
|
...PivotTableXform.PIVOT_TABLE_ATTRIBUTES,
|
|
67
82
|
"xr:uid": uniqueUid,
|
|
@@ -85,23 +100,23 @@ class PivotTableXform extends base_xform_js_1.BaseXform {
|
|
|
85
100
|
multipleFieldFilters: "0"
|
|
86
101
|
});
|
|
87
102
|
xmlStream.writeXml(`
|
|
88
|
-
<location ref="
|
|
103
|
+
<location ref="${locationRef}" firstHeaderRow="1" firstDataRow="2" firstDataCol="1" />
|
|
89
104
|
<pivotFields count="${cacheFields.length}">
|
|
90
105
|
${renderPivotFields(model)}
|
|
91
106
|
</pivotFields>
|
|
92
107
|
<rowFields count="${rows.length}">
|
|
93
108
|
${rows.map(rowIndex => `<field x="${rowIndex}" />`).join("\n ")}
|
|
94
109
|
</rowFields>
|
|
95
|
-
<rowItems count="
|
|
96
|
-
|
|
110
|
+
<rowItems count="${rowItems.count}">
|
|
111
|
+
${rowItems.xml}
|
|
97
112
|
</rowItems>
|
|
98
113
|
<colFields count="${columns.length === 0 ? 1 : columns.length}">
|
|
99
114
|
${columns.length === 0
|
|
100
115
|
? '<field x="-2" />'
|
|
101
116
|
: columns.map(columnIndex => `<field x="${columnIndex}" />`).join("\n ")}
|
|
102
117
|
</colFields>
|
|
103
|
-
<colItems count="
|
|
104
|
-
|
|
118
|
+
<colItems count="${colItems.count}">
|
|
119
|
+
${colItems.xml}
|
|
105
120
|
</colItems>
|
|
106
121
|
<dataFields count="${values.length}">
|
|
107
122
|
${buildDataFields(cacheFields, values, model.metric)}
|
|
@@ -141,8 +156,8 @@ class PivotTableXform extends base_xform_js_1.BaseXform {
|
|
|
141
156
|
* Render loaded pivot table (preserving original structure)
|
|
142
157
|
*/
|
|
143
158
|
renderLoaded(xmlStream, model) {
|
|
144
|
-
const uniqueUid = model.uid || `{${
|
|
145
|
-
xmlStream.openXml(
|
|
159
|
+
const uniqueUid = model.uid || `{${crypto.randomUUID().toUpperCase()}}`;
|
|
160
|
+
xmlStream.openXml(xml_stream_1.XmlStream.StdDocAttributes);
|
|
146
161
|
xmlStream.openNode(this.tag, {
|
|
147
162
|
...PivotTableXform.PIVOT_TABLE_ATTRIBUTES,
|
|
148
163
|
"xr:uid": uniqueUid,
|
|
@@ -399,7 +414,7 @@ class PivotTableXform extends base_xform_js_1.BaseXform {
|
|
|
399
414
|
case "dataField":
|
|
400
415
|
if (this.inDataFields && this.model) {
|
|
401
416
|
this.model.dataFields.push({
|
|
402
|
-
name: (0,
|
|
417
|
+
name: (0, utils_1.xmlDecode)(attributes.name || ""),
|
|
403
418
|
fld: parseInt(attributes.fld || "0", 10),
|
|
404
419
|
baseField: attributes.baseField ? parseInt(attributes.baseField, 10) : 0,
|
|
405
420
|
baseItem: attributes.baseItem ? parseInt(attributes.baseItem, 10) : 0,
|
|
@@ -465,6 +480,70 @@ PivotTableXform.PIVOT_TABLE_ATTRIBUTES = {
|
|
|
465
480
|
"xmlns:xr": "http://schemas.microsoft.com/office/spreadsheetml/2014/revision"
|
|
466
481
|
};
|
|
467
482
|
// Helpers
|
|
483
|
+
/**
|
|
484
|
+
* Build rowItems XML - one item for each unique value in row fields, plus grand total.
|
|
485
|
+
* Each <i> represents a row in the pivot table.
|
|
486
|
+
* - Regular items: <i><x v="index"/></i> where index is the position in sharedItems
|
|
487
|
+
* - Grand total: <i t="grand"><x/></i>
|
|
488
|
+
*/
|
|
489
|
+
function buildRowItems(rows, cacheFields) {
|
|
490
|
+
if (rows.length === 0) {
|
|
491
|
+
// No row fields - just grand total
|
|
492
|
+
return { count: 1, xml: '<i t="grand"><x /></i>' };
|
|
493
|
+
}
|
|
494
|
+
// Get unique values count from the first row field
|
|
495
|
+
const rowFieldIndex = rows[0];
|
|
496
|
+
const sharedItems = cacheFields[rowFieldIndex]?.sharedItems || [];
|
|
497
|
+
const itemCount = sharedItems.length;
|
|
498
|
+
// Build items: one for each unique value + grand total
|
|
499
|
+
const items = [];
|
|
500
|
+
// Regular items - reference each unique value by index
|
|
501
|
+
for (let i = 0; i < itemCount; i++) {
|
|
502
|
+
items.push(`<i><x v="${i}" /></i>`);
|
|
503
|
+
}
|
|
504
|
+
// Grand total row
|
|
505
|
+
items.push('<i t="grand"><x /></i>');
|
|
506
|
+
return {
|
|
507
|
+
count: items.length,
|
|
508
|
+
xml: items.join("\n ")
|
|
509
|
+
};
|
|
510
|
+
}
|
|
511
|
+
/**
|
|
512
|
+
* Build colItems XML - one item for each unique value in column fields, plus grand total.
|
|
513
|
+
* When there are multiple data fields (values), each column value may have sub-columns.
|
|
514
|
+
*/
|
|
515
|
+
function buildColItems(columns, cacheFields, valueCount) {
|
|
516
|
+
if (columns.length === 0) {
|
|
517
|
+
// No column fields - columns are based on data fields (values)
|
|
518
|
+
if (valueCount > 1) {
|
|
519
|
+
// Multiple values: one column per value + grand total
|
|
520
|
+
const items = [];
|
|
521
|
+
for (let i = 0; i < valueCount; i++) {
|
|
522
|
+
items.push(`<i><x v="${i}" /></i>`);
|
|
523
|
+
}
|
|
524
|
+
items.push('<i t="grand"><x /></i>');
|
|
525
|
+
return { count: items.length, xml: items.join("\n ") };
|
|
526
|
+
}
|
|
527
|
+
// Single value: just grand total
|
|
528
|
+
return { count: 1, xml: '<i t="grand"><x /></i>' };
|
|
529
|
+
}
|
|
530
|
+
// Get unique values count from the first column field
|
|
531
|
+
const colFieldIndex = columns[0];
|
|
532
|
+
const sharedItems = cacheFields[colFieldIndex]?.sharedItems || [];
|
|
533
|
+
const itemCount = sharedItems.length;
|
|
534
|
+
// Build items: one for each unique value + grand total
|
|
535
|
+
const items = [];
|
|
536
|
+
// Regular items - reference each unique value by index
|
|
537
|
+
for (let i = 0; i < itemCount; i++) {
|
|
538
|
+
items.push(`<i><x v="${i}" /></i>`);
|
|
539
|
+
}
|
|
540
|
+
// Grand total column
|
|
541
|
+
items.push('<i t="grand"><x /></i>');
|
|
542
|
+
return {
|
|
543
|
+
count: items.length,
|
|
544
|
+
xml: items.join("\n ")
|
|
545
|
+
};
|
|
546
|
+
}
|
|
468
547
|
/**
|
|
469
548
|
* Build dataField XML elements for all values in the pivot table.
|
|
470
549
|
* Supports multiple values when columns is empty.
|
|
@@ -475,7 +554,7 @@ function buildDataFields(cacheFields, values, metric) {
|
|
|
475
554
|
const subtotalAttr = metric === "count" ? ' subtotal="count"' : "";
|
|
476
555
|
return values
|
|
477
556
|
.map(valueIndex => `<dataField
|
|
478
|
-
name="${metricName} of ${(0,
|
|
557
|
+
name="${metricName} of ${(0, utils_1.xmlEncode)(cacheFields[valueIndex].name)}"
|
|
479
558
|
fld="${valueIndex}"
|
|
480
559
|
baseField="0"
|
|
481
560
|
baseItem="0"${subtotalAttr}
|
|
@@ -505,10 +584,15 @@ function renderPivotField(fieldType, sharedItems) {
|
|
|
505
584
|
const defaultAttributes = 'compact="0" outline="0" showAll="0" defaultSubtotal="0"';
|
|
506
585
|
if (fieldType === "row" || fieldType === "column") {
|
|
507
586
|
const axis = fieldType === "row" ? "axisRow" : "axisCol";
|
|
587
|
+
// items = one for each shared item + one default item
|
|
588
|
+
const itemsXml = [
|
|
589
|
+
...sharedItems.map((_item, index) => `<item x="${index}" />`),
|
|
590
|
+
'<item t="default" />' // Required default item for subtotals/grand totals
|
|
591
|
+
].join("\n ");
|
|
508
592
|
return `
|
|
509
593
|
<pivotField axis="${axis}" ${defaultAttributes}>
|
|
510
594
|
<items count="${sharedItems.length + 1}">
|
|
511
|
-
${
|
|
595
|
+
${itemsXml}
|
|
512
596
|
</items>
|
|
513
597
|
</pivotField>
|
|
514
598
|
`;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AutoFilterXform = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
class AutoFilterXform extends
|
|
4
|
+
const col_cache_1 = require("../../../utils/col-cache");
|
|
5
|
+
const base_xform_1 = require("../base-xform");
|
|
6
|
+
class AutoFilterXform extends base_xform_1.BaseXform {
|
|
7
7
|
get tag() {
|
|
8
8
|
return "autoFilter";
|
|
9
9
|
}
|
|
@@ -18,7 +18,7 @@ class AutoFilterXform extends base_xform_js_1.BaseXform {
|
|
|
18
18
|
if (typeof addr === "string") {
|
|
19
19
|
return addr;
|
|
20
20
|
}
|
|
21
|
-
return
|
|
21
|
+
return col_cache_1.colCache.getAddress(addr.row, addr.column).address;
|
|
22
22
|
};
|
|
23
23
|
const firstAddress = getAddress(model.from);
|
|
24
24
|
const secondAddress = getAddress(model.to);
|