@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
package/README.md
CHANGED
|
@@ -8,13 +8,14 @@ Modern TypeScript Excel Workbook Manager - Read, manipulate and write spreadshee
|
|
|
8
8
|
|
|
9
9
|
ExcelTS is a modernized fork of [ExcelJS](https://github.com/exceljs/exceljs) with:
|
|
10
10
|
|
|
11
|
+
- 🚀 **Zero Runtime Dependencies** - Pure TypeScript implementation with no external packages
|
|
11
12
|
- ✅ **Full TypeScript Support** - Complete type definitions and modern TypeScript patterns
|
|
12
|
-
- ✅ **Updated Dependencies** - All dependencies upgraded to latest stable versions
|
|
13
13
|
- ✅ **Modern Build System** - Using Rolldown for faster builds
|
|
14
14
|
- ✅ **Enhanced Testing** - Migrated to Vitest with browser testing support
|
|
15
15
|
- ✅ **ESM First** - Native ES Module support with CommonJS compatibility
|
|
16
16
|
- ✅ **Node 20+** - Optimized for modern Node.js versions
|
|
17
17
|
- ✅ **Named Exports** - All exports are named for better tree-shaking
|
|
18
|
+
- ✅ **Broad Browser Support** - Works in Chrome 85+, Firefox 79+, Safari 14+ with built-in polyfills
|
|
18
19
|
|
|
19
20
|
## Translations
|
|
20
21
|
|
|
@@ -104,53 +105,167 @@ cell.fill = {
|
|
|
104
105
|
- Data protection
|
|
105
106
|
- Comments and notes
|
|
106
107
|
|
|
107
|
-
##
|
|
108
|
+
## Streaming API (Node.js)
|
|
109
|
+
|
|
110
|
+
For processing large Excel files without loading them entirely into memory, ExcelTS provides streaming reader and writer APIs.
|
|
111
|
+
|
|
112
|
+
### Streaming Reader
|
|
113
|
+
|
|
114
|
+
Read large XLSX files with minimal memory usage:
|
|
115
|
+
|
|
116
|
+
```javascript
|
|
117
|
+
import { WorkbookReader } from "@cj-tech-master/excelts";
|
|
118
|
+
|
|
119
|
+
// Read from file path
|
|
120
|
+
const reader = new WorkbookReader("large-file.xlsx", {
|
|
121
|
+
worksheets: "emit", // emit worksheet events
|
|
122
|
+
sharedStrings: "cache", // cache shared strings for cell values
|
|
123
|
+
hyperlinks: "ignore", // ignore hyperlinks
|
|
124
|
+
styles: "ignore" // ignore styles for faster parsing
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
for await (const worksheet of reader) {
|
|
128
|
+
console.log(`Reading: ${worksheet.name}`);
|
|
129
|
+
for await (const row of worksheet) {
|
|
130
|
+
console.log(row.values);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Streaming Writer
|
|
136
|
+
|
|
137
|
+
Write large XLSX files row by row:
|
|
138
|
+
|
|
139
|
+
```javascript
|
|
140
|
+
import { WorkbookWriter } from "@cj-tech-master/excelts";
|
|
141
|
+
|
|
142
|
+
const workbook = new WorkbookWriter({
|
|
143
|
+
filename: "output.xlsx",
|
|
144
|
+
useSharedStrings: true,
|
|
145
|
+
useStyles: true
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
const sheet = workbook.addWorksheet("Data");
|
|
149
|
+
|
|
150
|
+
// Write rows one at a time
|
|
151
|
+
for (let i = 0; i < 1000000; i++) {
|
|
152
|
+
sheet.addRow([`Row ${i}`, i, new Date()]).commit();
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// Commit worksheet and finalize
|
|
156
|
+
sheet.commit();
|
|
157
|
+
await workbook.commit();
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## CSV Support
|
|
108
161
|
|
|
109
|
-
|
|
162
|
+
### Node.js (Full Streaming Support)
|
|
110
163
|
|
|
111
164
|
```javascript
|
|
112
|
-
|
|
113
|
-
import { Workbook } from "@cj-tech-master/excelts/browser";
|
|
165
|
+
import { Workbook } from "@cj-tech-master/excelts";
|
|
114
166
|
|
|
115
167
|
const workbook = new Workbook();
|
|
116
|
-
|
|
168
|
+
|
|
169
|
+
// Read CSV from file (streaming)
|
|
170
|
+
await workbook.csv.readFile("data.csv");
|
|
171
|
+
|
|
172
|
+
// Read CSV from stream
|
|
173
|
+
import fs from "fs";
|
|
174
|
+
const stream = fs.createReadStream("data.csv");
|
|
175
|
+
await workbook.csv.read(stream, { sheetName: "Imported" });
|
|
176
|
+
|
|
177
|
+
// Write CSV to file (streaming)
|
|
178
|
+
await workbook.csv.writeFile("output.csv");
|
|
179
|
+
|
|
180
|
+
// Write CSV to stream
|
|
181
|
+
const writeStream = fs.createWriteStream("output.csv");
|
|
182
|
+
await workbook.csv.write(writeStream);
|
|
183
|
+
|
|
184
|
+
// Write CSV to buffer
|
|
185
|
+
const buffer = await workbook.csv.writeBuffer();
|
|
117
186
|
```
|
|
118
187
|
|
|
119
|
-
###
|
|
188
|
+
### Browser (In-Memory)
|
|
189
|
+
|
|
190
|
+
```javascript
|
|
191
|
+
import { Workbook } from "@cj-tech-master/excelts";
|
|
192
|
+
|
|
193
|
+
const workbook = new Workbook();
|
|
194
|
+
|
|
195
|
+
// Load CSV from string
|
|
196
|
+
workbook.csv.load(csvString);
|
|
197
|
+
|
|
198
|
+
// Load CSV from ArrayBuffer (e.g., from fetch or file input)
|
|
199
|
+
const response = await fetch("data.csv");
|
|
200
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
201
|
+
workbook.csv.load(arrayBuffer);
|
|
120
202
|
|
|
121
|
-
|
|
203
|
+
// Write CSV to string
|
|
204
|
+
const csvOutput = workbook.csv.writeString();
|
|
122
205
|
|
|
123
|
-
|
|
124
|
-
|
|
206
|
+
// Write CSV to Uint8Array buffer
|
|
207
|
+
const buffer = workbook.csv.writeBuffer();
|
|
125
208
|
```
|
|
126
209
|
|
|
127
|
-
|
|
210
|
+
## Browser Support
|
|
211
|
+
|
|
212
|
+
ExcelTS has native browser support with **zero configuration** required for modern bundlers.
|
|
213
|
+
|
|
214
|
+
### Using with Bundlers (Vite, Webpack, Rollup, esbuild)
|
|
128
215
|
|
|
129
|
-
|
|
130
|
-
import { defineConfig } from 'vite'
|
|
131
|
-
import { nodePolyfills } from 'vite-plugin-node-polyfills'
|
|
216
|
+
Simply import ExcelTS - no polyfills or configuration needed:
|
|
132
217
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
218
|
+
```javascript
|
|
219
|
+
import { Workbook } from "@cj-tech-master/excelts";
|
|
220
|
+
|
|
221
|
+
const workbook = new Workbook();
|
|
222
|
+
const sheet = workbook.addWorksheet("Sheet1");
|
|
223
|
+
sheet.getCell("A1").value = "Hello, Browser!";
|
|
224
|
+
|
|
225
|
+
// Write to buffer and download
|
|
226
|
+
const buffer = await workbook.xlsx.writeBuffer();
|
|
227
|
+
const blob = new Blob([buffer], {
|
|
228
|
+
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
|
229
|
+
});
|
|
230
|
+
const url = URL.createObjectURL(blob);
|
|
231
|
+
// ... trigger download
|
|
136
232
|
```
|
|
137
233
|
|
|
234
|
+
### Using with Script Tags (No Bundler)
|
|
235
|
+
|
|
236
|
+
```html
|
|
237
|
+
<script src="https://unpkg.com/@cj-tech-master/excelts/dist/browser/excelts.iife.min.js"></script>
|
|
238
|
+
<script>
|
|
239
|
+
const { Workbook } = ExcelTS;
|
|
240
|
+
const wb = new Workbook();
|
|
241
|
+
// ... use workbook API
|
|
242
|
+
</script>
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### Browser-Specific Notes
|
|
246
|
+
|
|
247
|
+
- **CSV operations are supported** using native RFC 4180 implementation
|
|
248
|
+
- Use `csv.load(stringOrArrayBuffer)` to read CSV
|
|
249
|
+
- Use `csv.writeString()` or `csv.writeBuffer()` to write CSV
|
|
250
|
+
- Use `xlsx.load(arrayBuffer)` instead of `xlsx.readFile()`
|
|
251
|
+
- Use `xlsx.writeBuffer()` instead of `xlsx.writeFile()`
|
|
252
|
+
- Worksheet protection with passwords is fully supported (pure JS SHA-512)
|
|
253
|
+
|
|
138
254
|
## Requirements
|
|
139
255
|
|
|
140
256
|
### Node.js
|
|
141
257
|
|
|
142
|
-
- **Node.js >=
|
|
143
|
-
- Recommended: Node.js >= 20.0.0 for best performance
|
|
258
|
+
- **Node.js >= 20.0.0** (ES2020 native support)
|
|
144
259
|
|
|
145
260
|
### Browsers (No Polyfills Required)
|
|
146
261
|
|
|
147
262
|
- **Chrome >= 85** (August 2020)
|
|
148
263
|
- **Edge >= 85** (August 2020)
|
|
149
|
-
- **Firefox >=
|
|
150
|
-
- **Safari >=
|
|
264
|
+
- **Firefox >= 79** (July 2020)
|
|
265
|
+
- **Safari >= 14** (September 2020)
|
|
151
266
|
- **Opera >= 71** (September 2020)
|
|
152
267
|
|
|
153
|
-
|
|
268
|
+
For older browsers without native `CompressionStream` API (Firefox < 113, Safari < 16.4), ExcelTS automatically uses a built-in pure JavaScript DEFLATE implementation - no configuration or polyfills needed.
|
|
154
269
|
|
|
155
270
|
## Maintainer
|
|
156
271
|
|
|
@@ -230,9 +345,9 @@ This project is a fork of ExcelJS with modernization improvements. All credit fo
|
|
|
230
345
|
|
|
231
346
|
## Links
|
|
232
347
|
|
|
233
|
-
- [GitHub Repository](https://github.com/cjnoname/
|
|
348
|
+
- [GitHub Repository](https://github.com/cjnoname/excelts)
|
|
234
349
|
- [Original ExcelJS](https://github.com/exceljs/exceljs)
|
|
235
|
-
- [Issue Tracker](https://github.com/cjnoname/
|
|
350
|
+
- [Issue Tracker](https://github.com/cjnoname/excelts/issues)
|
|
236
351
|
|
|
237
352
|
## Changelog
|
|
238
353
|
|
package/README_zh.md
CHANGED
|
@@ -8,13 +8,14 @@
|
|
|
8
8
|
|
|
9
9
|
ExcelTS 是 [ExcelJS](https://github.com/exceljs/exceljs) 的现代化版本,具有以下特性:
|
|
10
10
|
|
|
11
|
+
- 🚀 **零运行时依赖** - 纯 TypeScript 实现,无任何外部包依赖
|
|
11
12
|
- ✅ **完整的 TypeScript 支持** - 完整的类型定义和现代 TypeScript 模式
|
|
12
|
-
- ✅ **升级的依赖** - 所有依赖项升级到最新稳定版本
|
|
13
13
|
- ✅ **现代构建系统** - 使用 Rolldown 进行更快的构建
|
|
14
14
|
- ✅ **增强的测试** - 迁移到 Vitest 并支持浏览器测试
|
|
15
15
|
- ✅ **ESM 优先** - 原生 ES Module 支持,兼容 CommonJS
|
|
16
16
|
- ✅ **Node 20+** - 针对现代 Node.js 版本优化
|
|
17
17
|
- ✅ **命名导出** - 所有导出都是命名导出,更好的 tree-shaking
|
|
18
|
+
- ✅ **广泛浏览器支持** - 支持 Chrome 85+、Firefox 79+、Safari 14+,内置兼容方案
|
|
18
19
|
|
|
19
20
|
## 翻译
|
|
20
21
|
|
|
@@ -104,54 +105,167 @@ cell.fill = {
|
|
|
104
105
|
- 数据保护
|
|
105
106
|
- 注释和批注
|
|
106
107
|
|
|
107
|
-
##
|
|
108
|
+
## 流式 API(Node.js)
|
|
109
|
+
|
|
110
|
+
处理大型 Excel 文件时无需将整个文件加载到内存中,ExcelTS 提供了流式读写 API。
|
|
108
111
|
|
|
109
|
-
|
|
112
|
+
### 流式读取器
|
|
113
|
+
|
|
114
|
+
以最小内存占用读取大型 XLSX 文件:
|
|
110
115
|
|
|
111
|
-
````javascript
|
|
112
116
|
```javascript
|
|
113
|
-
|
|
114
|
-
|
|
117
|
+
import { WorkbookReader } from "@cj-tech-master/excelts";
|
|
118
|
+
|
|
119
|
+
// 从文件路径读取
|
|
120
|
+
const reader = new WorkbookReader("large-file.xlsx", {
|
|
121
|
+
worksheets: "emit", // 触发工作表事件
|
|
122
|
+
sharedStrings: "cache", // 缓存共享字符串以获取单元格值
|
|
123
|
+
hyperlinks: "ignore", // 忽略超链接
|
|
124
|
+
styles: "ignore" // 忽略样式以加快解析
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
for await (const worksheet of reader) {
|
|
128
|
+
console.log(`正在读取: ${worksheet.name}`);
|
|
129
|
+
for await (const row of worksheet) {
|
|
130
|
+
console.log(row.values);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### 流式写入器
|
|
136
|
+
|
|
137
|
+
逐行写入大型 XLSX 文件:
|
|
138
|
+
|
|
139
|
+
```javascript
|
|
140
|
+
import { WorkbookWriter } from "@cj-tech-master/excelts";
|
|
141
|
+
|
|
142
|
+
const workbook = new WorkbookWriter({
|
|
143
|
+
filename: "output.xlsx",
|
|
144
|
+
useSharedStrings: true,
|
|
145
|
+
useStyles: true
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
const sheet = workbook.addWorksheet("Data");
|
|
149
|
+
|
|
150
|
+
// 逐行写入
|
|
151
|
+
for (let i = 0; i < 1000000; i++) {
|
|
152
|
+
sheet.addRow([`第 ${i} 行`, i, new Date()]).commit();
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// 提交工作表并完成
|
|
156
|
+
sheet.commit();
|
|
157
|
+
await workbook.commit();
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## CSV 支持
|
|
161
|
+
|
|
162
|
+
### Node.js(完整流式支持)
|
|
163
|
+
|
|
164
|
+
```javascript
|
|
165
|
+
import { Workbook } from "@cj-tech-master/excelts";
|
|
115
166
|
|
|
116
167
|
const workbook = new Workbook();
|
|
117
|
-
// ... 使用 workbook API
|
|
118
|
-
````
|
|
119
168
|
|
|
120
|
-
|
|
169
|
+
// 从文件读取 CSV(流式)
|
|
170
|
+
await workbook.csv.readFile("data.csv");
|
|
121
171
|
|
|
122
|
-
|
|
172
|
+
// 从流读取 CSV
|
|
173
|
+
import fs from "fs";
|
|
174
|
+
const stream = fs.createReadStream("data.csv");
|
|
175
|
+
await workbook.csv.read(stream, { sheetName: "Imported" });
|
|
123
176
|
|
|
124
|
-
|
|
125
|
-
|
|
177
|
+
// 写入 CSV 到文件(流式)
|
|
178
|
+
await workbook.csv.writeFile("output.csv");
|
|
179
|
+
|
|
180
|
+
// 写入 CSV 到流
|
|
181
|
+
const writeStream = fs.createWriteStream("output.csv");
|
|
182
|
+
await workbook.csv.write(writeStream);
|
|
183
|
+
|
|
184
|
+
// 写入 CSV 到 buffer
|
|
185
|
+
const buffer = await workbook.csv.writeBuffer();
|
|
126
186
|
```
|
|
127
187
|
|
|
128
|
-
|
|
188
|
+
### 浏览器(内存中)
|
|
129
189
|
|
|
130
|
-
```
|
|
131
|
-
import {
|
|
132
|
-
|
|
190
|
+
```javascript
|
|
191
|
+
import { Workbook } from "@cj-tech-master/excelts";
|
|
192
|
+
|
|
193
|
+
const workbook = new Workbook();
|
|
194
|
+
|
|
195
|
+
// 从字符串加载 CSV
|
|
196
|
+
workbook.csv.load(csvString);
|
|
197
|
+
|
|
198
|
+
// 从 ArrayBuffer 加载 CSV(例如从 fetch 或文件输入)
|
|
199
|
+
const response = await fetch("data.csv");
|
|
200
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
201
|
+
workbook.csv.load(arrayBuffer);
|
|
202
|
+
|
|
203
|
+
// 写入 CSV 为字符串
|
|
204
|
+
const csvOutput = workbook.csv.writeString();
|
|
205
|
+
|
|
206
|
+
// 写入 CSV 为 Uint8Array buffer
|
|
207
|
+
const buffer = workbook.csv.writeBuffer();
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## 浏览器支持
|
|
211
|
+
|
|
212
|
+
ExcelTS 原生支持浏览器环境,现代打包工具**无需任何配置**。
|
|
213
|
+
|
|
214
|
+
### 在打包工具中使用(Vite, Webpack, Rollup, esbuild)
|
|
133
215
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
216
|
+
直接导入 ExcelTS - 无需 polyfills 或额外配置:
|
|
217
|
+
|
|
218
|
+
```javascript
|
|
219
|
+
import { Workbook } from "@cj-tech-master/excelts";
|
|
220
|
+
|
|
221
|
+
const workbook = new Workbook();
|
|
222
|
+
const sheet = workbook.addWorksheet("Sheet1");
|
|
223
|
+
sheet.getCell("A1").value = "你好,浏览器!";
|
|
224
|
+
|
|
225
|
+
// 写入 buffer 并下载
|
|
226
|
+
const buffer = await workbook.xlsx.writeBuffer();
|
|
227
|
+
const blob = new Blob([buffer], {
|
|
228
|
+
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
|
229
|
+
});
|
|
230
|
+
const url = URL.createObjectURL(blob);
|
|
231
|
+
// ... 触发下载
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### 使用 Script 标签(无打包工具)
|
|
235
|
+
|
|
236
|
+
```html
|
|
237
|
+
<script src="https://unpkg.com/@cj-tech-master/excelts/dist/browser/excelts.iife.min.js"></script>
|
|
238
|
+
<script>
|
|
239
|
+
const { Workbook } = ExcelTS;
|
|
240
|
+
const wb = new Workbook();
|
|
241
|
+
// ... 使用 workbook API
|
|
242
|
+
</script>
|
|
137
243
|
```
|
|
138
244
|
|
|
245
|
+
### 浏览器版本注意事项
|
|
246
|
+
|
|
247
|
+
- **支持 CSV 操作**(使用原生 RFC 4180 标准实现)
|
|
248
|
+
- 使用 `csv.load(stringOrArrayBuffer)` 读取 CSV
|
|
249
|
+
- 使用 `csv.writeString()` 或 `csv.writeBuffer()` 写入 CSV
|
|
250
|
+
- 使用 `xlsx.load(arrayBuffer)` 代替 `xlsx.readFile()`
|
|
251
|
+
- 使用 `xlsx.writeBuffer()` 代替 `xlsx.writeFile()`
|
|
252
|
+
- 完全支持带密码的工作表保护(纯 JS SHA-512 实现)
|
|
253
|
+
|
|
139
254
|
## 系统要求
|
|
140
255
|
|
|
141
256
|
### Node.js
|
|
142
257
|
|
|
143
|
-
- **Node.js >=
|
|
144
|
-
- 推荐:Node.js >= 20.0.0 以获得最佳性能
|
|
258
|
+
- **Node.js >= 20.0.0**(原生支持 ES2020)
|
|
145
259
|
|
|
146
260
|
### 浏览器(无需 Polyfills)
|
|
147
261
|
|
|
148
262
|
- **Chrome >= 85**(2020年8月)
|
|
149
263
|
- **Edge >= 85**(2020年8月)
|
|
150
|
-
- **Firefox >=
|
|
151
|
-
- **Safari >=
|
|
264
|
+
- **Firefox >= 79**(2020年7月)
|
|
265
|
+
- **Safari >= 14**(2020年9月)
|
|
152
266
|
- **Opera >= 71**(2020年9月)
|
|
153
267
|
|
|
154
|
-
|
|
268
|
+
对于不支持原生 `CompressionStream` API 的旧浏览器(Firefox < 113, Safari < 16.4),ExcelTS 会自动使用内置的纯 JavaScript DEFLATE 实现 - 无需任何配置或 polyfills。
|
|
155
269
|
|
|
156
270
|
## 维护者
|
|
157
271
|
|
|
@@ -231,9 +345,9 @@ MIT License
|
|
|
231
345
|
|
|
232
346
|
## 链接
|
|
233
347
|
|
|
234
|
-
- [GitHub 仓库](https://github.com/cjnoname/
|
|
348
|
+
- [GitHub 仓库](https://github.com/cjnoname/excelts)
|
|
235
349
|
- [原始 ExcelJS](https://github.com/exceljs/exceljs)
|
|
236
|
-
- [问题跟踪](https://github.com/cjnoname/
|
|
350
|
+
- [问题跟踪](https://github.com/cjnoname/excelts/issues)
|
|
237
351
|
|
|
238
352
|
## 更新日志
|
|
239
353
|
|