@alienkarma/exceljs 4.4.0-fork.1
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/LICENSE +22 -0
- package/README.md +3024 -0
- package/README_zh.md +2878 -0
- package/dist/LICENSE +22 -0
- package/dist/es5/csv/csv.js +182 -0
- package/dist/es5/csv/csv.js.map +1 -0
- package/dist/es5/csv/line-buffer.js +68 -0
- package/dist/es5/csv/line-buffer.js.map +1 -0
- package/dist/es5/csv/stream-converter.js +110 -0
- package/dist/es5/csv/stream-converter.js.map +1 -0
- package/dist/es5/doc/anchor.js +73 -0
- package/dist/es5/doc/anchor.js.map +1 -0
- package/dist/es5/doc/cell.js +960 -0
- package/dist/es5/doc/cell.js.map +1 -0
- package/dist/es5/doc/column.js +274 -0
- package/dist/es5/doc/column.js.map +1 -0
- package/dist/es5/doc/data-validations.js +18 -0
- package/dist/es5/doc/data-validations.js.map +1 -0
- package/dist/es5/doc/defined-names.js +173 -0
- package/dist/es5/doc/defined-names.js.map +1 -0
- package/dist/es5/doc/enums.js +49 -0
- package/dist/es5/doc/enums.js.map +1 -0
- package/dist/es5/doc/image.js +69 -0
- package/dist/es5/doc/image.js.map +1 -0
- package/dist/es5/doc/modelcontainer.js +16 -0
- package/dist/es5/doc/modelcontainer.js.map +1 -0
- package/dist/es5/doc/note.js +64 -0
- package/dist/es5/doc/note.js.map +1 -0
- package/dist/es5/doc/pivot-table.js +137 -0
- package/dist/es5/doc/pivot-table.js.map +1 -0
- package/dist/es5/doc/range.js +229 -0
- package/dist/es5/doc/range.js.map +1 -0
- package/dist/es5/doc/row.js +382 -0
- package/dist/es5/doc/row.js.map +1 -0
- package/dist/es5/doc/table.js +441 -0
- package/dist/es5/doc/table.js.map +1 -0
- package/dist/es5/doc/workbook.js +205 -0
- package/dist/es5/doc/workbook.js.map +1 -0
- package/dist/es5/doc/worksheet.js +918 -0
- package/dist/es5/doc/worksheet.js.map +1 -0
- package/dist/es5/exceljs.bare.js +14 -0
- package/dist/es5/exceljs.bare.js.map +1 -0
- package/dist/es5/exceljs.browser.js +36 -0
- package/dist/es5/exceljs.browser.js.map +1 -0
- package/dist/es5/exceljs.nodejs.js +15 -0
- package/dist/es5/exceljs.nodejs.js.map +1 -0
- package/dist/es5/index.js +15 -0
- package/dist/es5/stream/xlsx/hyperlink-reader.js +90 -0
- package/dist/es5/stream/xlsx/hyperlink-reader.js.map +1 -0
- package/dist/es5/stream/xlsx/sheet-comments-writer.js +94 -0
- package/dist/es5/stream/xlsx/sheet-comments-writer.js.map +1 -0
- package/dist/es5/stream/xlsx/sheet-rels-writer.js +94 -0
- package/dist/es5/stream/xlsx/sheet-rels-writer.js.map +1 -0
- package/dist/es5/stream/xlsx/workbook-reader.js +362 -0
- package/dist/es5/stream/xlsx/workbook-reader.js.map +1 -0
- package/dist/es5/stream/xlsx/workbook-writer.js +347 -0
- package/dist/es5/stream/xlsx/workbook-writer.js.map +1 -0
- package/dist/es5/stream/xlsx/worksheet-reader.js +392 -0
- package/dist/es5/stream/xlsx/worksheet-reader.js.map +1 -0
- package/dist/es5/stream/xlsx/worksheet-writer.js +652 -0
- package/dist/es5/stream/xlsx/worksheet-writer.js.map +1 -0
- package/dist/es5/utils/auto-drain.js +18 -0
- package/dist/es5/utils/auto-drain.js.map +1 -0
- package/dist/es5/utils/browser-buffer-decode.js +15 -0
- package/dist/es5/utils/browser-buffer-decode.js.map +1 -0
- package/dist/es5/utils/browser-buffer-encode.js +18 -0
- package/dist/es5/utils/browser-buffer-encode.js.map +1 -0
- package/dist/es5/utils/cell-matrix.js +149 -0
- package/dist/es5/utils/cell-matrix.js.map +1 -0
- package/dist/es5/utils/col-cache.js +258 -0
- package/dist/es5/utils/col-cache.js.map +1 -0
- package/dist/es5/utils/copy-style.js +43 -0
- package/dist/es5/utils/copy-style.js.map +1 -0
- package/dist/es5/utils/encryptor.js +58 -0
- package/dist/es5/utils/encryptor.js.map +1 -0
- package/dist/es5/utils/iterate-stream.js +46 -0
- package/dist/es5/utils/iterate-stream.js.map +1 -0
- package/dist/es5/utils/parse-sax.js +47 -0
- package/dist/es5/utils/parse-sax.js.map +1 -0
- package/dist/es5/utils/shared-formula.js +42 -0
- package/dist/es5/utils/shared-formula.js.map +1 -0
- package/dist/es5/utils/shared-strings.js +32 -0
- package/dist/es5/utils/shared-strings.js.map +1 -0
- package/dist/es5/utils/stream-base64.js +66 -0
- package/dist/es5/utils/stream-base64.js.map +1 -0
- package/dist/es5/utils/stream-buf.js +343 -0
- package/dist/es5/utils/stream-buf.js.map +1 -0
- package/dist/es5/utils/string-buf.js +73 -0
- package/dist/es5/utils/string-buf.js.map +1 -0
- package/dist/es5/utils/string-builder.js +32 -0
- package/dist/es5/utils/string-builder.js.map +1 -0
- package/dist/es5/utils/stuttered-pipe.js +61 -0
- package/dist/es5/utils/stuttered-pipe.js.map +1 -0
- package/dist/es5/utils/typed-stack.js +23 -0
- package/dist/es5/utils/typed-stack.js.map +1 -0
- package/dist/es5/utils/under-dash.js +168 -0
- package/dist/es5/utils/under-dash.js.map +1 -0
- package/dist/es5/utils/utils.js +204 -0
- package/dist/es5/utils/utils.js.map +1 -0
- package/dist/es5/utils/xml-stream.js +151 -0
- package/dist/es5/utils/xml-stream.js.map +1 -0
- package/dist/es5/utils/zip-stream.js +79 -0
- package/dist/es5/utils/zip-stream.js.map +1 -0
- package/dist/es5/xlsx/defaultnumformats.js +230 -0
- package/dist/es5/xlsx/defaultnumformats.js.map +1 -0
- package/dist/es5/xlsx/rel-type.js +21 -0
- package/dist/es5/xlsx/rel-type.js.map +1 -0
- package/dist/es5/xlsx/xform/base-xform.js +139 -0
- package/dist/es5/xlsx/xform/base-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/book/defined-name-xform.js +85 -0
- package/dist/es5/xlsx/xform/book/defined-name-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/book/sheet-xform.js +32 -0
- package/dist/es5/xlsx/xform/book/sheet-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js +24 -0
- package/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/book/workbook-pivot-cache-xform.js +27 -0
- package/dist/es5/xlsx/xform/book/workbook-pivot-cache-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/book/workbook-properties-xform.js +27 -0
- package/dist/es5/xlsx/xform/book/workbook-properties-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/book/workbook-view-xform.js +51 -0
- package/dist/es5/xlsx/xform/book/workbook-view-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/book/workbook-xform.js +241 -0
- package/dist/es5/xlsx/xform/book/workbook-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/comment/comment-xform.js +103 -0
- package/dist/es5/xlsx/xform/comment/comment-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/comment/comments-xform.js +76 -0
- package/dist/es5/xlsx/xform/comment/comments-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/comment/style/vml-position-xform.js +35 -0
- package/dist/es5/xlsx/xform/comment/style/vml-position-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js +32 -0
- package/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/comment/vml-anchor-xform.js +53 -0
- package/dist/es5/xlsx/xform/comment/vml-anchor-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/comment/vml-client-data-xform.js +97 -0
- package/dist/es5/xlsx/xform/comment/vml-client-data-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/comment/vml-notes-xform.js +107 -0
- package/dist/es5/xlsx/xform/comment/vml-notes-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/comment/vml-shape-xform.js +92 -0
- package/dist/es5/xlsx/xform/comment/vml-shape-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js +61 -0
- package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/composite-xform.js +51 -0
- package/dist/es5/xlsx/xform/composite-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js +30 -0
- package/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js +27 -0
- package/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/core/app-xform.js +93 -0
- package/dist/es5/xlsx/xform/core/app-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/core/content-types-xform.js +127 -0
- package/dist/es5/xlsx/xform/core/content-types-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/core/core-xform.js +158 -0
- package/dist/es5/xlsx/xform/core/core-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/core/relationship-xform.js +23 -0
- package/dist/es5/xlsx/xform/core/relationship-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/core/relationships-xform.js +65 -0
- package/dist/es5/xlsx/xform/core/relationships-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js +47 -0
- package/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/drawing/blip-fill-xform.js +61 -0
- package/dist/es5/xlsx/xform/drawing/blip-fill-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/drawing/blip-xform.js +39 -0
- package/dist/es5/xlsx/xform/drawing/blip-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js +35 -0
- package/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js +62 -0
- package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/drawing/cell-position-xform.js +82 -0
- package/dist/es5/xlsx/xform/drawing/cell-position-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/drawing/drawing-xform.js +98 -0
- package/dist/es5/xlsx/xform/drawing/drawing-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/drawing/ext-lst-xform.js +40 -0
- package/dist/es5/xlsx/xform/drawing/ext-lst-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/drawing/ext-xform.js +38 -0
- package/dist/es5/xlsx/xform/drawing/ext-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/drawing/hlink-click-xform.js +38 -0
- package/dist/es5/xlsx/xform/drawing/hlink-click-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js +59 -0
- package/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js +63 -0
- package/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/drawing/pic-xform.js +67 -0
- package/dist/es5/xlsx/xform/drawing/pic-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/drawing/sp-pr.js +30 -0
- package/dist/es5/xlsx/xform/drawing/sp-pr.js.map +1 -0
- package/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js +62 -0
- package/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/list-xform.js +91 -0
- package/dist/es5/xlsx/xform/list-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/pivot-table/cache-field.js +48 -0
- package/dist/es5/xlsx/xform/pivot-table/cache-field.js.map +1 -0
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +73 -0
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js +93 -0
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js +176 -0
- package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js +40 -0
- package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/cell-xform.js +450 -0
- package/dist/es5/xlsx/xform/sheet/cell-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js +275 -0
- package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js +25 -0
- package/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js +38 -0
- package/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js +45 -0
- package/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js +77 -0
- package/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/cf/databar-xform.js +42 -0
- package/dist/es5/xlsx/xform/sheet/cf/databar-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +71 -0
- package/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/cf/formula-xform.js +22 -0
- package/dist/es5/xlsx/xform/sheet/cf/formula-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js +43 -0
- package/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +28 -0
- package/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +88 -0
- package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +38 -0
- package/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +52 -0
- package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +43 -0
- package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +75 -0
- package/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js +22 -0
- package/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +66 -0
- package/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +22 -0
- package/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/col-xform.js +78 -0
- package/dist/es5/xlsx/xform/sheet/col-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/data-validations-xform.js +247 -0
- package/dist/es5/xlsx/xform/sheet/data-validations-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/dimension-xform.js +28 -0
- package/dist/es5/xlsx/xform/sheet/dimension-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/drawing-xform.js +32 -0
- package/dist/es5/xlsx/xform/sheet/drawing-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/ext-lst-xform.js +69 -0
- package/dist/es5/xlsx/xform/sheet/ext-lst-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/header-footer-xform.js +126 -0
- package/dist/es5/xlsx/xform/sheet/header-footer-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/hyperlink-xform.js +50 -0
- package/dist/es5/xlsx/xform/sheet/hyperlink-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/merge-cell-xform.js +26 -0
- package/dist/es5/xlsx/xform/sheet/merge-cell-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/merges.js +52 -0
- package/dist/es5/xlsx/xform/sheet/merges.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/outline-properties-xform.js +35 -0
- package/dist/es5/xlsx/xform/sheet/outline-properties-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/page-breaks-xform.js +24 -0
- package/dist/es5/xlsx/xform/sheet/page-breaks-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/page-margins-xform.js +46 -0
- package/dist/es5/xlsx/xform/sheet/page-margins-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js +32 -0
- package/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/page-setup-xform.js +99 -0
- package/dist/es5/xlsx/xform/sheet/page-setup-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/picture-xform.js +32 -0
- package/dist/es5/xlsx/xform/sheet/picture-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/print-options-xform.js +45 -0
- package/dist/es5/xlsx/xform/sheet/print-options-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/row-breaks-xform.js +37 -0
- package/dist/es5/xlsx/xform/sheet/row-breaks-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/row-xform.js +128 -0
- package/dist/es5/xlsx/xform/sheet/row-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js +51 -0
- package/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js +83 -0
- package/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js +84 -0
- package/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/sheet-view-xform.js +190 -0
- package/dist/es5/xlsx/xform/sheet/sheet-view-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/table-part-xform.js +32 -0
- package/dist/es5/xlsx/xform/sheet/table-part-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/sheet/worksheet-xform.js +522 -0
- package/dist/es5/xlsx/xform/sheet/worksheet-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/simple/boolean-xform.js +27 -0
- package/dist/es5/xlsx/xform/simple/boolean-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/simple/date-xform.js +58 -0
- package/dist/es5/xlsx/xform/simple/date-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/simple/float-xform.js +47 -0
- package/dist/es5/xlsx/xform/simple/float-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/simple/integer-xform.js +53 -0
- package/dist/es5/xlsx/xform/simple/integer-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/simple/string-xform.js +47 -0
- package/dist/es5/xlsx/xform/simple/string-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/static-xform.js +61 -0
- package/dist/es5/xlsx/xform/static-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/strings/phonetic-text-xform.js +98 -0
- package/dist/es5/xlsx/xform/strings/phonetic-text-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/strings/rich-text-xform.js +92 -0
- package/dist/es5/xlsx/xform/strings/rich-text-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/strings/shared-string-xform.js +99 -0
- package/dist/es5/xlsx/xform/strings/shared-string-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/strings/shared-strings-xform.js +114 -0
- package/dist/es5/xlsx/xform/strings/shared-strings-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/strings/text-xform.js +39 -0
- package/dist/es5/xlsx/xform/strings/text-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/style/alignment-xform.js +139 -0
- package/dist/es5/xlsx/xform/style/alignment-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/style/border-xform.js +185 -0
- package/dist/es5/xlsx/xform/style/border-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/style/color-xform.js +66 -0
- package/dist/es5/xlsx/xform/style/color-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/style/dxf-xform.js +106 -0
- package/dist/es5/xlsx/xform/style/dxf-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/style/fill-xform.js +307 -0
- package/dist/es5/xlsx/xform/style/fill-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/style/font-xform.js +175 -0
- package/dist/es5/xlsx/xform/style/font-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/style/numfmt-xform.js +58 -0
- package/dist/es5/xlsx/xform/style/numfmt-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/style/protection-xform.js +53 -0
- package/dist/es5/xlsx/xform/style/protection-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/style/style-xform.js +118 -0
- package/dist/es5/xlsx/xform/style/style-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/style/styles-xform.js +611 -0
- package/dist/es5/xlsx/xform/style/styles-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/style/underline-xform.js +46 -0
- package/dist/es5/xlsx/xform/style/underline-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/table/auto-filter-xform.js +75 -0
- package/dist/es5/xlsx/xform/table/auto-filter-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/table/custom-filter-xform.js +30 -0
- package/dist/es5/xlsx/xform/table/custom-filter-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/table/filter-column-xform.js +89 -0
- package/dist/es5/xlsx/xform/table/filter-column-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/table/filter-xform.js +28 -0
- package/dist/es5/xlsx/xform/table/filter-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/table/table-column-xform.js +42 -0
- package/dist/es5/xlsx/xform/table/table-column-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/table/table-style-info-xform.js +40 -0
- package/dist/es5/xlsx/xform/table/table-style-info-xform.js.map +1 -0
- package/dist/es5/xlsx/xform/table/table-xform.js +122 -0
- package/dist/es5/xlsx/xform/table/table-xform.js.map +1 -0
- package/dist/es5/xlsx/xlsx.js +775 -0
- package/dist/es5/xlsx/xlsx.js.map +1 -0
- package/dist/es5/xlsx/xml/theme1.js +5 -0
- package/dist/es5/xlsx/xml/theme1.js.map +1 -0
- package/dist/exceljs.bare.js +57759 -0
- package/dist/exceljs.bare.js.map +777 -0
- package/dist/exceljs.bare.min.js +45 -0
- package/dist/exceljs.bare.min.js.map +1 -0
- package/dist/exceljs.js +62398 -0
- package/dist/exceljs.js.map +1095 -0
- package/dist/exceljs.min.js +45 -0
- package/dist/exceljs.min.js.map +1 -0
- package/excel.js +13 -0
- package/index.d.ts +2040 -0
- package/index.ts +2 -0
- package/lib/csv/csv.js +191 -0
- package/lib/csv/line-buffer.js +74 -0
- package/lib/csv/stream-converter.js +135 -0
- package/lib/doc/anchor.js +91 -0
- package/lib/doc/cell.js +1124 -0
- package/lib/doc/column.js +320 -0
- package/lib/doc/data/theme1.json +234 -0
- package/lib/doc/data-validations.js +19 -0
- package/lib/doc/defined-names.js +196 -0
- package/lib/doc/enums.js +48 -0
- package/lib/doc/image.js +59 -0
- package/lib/doc/modelcontainer.js +18 -0
- package/lib/doc/note.js +65 -0
- package/lib/doc/pivot-table.js +132 -0
- package/lib/doc/range.js +257 -0
- package/lib/doc/row.js +415 -0
- package/lib/doc/table.js +465 -0
- package/lib/doc/workbook.js +224 -0
- package/lib/doc/worksheet.js +949 -0
- package/lib/exceljs.bare.js +13 -0
- package/lib/exceljs.browser.js +36 -0
- package/lib/exceljs.nodejs.js +14 -0
- package/lib/stream/xlsx/hyperlink-reader.js +83 -0
- package/lib/stream/xlsx/sheet-comments-writer.js +121 -0
- package/lib/stream/xlsx/sheet-rels-writer.js +119 -0
- package/lib/stream/xlsx/workbook-reader.js +337 -0
- package/lib/stream/xlsx/workbook-writer.js +347 -0
- package/lib/stream/xlsx/worksheet-reader.js +374 -0
- package/lib/stream/xlsx/worksheet-writer.js +717 -0
- package/lib/utils/auto-drain.js +15 -0
- package/lib/utils/browser-buffer-decode.js +14 -0
- package/lib/utils/browser-buffer-encode.js +15 -0
- package/lib/utils/cell-matrix.js +165 -0
- package/lib/utils/col-cache.js +287 -0
- package/lib/utils/copy-style.js +43 -0
- package/lib/utils/encryptor.js +55 -0
- package/lib/utils/iterate-stream.js +48 -0
- package/lib/utils/parse-sax.js +30 -0
- package/lib/utils/shared-formula.js +44 -0
- package/lib/utils/shared-strings.js +35 -0
- package/lib/utils/stream-base64.js +72 -0
- package/lib/utils/stream-buf.js +364 -0
- package/lib/utils/string-buf.js +82 -0
- package/lib/utils/string-builder.js +35 -0
- package/lib/utils/stuttered-pipe.js +67 -0
- package/lib/utils/typed-stack.js +24 -0
- package/lib/utils/under-dash.js +184 -0
- package/lib/utils/utils.js +205 -0
- package/lib/utils/xml-stream.js +169 -0
- package/lib/utils/zip-stream.js +87 -0
- package/lib/xlsx/.rels +11 -0
- package/lib/xlsx/calcChain.xml +6 -0
- package/lib/xlsx/core.xml +7 -0
- package/lib/xlsx/defaultnumformats.js +153 -0
- package/lib/xlsx/rel-type.js +20 -0
- package/lib/xlsx/styles.xml +41 -0
- package/lib/xlsx/workbook.xml +16 -0
- package/lib/xlsx/xform/base-xform.js +145 -0
- package/lib/xlsx/xform/book/defined-name-xform.js +91 -0
- package/lib/xlsx/xform/book/sheet-xform.js +34 -0
- package/lib/xlsx/xform/book/workbook-calc-properties-xform.js +26 -0
- package/lib/xlsx/xform/book/workbook-pivot-cache-xform.js +29 -0
- package/lib/xlsx/xform/book/workbook-properties-xform.js +29 -0
- package/lib/xlsx/xform/book/workbook-view-xform.js +53 -0
- package/lib/xlsx/xform/book/workbook-xform.js +259 -0
- package/lib/xlsx/xform/comment/comment-xform.js +105 -0
- package/lib/xlsx/xform/comment/comments-xform.js +82 -0
- package/lib/xlsx/xform/comment/style/vml-position-xform.js +39 -0
- package/lib/xlsx/xform/comment/style/vml-protection-xform.js +36 -0
- package/lib/xlsx/xform/comment/vml-anchor-xform.js +60 -0
- package/lib/xlsx/xform/comment/vml-client-data-xform.js +95 -0
- package/lib/xlsx/xform/comment/vml-notes-xform.js +107 -0
- package/lib/xlsx/xform/comment/vml-shape-xform.js +95 -0
- package/lib/xlsx/xform/comment/vml-textbox-xform.js +64 -0
- package/lib/xlsx/xform/composite-xform.js +56 -0
- package/lib/xlsx/xform/core/app-heading-pairs-xform.js +32 -0
- package/lib/xlsx/xform/core/app-titles-of-parts-xform.js +28 -0
- package/lib/xlsx/xform/core/app-xform.js +100 -0
- package/lib/xlsx/xform/core/content-types-xform.js +135 -0
- package/lib/xlsx/xform/core/core-xform.js +136 -0
- package/lib/xlsx/xform/core/relationship-xform.js +25 -0
- package/lib/xlsx/xform/core/relationships-xform.js +73 -0
- package/lib/xlsx/xform/drawing/base-cell-anchor-xform.js +48 -0
- package/lib/xlsx/xform/drawing/blip-fill-xform.js +71 -0
- package/lib/xlsx/xform/drawing/blip-xform.js +42 -0
- package/lib/xlsx/xform/drawing/c-nv-pic-pr-xform.js +38 -0
- package/lib/xlsx/xform/drawing/c-nv-pr-xform.js +68 -0
- package/lib/xlsx/xform/drawing/cell-position-xform.js +77 -0
- package/lib/xlsx/xform/drawing/drawing-xform.js +109 -0
- package/lib/xlsx/xform/drawing/ext-lst-xform.js +43 -0
- package/lib/xlsx/xform/drawing/ext-xform.js +44 -0
- package/lib/xlsx/xform/drawing/hlink-click-xform.js +41 -0
- package/lib/xlsx/xform/drawing/nv-pic-pr-xform.js +65 -0
- package/lib/xlsx/xform/drawing/one-cell-anchor-xform.js +63 -0
- package/lib/xlsx/xform/drawing/pic-xform.js +77 -0
- package/lib/xlsx/xform/drawing/sp-pr.js +17 -0
- package/lib/xlsx/xform/drawing/two-cell-anchor-xform.js +62 -0
- package/lib/xlsx/xform/list-xform.js +95 -0
- package/lib/xlsx/xform/pivot-table/cache-field.js +43 -0
- package/lib/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +77 -0
- package/lib/xlsx/xform/pivot-table/pivot-cache-records-xform.js +103 -0
- package/lib/xlsx/xform/pivot-table/pivot-table-xform.js +189 -0
- package/lib/xlsx/xform/sheet/auto-filter-xform.js +38 -0
- package/lib/xlsx/xform/sheet/cell-xform.js +498 -0
- package/lib/xlsx/xform/sheet/cf/cf-rule-xform.js +301 -0
- package/lib/xlsx/xform/sheet/cf/cfvo-xform.js +27 -0
- package/lib/xlsx/xform/sheet/cf/color-scale-xform.js +45 -0
- package/lib/xlsx/xform/sheet/cf/conditional-formatting-xform.js +48 -0
- package/lib/xlsx/xform/sheet/cf/conditional-formattings-xform.js +92 -0
- package/lib/xlsx/xform/sheet/cf/databar-xform.js +49 -0
- package/lib/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +87 -0
- package/lib/xlsx/xform/sheet/cf/formula-xform.js +25 -0
- package/lib/xlsx/xform/sheet/cf/icon-set-xform.js +47 -0
- package/lib/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +27 -0
- package/lib/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +98 -0
- package/lib/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +43 -0
- package/lib/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +62 -0
- package/lib/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +50 -0
- package/lib/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +98 -0
- package/lib/xlsx/xform/sheet/cf-ext/f-ext-xform.js +25 -0
- package/lib/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +73 -0
- package/lib/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +25 -0
- package/lib/xlsx/xform/sheet/col-xform.js +86 -0
- package/lib/xlsx/xform/sheet/data-validations-xform.js +257 -0
- package/lib/xlsx/xform/sheet/dimension-xform.js +29 -0
- package/lib/xlsx/xform/sheet/drawing-xform.js +33 -0
- package/lib/xlsx/xform/sheet/ext-lst-xform.js +86 -0
- package/lib/xlsx/xform/sheet/header-footer-xform.js +146 -0
- package/lib/xlsx/xform/sheet/hyperlink-xform.js +54 -0
- package/lib/xlsx/xform/sheet/merge-cell-xform.js +27 -0
- package/lib/xlsx/xform/sheet/merges.js +56 -0
- package/lib/xlsx/xform/sheet/outline-properties-xform.js +43 -0
- package/lib/xlsx/xform/sheet/page-breaks-xform.js +27 -0
- package/lib/xlsx/xform/sheet/page-margins-xform.js +49 -0
- package/lib/xlsx/xform/sheet/page-setup-properties-xform.js +35 -0
- package/lib/xlsx/xform/sheet/page-setup-xform.js +103 -0
- package/lib/xlsx/xform/sheet/picture-xform.js +33 -0
- package/lib/xlsx/xform/sheet/print-options-xform.js +49 -0
- package/lib/xlsx/xform/sheet/row-breaks-xform.js +39 -0
- package/lib/xlsx/xform/sheet/row-xform.js +142 -0
- package/lib/xlsx/xform/sheet/sheet-format-properties-xform.js +55 -0
- package/lib/xlsx/xform/sheet/sheet-properties-xform.js +90 -0
- package/lib/xlsx/xform/sheet/sheet-protection-xform.js +89 -0
- package/lib/xlsx/xform/sheet/sheet-view-xform.js +202 -0
- package/lib/xlsx/xform/sheet/table-part-xform.js +33 -0
- package/lib/xlsx/xform/sheet/worksheet-xform.js +548 -0
- package/lib/xlsx/xform/simple/boolean-xform.js +31 -0
- package/lib/xlsx/xform/simple/date-xform.js +66 -0
- package/lib/xlsx/xform/simple/float-xform.js +51 -0
- package/lib/xlsx/xform/simple/integer-xform.js +57 -0
- package/lib/xlsx/xform/simple/string-xform.js +51 -0
- package/lib/xlsx/xform/static-xform.js +64 -0
- package/lib/xlsx/xform/strings/phonetic-text-xform.js +98 -0
- package/lib/xlsx/xform/strings/rich-text-xform.js +101 -0
- package/lib/xlsx/xform/strings/shared-string-xform.js +102 -0
- package/lib/xlsx/xform/strings/shared-strings-xform.js +127 -0
- package/lib/xlsx/xform/strings/text-xform.js +44 -0
- package/lib/xlsx/xform/style/alignment-xform.js +172 -0
- package/lib/xlsx/xform/style/border-xform.js +207 -0
- package/lib/xlsx/xform/style/color-xform.js +63 -0
- package/lib/xlsx/xform/style/dxf-xform.js +111 -0
- package/lib/xlsx/xform/style/fill-xform.js +364 -0
- package/lib/xlsx/xform/style/font-xform.js +102 -0
- package/lib/xlsx/xform/style/numfmt-xform.js +63 -0
- package/lib/xlsx/xform/style/protection-xform.js +60 -0
- package/lib/xlsx/xform/style/style-xform.js +125 -0
- package/lib/xlsx/xform/style/styles-xform.js +527 -0
- package/lib/xlsx/xform/style/underline-xform.js +47 -0
- package/lib/xlsx/xform/table/auto-filter-xform.js +81 -0
- package/lib/xlsx/xform/table/custom-filter-xform.js +33 -0
- package/lib/xlsx/xform/table/filter-column-xform.js +96 -0
- package/lib/xlsx/xform/table/filter-xform.js +31 -0
- package/lib/xlsx/xform/table/table-column-xform.js +44 -0
- package/lib/xlsx/xform/table/table-style-info-xform.js +41 -0
- package/lib/xlsx/xform/table/table-xform.js +131 -0
- package/lib/xlsx/xlsx.js +774 -0
- package/lib/xlsx/xml/theme1.js +3 -0
- package/lib/xlsx/xml/theme1.xml +318 -0
- package/package.json +149 -0
package/index.d.ts
ADDED
|
@@ -0,0 +1,2040 @@
|
|
|
1
|
+
declare interface Buffer extends ArrayBuffer { }
|
|
2
|
+
|
|
3
|
+
export declare enum RelationshipType {
|
|
4
|
+
None = 0,
|
|
5
|
+
OfficeDocument = 1,
|
|
6
|
+
Worksheet = 2,
|
|
7
|
+
CalcChain = 3,
|
|
8
|
+
SharedStrings = 4,
|
|
9
|
+
Styles = 5,
|
|
10
|
+
Theme = 6,
|
|
11
|
+
Hyperlink = 7
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export declare enum DocumentType {
|
|
15
|
+
Xlsx = 1
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const enum PaperSize {
|
|
19
|
+
Legal = 5,
|
|
20
|
+
Executive = 7,
|
|
21
|
+
A4 = 9,
|
|
22
|
+
A5 = 11,
|
|
23
|
+
B5 = 13,
|
|
24
|
+
Envelope_10 = 20,
|
|
25
|
+
Envelope_DL = 27,
|
|
26
|
+
Envelope_C5 = 28,
|
|
27
|
+
Envelope_B5 = 34,
|
|
28
|
+
Envelope_Monarch = 37,
|
|
29
|
+
Double_Japan_Postcard_Rotated = 82,
|
|
30
|
+
K16_197x273_mm = 119,
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface WorksheetViewCommon {
|
|
34
|
+
/**
|
|
35
|
+
* Sets the worksheet view's orientation to right-to-left, `false` by default
|
|
36
|
+
*/
|
|
37
|
+
rightToLeft: boolean;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* The currently selected cell
|
|
41
|
+
*/
|
|
42
|
+
activeCell: string;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Shows or hides the ruler in Page Layout, `true` by default
|
|
46
|
+
*/
|
|
47
|
+
showRuler: boolean;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Shows or hides the row and column headers (e.g. A1, B1 at the top and 1,2,3 on the left,
|
|
51
|
+
* `true` by default
|
|
52
|
+
*/
|
|
53
|
+
showRowColHeaders: boolean;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Shows or hides the gridlines (shown for cells where borders have not been defined),
|
|
57
|
+
* `true` by default
|
|
58
|
+
*/
|
|
59
|
+
showGridLines: boolean;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Percentage zoom to use for the view, `100` by default
|
|
63
|
+
*/
|
|
64
|
+
zoomScale: number;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Normal zoom for the view, `100` by default
|
|
68
|
+
*/
|
|
69
|
+
zoomScaleNormal: number;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export interface WorksheetViewNormal {
|
|
73
|
+
/**
|
|
74
|
+
* Controls the view state
|
|
75
|
+
*/
|
|
76
|
+
state: 'normal';
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Presentation style
|
|
80
|
+
*/
|
|
81
|
+
style: 'pageBreakPreview' | 'pageLayout';
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export interface WorksheetViewFrozen {
|
|
85
|
+
/**
|
|
86
|
+
* Where a number of rows and columns to the top and left are frozen in place.
|
|
87
|
+
* Only the bottom left section will scroll
|
|
88
|
+
*/
|
|
89
|
+
state: 'frozen';
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Presentation style
|
|
93
|
+
*/
|
|
94
|
+
style?: 'pageBreakPreview';
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* How many columns to freeze. To freeze rows only, set this to 0 or undefined
|
|
98
|
+
*/
|
|
99
|
+
xSplit?: number;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* How many rows to freeze. To freeze columns only, set this to 0 or undefined
|
|
103
|
+
*/
|
|
104
|
+
ySplit?: number;
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Which cell will be top-left in the bottom-right pane. Note: cannot be a frozen cell.
|
|
108
|
+
* Defaults to first unfrozen cell
|
|
109
|
+
*/
|
|
110
|
+
topLeftCell?: string;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export interface WorksheetViewSplit {
|
|
114
|
+
/**
|
|
115
|
+
* Where the view is split into 4 sections, each semi-independently scrollable.
|
|
116
|
+
*/
|
|
117
|
+
state: 'split';
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Presentation style
|
|
121
|
+
*/
|
|
122
|
+
style?: 'pageBreakPreview' | 'pageLayout';
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* How many points from the left to place the splitter.
|
|
126
|
+
* To split vertically, set this to 0 or undefined
|
|
127
|
+
*/
|
|
128
|
+
xSplit?: number;
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* How many points from the top to place the splitter.
|
|
132
|
+
* To split horizontally, set this to 0 or undefined
|
|
133
|
+
*/
|
|
134
|
+
ySplit?: number;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Which cell will be top-left in the bottom-right pane
|
|
138
|
+
*/
|
|
139
|
+
topLeftCell?: string;
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Which pane will be active
|
|
143
|
+
*/
|
|
144
|
+
activePane?: 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight';
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export type WorksheetView =
|
|
148
|
+
& WorksheetViewCommon
|
|
149
|
+
& (WorksheetViewNormal | WorksheetViewFrozen | WorksheetViewSplit);
|
|
150
|
+
|
|
151
|
+
export interface WorkbookView {
|
|
152
|
+
x: number;
|
|
153
|
+
y: number;
|
|
154
|
+
width: number;
|
|
155
|
+
height: number;
|
|
156
|
+
firstSheet: number;
|
|
157
|
+
activeTab: number;
|
|
158
|
+
visibility: string;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export type FillPatterns =
|
|
162
|
+
| 'none' | 'solid'
|
|
163
|
+
| 'darkVertical' | 'darkHorizontal' | 'darkGrid' | 'darkTrellis' | 'darkDown' | 'darkUp'
|
|
164
|
+
| 'lightVertical' | 'lightHorizontal' | 'lightGrid' | 'lightTrellis' | 'lightDown' | 'lightUp'
|
|
165
|
+
| 'darkGray' | 'mediumGray' | 'lightGray' | 'gray125' | 'gray0625';
|
|
166
|
+
|
|
167
|
+
export interface FillPattern {
|
|
168
|
+
type: 'pattern';
|
|
169
|
+
pattern: FillPatterns;
|
|
170
|
+
fgColor?: Partial<Color>;
|
|
171
|
+
bgColor?: Partial<Color>;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export interface GradientStop {
|
|
175
|
+
position: number;
|
|
176
|
+
color: Partial<Color>;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
export interface FillGradientAngle {
|
|
180
|
+
type: 'gradient';
|
|
181
|
+
gradient: 'angle';
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* For 'angle' gradient, specifies the direction of the gradient. 0 is from the left to the right.
|
|
185
|
+
* Values from 1 - 359 rotates the direction clockwise
|
|
186
|
+
*/
|
|
187
|
+
degree: number;
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Specifies the gradient colour sequence. Is an array of objects containing position and
|
|
191
|
+
* color starting with position 0 and ending with position 1.
|
|
192
|
+
* Intermediary positions may be used to specify other colours on the path.
|
|
193
|
+
*/
|
|
194
|
+
stops: GradientStop[];
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
export interface FillGradientPath {
|
|
198
|
+
type: 'gradient';
|
|
199
|
+
gradient: 'path';
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* For 'path' gradient. Specifies the relative coordinates for the start of the path.
|
|
203
|
+
* 'left' and 'top' values range from 0 to 1
|
|
204
|
+
*/
|
|
205
|
+
center: { left: number; top: number };
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Specifies the gradient colour sequence. Is an array of objects containing position and
|
|
209
|
+
* color starting with position 0 and ending with position 1.
|
|
210
|
+
* Intermediary positions may be used to specify other colours on the path.
|
|
211
|
+
*/
|
|
212
|
+
stops: GradientStop[];
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
export type Fill = FillPattern | FillGradientAngle | FillGradientPath;
|
|
216
|
+
|
|
217
|
+
export interface Font {
|
|
218
|
+
name: string;
|
|
219
|
+
size: number;
|
|
220
|
+
family: number;
|
|
221
|
+
scheme: 'minor' | 'major' | 'none';
|
|
222
|
+
charset: number;
|
|
223
|
+
color: Partial<Color>;
|
|
224
|
+
bold: boolean;
|
|
225
|
+
italic: boolean;
|
|
226
|
+
underline: boolean | 'none' | 'single' | 'double' | 'singleAccounting' | 'doubleAccounting';
|
|
227
|
+
vertAlign: 'superscript' | 'subscript';
|
|
228
|
+
strike: boolean;
|
|
229
|
+
outline: boolean;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
export type BorderStyle =
|
|
233
|
+
| 'thin' | 'dotted' | 'hair' | 'medium' | 'double' | 'thick' | 'dashed' | 'dashDot'
|
|
234
|
+
| 'dashDotDot' | 'slantDashDot' | 'mediumDashed' | 'mediumDashDotDot' | 'mediumDashDot';
|
|
235
|
+
|
|
236
|
+
export interface Color {
|
|
237
|
+
/**
|
|
238
|
+
* Hex string for alpha-red-green-blue e.g. FF00FF00
|
|
239
|
+
*/
|
|
240
|
+
argb: string;
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Choose a theme by index
|
|
244
|
+
*/
|
|
245
|
+
theme: number;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
export interface Border {
|
|
249
|
+
style: BorderStyle;
|
|
250
|
+
color: Partial<Color>;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
export interface BorderDiagonal extends Border {
|
|
254
|
+
up: boolean;
|
|
255
|
+
down: boolean;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
export interface Borders {
|
|
259
|
+
top: Partial<Border>;
|
|
260
|
+
left: Partial<Border>;
|
|
261
|
+
bottom: Partial<Border>;
|
|
262
|
+
right: Partial<Border>;
|
|
263
|
+
diagonal: Partial<BorderDiagonal>;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
export interface Margins {
|
|
267
|
+
top: number;
|
|
268
|
+
left: number;
|
|
269
|
+
bottom: number;
|
|
270
|
+
right: number;
|
|
271
|
+
header: number;
|
|
272
|
+
footer: number;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
export declare enum ReadingOrder {
|
|
276
|
+
LeftToRight = 1,
|
|
277
|
+
RightToLeft = 2,
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
export interface Alignment {
|
|
281
|
+
horizontal: 'left' | 'center' | 'right' | 'fill' | 'justify' | 'centerContinuous' | 'distributed';
|
|
282
|
+
vertical: 'top' | 'middle' | 'bottom' | 'distributed' | 'justify';
|
|
283
|
+
wrapText: boolean;
|
|
284
|
+
shrinkToFit: boolean;
|
|
285
|
+
indent: number;
|
|
286
|
+
readingOrder: 'rtl' | 'ltr';
|
|
287
|
+
textRotation: number | 'vertical';
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
export interface Protection {
|
|
291
|
+
locked: boolean;
|
|
292
|
+
hidden: boolean;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
export interface Style {
|
|
296
|
+
numFmt: string;
|
|
297
|
+
font: Partial<Font>;
|
|
298
|
+
alignment: Partial<Alignment>;
|
|
299
|
+
protection: Partial<Protection>;
|
|
300
|
+
border: Partial<Borders>;
|
|
301
|
+
fill: Fill;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
export type DataValidationOperator =
|
|
305
|
+
| 'between' | 'notBetween' | 'equal' | 'notEqual' | 'greaterThan' | 'lessThan'
|
|
306
|
+
| 'greaterThanOrEqual' | 'lessThanOrEqual';
|
|
307
|
+
|
|
308
|
+
export interface DataValidation {
|
|
309
|
+
type: 'list' | 'whole' | 'decimal' | 'date' | 'textLength' | 'custom';
|
|
310
|
+
formulae: any[];
|
|
311
|
+
allowBlank?: boolean;
|
|
312
|
+
operator?: DataValidationOperator;
|
|
313
|
+
error?: string;
|
|
314
|
+
errorTitle?: string;
|
|
315
|
+
errorStyle?: string;
|
|
316
|
+
prompt?: string;
|
|
317
|
+
promptTitle?: string;
|
|
318
|
+
showErrorMessage?: boolean;
|
|
319
|
+
showInputMessage?: boolean;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
export declare enum ErrorValue {
|
|
323
|
+
NotApplicable = '#N/A',
|
|
324
|
+
Ref = '#REF!',
|
|
325
|
+
Name = '#NAME?',
|
|
326
|
+
DivZero = '#DIV/0!',
|
|
327
|
+
Null = '#NULL!',
|
|
328
|
+
Value = '#VALUE!',
|
|
329
|
+
Num = '#NUM!',
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
export interface CellErrorValue {
|
|
333
|
+
error: '#N/A' | '#REF!' | '#NAME?' | '#DIV/0!' | '#NULL!' | '#VALUE!' | '#NUM!';
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
export interface RichText {
|
|
337
|
+
text: string;
|
|
338
|
+
font?: Partial<Font>;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
export interface CellRichTextValue {
|
|
342
|
+
richText: RichText[];
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
export interface CellHyperlinkValue {
|
|
346
|
+
text: string;
|
|
347
|
+
hyperlink: string;
|
|
348
|
+
tooltip?: string;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
export interface CellFormulaValue {
|
|
352
|
+
formula: string;
|
|
353
|
+
result?: number | string | boolean | Date | CellErrorValue;
|
|
354
|
+
date1904?: boolean;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
export interface CellSharedFormulaValue {
|
|
358
|
+
sharedFormula: string;
|
|
359
|
+
readonly formula?: string;
|
|
360
|
+
result?: number | string | boolean | Date | CellErrorValue;
|
|
361
|
+
date1904?: boolean;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
export declare enum ValueType {
|
|
365
|
+
Null = 0,
|
|
366
|
+
Merge = 1,
|
|
367
|
+
Number = 2,
|
|
368
|
+
String = 3,
|
|
369
|
+
Date = 4,
|
|
370
|
+
Hyperlink = 5,
|
|
371
|
+
Formula = 6,
|
|
372
|
+
SharedString = 7,
|
|
373
|
+
RichText = 8,
|
|
374
|
+
Boolean = 9,
|
|
375
|
+
Error = 10
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
export declare enum FormulaType {
|
|
379
|
+
None = 0,
|
|
380
|
+
Master = 1,
|
|
381
|
+
Shared = 2
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
export type CellValue =
|
|
385
|
+
| null | number | string | boolean | Date | undefined
|
|
386
|
+
| CellErrorValue
|
|
387
|
+
| CellRichTextValue | CellHyperlinkValue
|
|
388
|
+
| CellFormulaValue | CellSharedFormulaValue;
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
export interface CommentMargins {
|
|
392
|
+
insetmode: 'auto' | 'custom';
|
|
393
|
+
inset: Number[];
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
export interface CommentProtection {
|
|
397
|
+
locked: 'True' | 'False';
|
|
398
|
+
lockText: 'True' | 'False';
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
export type CommentEditAs = 'twoCells' | 'oneCells' | 'absolute';
|
|
402
|
+
|
|
403
|
+
export interface Comment {
|
|
404
|
+
texts?: RichText[];
|
|
405
|
+
margins?: Partial<CommentMargins>;
|
|
406
|
+
protection?: Partial<CommentProtection>;
|
|
407
|
+
editAs?: CommentEditAs;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
export interface CellModel {
|
|
411
|
+
address: Address;
|
|
412
|
+
style: Style;
|
|
413
|
+
type: ValueType;
|
|
414
|
+
text?: string;
|
|
415
|
+
hyperlink?: string;
|
|
416
|
+
value?: CellValue;
|
|
417
|
+
master: string;
|
|
418
|
+
formula?: string;
|
|
419
|
+
sharedFormula?: string;
|
|
420
|
+
result?: string | number | any;
|
|
421
|
+
comment: Comment;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
export interface Cell extends Style, Address {
|
|
425
|
+
readonly worksheet: Worksheet;
|
|
426
|
+
readonly workbook: Workbook;
|
|
427
|
+
|
|
428
|
+
readonly effectiveType: ValueType;
|
|
429
|
+
readonly isMerged: boolean;
|
|
430
|
+
readonly master: Cell;
|
|
431
|
+
readonly isHyperlink: boolean;
|
|
432
|
+
readonly hyperlink: string; // todo
|
|
433
|
+
readonly text: string;
|
|
434
|
+
readonly fullAddress: {
|
|
435
|
+
sheetName: string;
|
|
436
|
+
address: string;
|
|
437
|
+
row: number;
|
|
438
|
+
col: number;
|
|
439
|
+
};
|
|
440
|
+
model: CellModel;
|
|
441
|
+
/**
|
|
442
|
+
* Assign (or get) a name for a cell (will overwrite any other names that cell had)
|
|
443
|
+
*/
|
|
444
|
+
name: string;
|
|
445
|
+
|
|
446
|
+
/**
|
|
447
|
+
* Assign (or get) an array of names for a cell (cells can have more than one name)
|
|
448
|
+
*/
|
|
449
|
+
names: string[];
|
|
450
|
+
|
|
451
|
+
/**
|
|
452
|
+
* Cells can define what values are valid or not and provide
|
|
453
|
+
* prompting to the user to help guide them.
|
|
454
|
+
*/
|
|
455
|
+
dataValidation: DataValidation;
|
|
456
|
+
|
|
457
|
+
/**
|
|
458
|
+
* Value of the cell
|
|
459
|
+
*/
|
|
460
|
+
value: CellValue;
|
|
461
|
+
|
|
462
|
+
/**
|
|
463
|
+
* comment of the cell
|
|
464
|
+
*/
|
|
465
|
+
note: string | Comment;
|
|
466
|
+
|
|
467
|
+
/**
|
|
468
|
+
* convenience getter to access the formula
|
|
469
|
+
*/
|
|
470
|
+
readonly formula: string;
|
|
471
|
+
|
|
472
|
+
/**
|
|
473
|
+
* convenience getter to access the formula result
|
|
474
|
+
*/
|
|
475
|
+
readonly result: number | string | Date;
|
|
476
|
+
|
|
477
|
+
/**
|
|
478
|
+
* The type of the cell's value
|
|
479
|
+
*/
|
|
480
|
+
readonly type: ValueType;
|
|
481
|
+
|
|
482
|
+
/**
|
|
483
|
+
* The type of the cell's formula
|
|
484
|
+
*/
|
|
485
|
+
readonly formulaType: FormulaType;
|
|
486
|
+
|
|
487
|
+
/**
|
|
488
|
+
* The styles of the cell
|
|
489
|
+
*/
|
|
490
|
+
style: Partial<Style>;
|
|
491
|
+
|
|
492
|
+
addName(name: string): void;
|
|
493
|
+
|
|
494
|
+
/**
|
|
495
|
+
* Remove a name from a cell
|
|
496
|
+
*/
|
|
497
|
+
removeName(name: string): void;
|
|
498
|
+
removeAllNames(): void;
|
|
499
|
+
|
|
500
|
+
destroy(): void;
|
|
501
|
+
toCsvString(): string;
|
|
502
|
+
release(): void;
|
|
503
|
+
addMergeRef(): void;
|
|
504
|
+
releaseMergeRef(): void;
|
|
505
|
+
merge(master: Cell, ignoreStyle?: boolean): void;
|
|
506
|
+
unmerge(): void;
|
|
507
|
+
isMergedTo(master: Cell): boolean;
|
|
508
|
+
toString(): string;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
export interface RowModel {
|
|
512
|
+
cells: CellModel[];
|
|
513
|
+
number: number;
|
|
514
|
+
min: number;
|
|
515
|
+
max: number;
|
|
516
|
+
height: number;
|
|
517
|
+
style: Partial<Style>;
|
|
518
|
+
hidden: boolean;
|
|
519
|
+
outlineLevel: number;
|
|
520
|
+
collapsed: boolean;
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
export interface Row extends Style {
|
|
524
|
+
readonly worksheet: Worksheet;
|
|
525
|
+
readonly hasValues: boolean;
|
|
526
|
+
readonly dimensions: number;
|
|
527
|
+
model: Partial<RowModel> | null;
|
|
528
|
+
/**
|
|
529
|
+
* Set a specific row height
|
|
530
|
+
*/
|
|
531
|
+
height: number;
|
|
532
|
+
|
|
533
|
+
/**
|
|
534
|
+
* Make row hidden
|
|
535
|
+
*/
|
|
536
|
+
hidden: boolean;
|
|
537
|
+
|
|
538
|
+
/**
|
|
539
|
+
* Get a row as a sparse array
|
|
540
|
+
*/
|
|
541
|
+
// readonly values: CellValue[];
|
|
542
|
+
values: CellValue[] | { [key: string]: CellValue };
|
|
543
|
+
|
|
544
|
+
/**
|
|
545
|
+
* Set an outline level for rows
|
|
546
|
+
*/
|
|
547
|
+
outlineLevel?: number;
|
|
548
|
+
|
|
549
|
+
/**
|
|
550
|
+
* The row number
|
|
551
|
+
*/
|
|
552
|
+
readonly number: number;
|
|
553
|
+
|
|
554
|
+
/**
|
|
555
|
+
* Indicate the collapsed state based on outlineLevel
|
|
556
|
+
*/
|
|
557
|
+
readonly collapsed: boolean;
|
|
558
|
+
|
|
559
|
+
/**
|
|
560
|
+
* Number of cells including empty ones
|
|
561
|
+
*/
|
|
562
|
+
readonly cellCount: number;
|
|
563
|
+
|
|
564
|
+
/**
|
|
565
|
+
* Number of non-empty cells
|
|
566
|
+
*/
|
|
567
|
+
readonly actualCellCount: number;
|
|
568
|
+
|
|
569
|
+
/**
|
|
570
|
+
* Get cell by number, column letter or column key
|
|
571
|
+
*/
|
|
572
|
+
getCell(indexOrKey: number | string): Cell;
|
|
573
|
+
|
|
574
|
+
findCell(colNumber: number): Cell | undefined;
|
|
575
|
+
|
|
576
|
+
getCellEx(address: Address): Cell;
|
|
577
|
+
|
|
578
|
+
/**
|
|
579
|
+
* Iterate over all non-null cells in a row
|
|
580
|
+
*/
|
|
581
|
+
eachCell(callback: (cell: Cell, colNumber: number) => void): void;
|
|
582
|
+
|
|
583
|
+
/**
|
|
584
|
+
* Iterate over all cells in a row (including empty cells)
|
|
585
|
+
*/
|
|
586
|
+
eachCell(opt: { includeEmpty: boolean }, callback: (cell: Cell, colNumber: number) => void): void;
|
|
587
|
+
|
|
588
|
+
/**
|
|
589
|
+
* Cut one or more cells (cells to the right are shifted left)
|
|
590
|
+
*
|
|
591
|
+
* Note: this operation will not affect other rows
|
|
592
|
+
*/
|
|
593
|
+
splice(start: number, count: number, ...insert: any[]): void;
|
|
594
|
+
|
|
595
|
+
/**
|
|
596
|
+
* Commit a completed row to stream
|
|
597
|
+
*/
|
|
598
|
+
commit(): void;
|
|
599
|
+
destroy(): void;
|
|
600
|
+
addPageBreak(lft?: number, rght?: number): void;
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
export interface Column {
|
|
604
|
+
/**
|
|
605
|
+
* Can be a string to set one row high header or an array to set multi-row high header
|
|
606
|
+
*/
|
|
607
|
+
header?: string | string[];
|
|
608
|
+
|
|
609
|
+
/**
|
|
610
|
+
* The name of the properties associated with this column in each row
|
|
611
|
+
*/
|
|
612
|
+
key?: string;
|
|
613
|
+
|
|
614
|
+
/**
|
|
615
|
+
* The width of the column
|
|
616
|
+
*/
|
|
617
|
+
width?: number;
|
|
618
|
+
|
|
619
|
+
/**
|
|
620
|
+
* Set an outline level for columns
|
|
621
|
+
*/
|
|
622
|
+
outlineLevel: number;
|
|
623
|
+
|
|
624
|
+
/**
|
|
625
|
+
* Hides the column
|
|
626
|
+
*/
|
|
627
|
+
hidden: boolean;
|
|
628
|
+
|
|
629
|
+
/**
|
|
630
|
+
* Styles applied to the column
|
|
631
|
+
*/
|
|
632
|
+
style: Partial<Style>;
|
|
633
|
+
|
|
634
|
+
/**
|
|
635
|
+
* The cell values in the column
|
|
636
|
+
*/
|
|
637
|
+
values: CellValue;
|
|
638
|
+
|
|
639
|
+
/**
|
|
640
|
+
* Column letter key
|
|
641
|
+
*/
|
|
642
|
+
readonly letter: string;
|
|
643
|
+
readonly number: number;
|
|
644
|
+
readonly worksheet: Worksheet;
|
|
645
|
+
readonly isCustomWidth: boolean;
|
|
646
|
+
readonly headers: string[];
|
|
647
|
+
readonly isDefault: boolean;
|
|
648
|
+
readonly headerCount: number;
|
|
649
|
+
|
|
650
|
+
/**
|
|
651
|
+
* Below properties read from style
|
|
652
|
+
*/
|
|
653
|
+
border?: Partial<Borders>;
|
|
654
|
+
fill?: Fill;
|
|
655
|
+
numFmt?: string;
|
|
656
|
+
font?: Partial<Font>;
|
|
657
|
+
alignment?: Partial<Alignment>;
|
|
658
|
+
protection?: Partial<Protection>;
|
|
659
|
+
|
|
660
|
+
toString(): string
|
|
661
|
+
equivalentTo(other: Column): boolean
|
|
662
|
+
|
|
663
|
+
/**
|
|
664
|
+
* indicate the collapsed state based on outlineLevel
|
|
665
|
+
*/
|
|
666
|
+
readonly collapsed: boolean;
|
|
667
|
+
|
|
668
|
+
/**
|
|
669
|
+
* Iterate over all current cells in this column
|
|
670
|
+
*/
|
|
671
|
+
eachCell(callback: (cell: Cell, rowNumber: number) => void): void;
|
|
672
|
+
|
|
673
|
+
/**
|
|
674
|
+
* Iterate over all current cells in this column including empty cells
|
|
675
|
+
*/
|
|
676
|
+
eachCell(opt: { includeEmpty: boolean }, callback: (cell: Cell, rowNumber: number) => void): void;
|
|
677
|
+
|
|
678
|
+
defn: any; //todo
|
|
679
|
+
}
|
|
680
|
+
export interface PageSetup {
|
|
681
|
+
/**
|
|
682
|
+
* Whitespace on the borders of the page. Units are inches.
|
|
683
|
+
*/
|
|
684
|
+
margins: Margins;
|
|
685
|
+
|
|
686
|
+
/**
|
|
687
|
+
* Orientation of the page - i.e. taller (`'portrait'`) or wider (`'landscape'`).
|
|
688
|
+
*
|
|
689
|
+
* `'portrait'` by default
|
|
690
|
+
*/
|
|
691
|
+
orientation: 'portrait' | 'landscape';
|
|
692
|
+
|
|
693
|
+
/**
|
|
694
|
+
* Horizontal Dots per Inch. Default value is 4294967295
|
|
695
|
+
*/
|
|
696
|
+
horizontalDpi: number;
|
|
697
|
+
|
|
698
|
+
/**
|
|
699
|
+
* Vertical Dots per Inch. Default value is 4294967295
|
|
700
|
+
*/
|
|
701
|
+
verticalDpi: number;
|
|
702
|
+
|
|
703
|
+
/**
|
|
704
|
+
* Whether to use fitToWidth and fitToHeight or scale settings.
|
|
705
|
+
*
|
|
706
|
+
* Default is based on presence of these settings in the pageSetup object - if both are present,
|
|
707
|
+
* scale wins (i.e. default will be false)
|
|
708
|
+
*/
|
|
709
|
+
fitToPage: boolean;
|
|
710
|
+
|
|
711
|
+
/**
|
|
712
|
+
* How many pages wide the sheet should print on to. Active when fitToPage is true
|
|
713
|
+
*
|
|
714
|
+
* Default is 1
|
|
715
|
+
*/
|
|
716
|
+
fitToWidth: number;
|
|
717
|
+
|
|
718
|
+
/**
|
|
719
|
+
* How many pages high the sheet should print on to. Active when fitToPage is true
|
|
720
|
+
*
|
|
721
|
+
* Default is 1
|
|
722
|
+
*/
|
|
723
|
+
fitToHeight: number;
|
|
724
|
+
|
|
725
|
+
/**
|
|
726
|
+
* Percentage value to increase or reduce the size of the print. Active when fitToPage is false
|
|
727
|
+
*
|
|
728
|
+
* Default is 100
|
|
729
|
+
*/
|
|
730
|
+
scale: number;
|
|
731
|
+
|
|
732
|
+
/**
|
|
733
|
+
* Which order to print the pages.
|
|
734
|
+
*
|
|
735
|
+
* Default is `downThenOver`
|
|
736
|
+
*/
|
|
737
|
+
pageOrder: 'downThenOver' | 'overThenDown';
|
|
738
|
+
|
|
739
|
+
/**
|
|
740
|
+
* Print without colour
|
|
741
|
+
*
|
|
742
|
+
* false by default
|
|
743
|
+
*/
|
|
744
|
+
blackAndWhite: boolean;
|
|
745
|
+
|
|
746
|
+
/**
|
|
747
|
+
* Print with less quality (and ink)
|
|
748
|
+
*
|
|
749
|
+
* false by default
|
|
750
|
+
*/
|
|
751
|
+
draft: boolean;
|
|
752
|
+
|
|
753
|
+
/**
|
|
754
|
+
* Where to place comments
|
|
755
|
+
*
|
|
756
|
+
* Default is `None`
|
|
757
|
+
*/
|
|
758
|
+
cellComments: 'atEnd' | 'asDisplayed' | 'None';
|
|
759
|
+
|
|
760
|
+
/**
|
|
761
|
+
* Where to show errors
|
|
762
|
+
*
|
|
763
|
+
* Default is `displayed`
|
|
764
|
+
*/
|
|
765
|
+
errors: 'dash' | 'blank' | 'NA' | 'displayed';
|
|
766
|
+
|
|
767
|
+
/**
|
|
768
|
+
* What paper size to use (see below)
|
|
769
|
+
*
|
|
770
|
+
* | Name | Value |
|
|
771
|
+
* | ----------------------------- | --------- |
|
|
772
|
+
* | Letter | `undefined` |
|
|
773
|
+
* | Legal | `5` |
|
|
774
|
+
* | Executive | `7` |
|
|
775
|
+
* | A4 | `9` |
|
|
776
|
+
* | A5 | `11` |
|
|
777
|
+
* | B5 (JIS) | `13` |
|
|
778
|
+
* | Envelope #10 | `20` |
|
|
779
|
+
* | Envelope DL | `27` |
|
|
780
|
+
* | Envelope C5 | `28` |
|
|
781
|
+
* | Envelope B5 | `34` |
|
|
782
|
+
* | Envelope Monarch | `37` |
|
|
783
|
+
* | Double Japan Postcard Rotated | `82` |
|
|
784
|
+
* | 16K 197x273 mm | `119` |
|
|
785
|
+
*/
|
|
786
|
+
paperSize: PaperSize;
|
|
787
|
+
|
|
788
|
+
/**
|
|
789
|
+
* Whether to show the row numbers and column letters, `false` by default
|
|
790
|
+
*/
|
|
791
|
+
showRowColHeaders: boolean;
|
|
792
|
+
|
|
793
|
+
/**
|
|
794
|
+
* Whether to show grid lines, `false` by default
|
|
795
|
+
*/
|
|
796
|
+
showGridLines: boolean;
|
|
797
|
+
|
|
798
|
+
/**
|
|
799
|
+
* Which number to use for the first page
|
|
800
|
+
*/
|
|
801
|
+
firstPageNumber: number;
|
|
802
|
+
|
|
803
|
+
/**
|
|
804
|
+
* Whether to center the sheet data horizontally, `false` by default
|
|
805
|
+
*/
|
|
806
|
+
horizontalCentered: boolean;
|
|
807
|
+
|
|
808
|
+
/**
|
|
809
|
+
* Whether to center the sheet data vertically, `false` by default
|
|
810
|
+
*/
|
|
811
|
+
verticalCentered: boolean;
|
|
812
|
+
|
|
813
|
+
/**
|
|
814
|
+
* Set Print Area for a sheet, e.g. `'A1:G20'`
|
|
815
|
+
*/
|
|
816
|
+
printArea: string;
|
|
817
|
+
|
|
818
|
+
/**
|
|
819
|
+
* Repeat specific rows on every printed page, e.g. `'1:3'`
|
|
820
|
+
*/
|
|
821
|
+
printTitlesRow: string;
|
|
822
|
+
|
|
823
|
+
/**
|
|
824
|
+
* Repeat specific columns on every printed page, e.g. `'A:C'`
|
|
825
|
+
*/
|
|
826
|
+
printTitlesColumn: string;
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
export interface HeaderFooter {
|
|
830
|
+
/**
|
|
831
|
+
* Set the value of differentFirst as true, which indicates that headers/footers for first page are different from the other pages, `false` by default
|
|
832
|
+
*/
|
|
833
|
+
differentFirst: boolean,
|
|
834
|
+
/**
|
|
835
|
+
* Set the value of differentOddEven as true, which indicates that headers/footers for odd and even pages are different, `false` by default
|
|
836
|
+
*/
|
|
837
|
+
differentOddEven: boolean,
|
|
838
|
+
/**
|
|
839
|
+
* Set header string for odd pages, could format the string and `null` by default
|
|
840
|
+
*/
|
|
841
|
+
oddHeader: string,
|
|
842
|
+
/**
|
|
843
|
+
* Set footer string for odd pages, could format the string and `null` by default
|
|
844
|
+
*/
|
|
845
|
+
oddFooter: string,
|
|
846
|
+
/**
|
|
847
|
+
* Set header string for even pages, could format the string and `null` by default
|
|
848
|
+
*/
|
|
849
|
+
evenHeader: string,
|
|
850
|
+
/**
|
|
851
|
+
* Set footer string for even pages, could format the string and `null` by default
|
|
852
|
+
*/
|
|
853
|
+
evenFooter: string,
|
|
854
|
+
/**
|
|
855
|
+
* Set header string for the first page, could format the string and `null` by default
|
|
856
|
+
*/
|
|
857
|
+
firstHeader: string,
|
|
858
|
+
/**
|
|
859
|
+
* Set footer string for the first page, could format the string and `null` by default
|
|
860
|
+
*/
|
|
861
|
+
firstFooter: string
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
export type AutoFilter = string | {
|
|
865
|
+
from: string | { row: number; column: number };
|
|
866
|
+
to: string | { row: number; column: number };
|
|
867
|
+
};
|
|
868
|
+
|
|
869
|
+
export interface WorksheetProtection {
|
|
870
|
+
objects: boolean;
|
|
871
|
+
scenarios: boolean;
|
|
872
|
+
selectLockedCells: boolean;
|
|
873
|
+
selectUnlockedCells: boolean;
|
|
874
|
+
formatCells: boolean;
|
|
875
|
+
formatColumns: boolean;
|
|
876
|
+
formatRows: boolean;
|
|
877
|
+
insertColumns: boolean;
|
|
878
|
+
insertRows: boolean;
|
|
879
|
+
insertHyperlinks: boolean;
|
|
880
|
+
deleteColumns: boolean;
|
|
881
|
+
deleteRows: boolean;
|
|
882
|
+
sort: boolean;
|
|
883
|
+
autoFilter: boolean;
|
|
884
|
+
pivotTables: boolean;
|
|
885
|
+
spinCount: number;
|
|
886
|
+
}
|
|
887
|
+
export interface Image {
|
|
888
|
+
extension: 'jpeg' | 'png' | 'gif';
|
|
889
|
+
base64?: string;
|
|
890
|
+
filename?: string;
|
|
891
|
+
buffer?: Buffer;
|
|
892
|
+
}
|
|
893
|
+
export interface IAnchor {
|
|
894
|
+
col: number;
|
|
895
|
+
row: number;
|
|
896
|
+
nativeCol: number;
|
|
897
|
+
nativeRow: number;
|
|
898
|
+
nativeColOff: number;
|
|
899
|
+
nativeRowOff: number;
|
|
900
|
+
}
|
|
901
|
+
export class Anchor implements IAnchor {
|
|
902
|
+
col: number;
|
|
903
|
+
nativeCol: number;
|
|
904
|
+
nativeColOff: number;
|
|
905
|
+
nativeRow: number;
|
|
906
|
+
nativeRowOff: number;
|
|
907
|
+
row: number;
|
|
908
|
+
|
|
909
|
+
private readonly colWidth: number;
|
|
910
|
+
private readonly rowHeight: number;
|
|
911
|
+
worksheet: Worksheet;
|
|
912
|
+
|
|
913
|
+
constructor(model?: IAnchor | object);
|
|
914
|
+
}
|
|
915
|
+
export interface ImageRange {
|
|
916
|
+
tl: Anchor;
|
|
917
|
+
br: Anchor;
|
|
918
|
+
}
|
|
919
|
+
|
|
920
|
+
export interface ImagePosition {
|
|
921
|
+
tl: { col: number; row: number };
|
|
922
|
+
ext: { width: number; height: number };
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
export interface ImageHyperlinkValue {
|
|
926
|
+
hyperlink: string;
|
|
927
|
+
tooltip?: string;
|
|
928
|
+
}
|
|
929
|
+
|
|
930
|
+
export interface Range extends Location {
|
|
931
|
+
sheetName: string;
|
|
932
|
+
|
|
933
|
+
tl: string;
|
|
934
|
+
$t$l: string;
|
|
935
|
+
|
|
936
|
+
br: string;
|
|
937
|
+
$b$r: string;
|
|
938
|
+
|
|
939
|
+
range: string;
|
|
940
|
+
$range: string;
|
|
941
|
+
|
|
942
|
+
shortRange: string;
|
|
943
|
+
$shortRange: string;
|
|
944
|
+
|
|
945
|
+
count: number;
|
|
946
|
+
|
|
947
|
+
decode(): void;
|
|
948
|
+
decode(v: Range): void;
|
|
949
|
+
decode(v: string): void;
|
|
950
|
+
decode(v: Location): void;
|
|
951
|
+
decode(top: number, left: number, bottom: number, right: number, sheetName?: string): void;
|
|
952
|
+
decode(tl: string, br: string, sheetName?: string): void;
|
|
953
|
+
decode(v: [string, string]): void;
|
|
954
|
+
decode(v: [string, string, string]): void;
|
|
955
|
+
decode(v: [number, number, number, number]): void;
|
|
956
|
+
decode(v: [number, number, number, number, string]): void;
|
|
957
|
+
|
|
958
|
+
expand(top: number, left: number, bottom: number, right: number): void;
|
|
959
|
+
|
|
960
|
+
expandRow(row: Row): void;
|
|
961
|
+
|
|
962
|
+
expandToAddress(addressStr: string): void;
|
|
963
|
+
|
|
964
|
+
toString(): string;
|
|
965
|
+
|
|
966
|
+
intersects(other: Range): boolean;
|
|
967
|
+
|
|
968
|
+
contains(addressStr: string): boolean;
|
|
969
|
+
|
|
970
|
+
containsEx(address: Partial<{
|
|
971
|
+
sheetName: string;
|
|
972
|
+
row: number;
|
|
973
|
+
col: number;
|
|
974
|
+
}>): boolean;
|
|
975
|
+
}
|
|
976
|
+
|
|
977
|
+
export interface RowBreak {
|
|
978
|
+
id: number;
|
|
979
|
+
max: number;
|
|
980
|
+
min: number;
|
|
981
|
+
man: number;
|
|
982
|
+
}
|
|
983
|
+
|
|
984
|
+
export interface WorksheetModel {
|
|
985
|
+
id: number;
|
|
986
|
+
name: string;
|
|
987
|
+
// dataValidations: this.dataValidations.model,
|
|
988
|
+
properties: WorksheetProperties;
|
|
989
|
+
pageSetup: Partial<PageSetup>;
|
|
990
|
+
headerFooter: Partial<HeaderFooter>;
|
|
991
|
+
rowBreaks: RowBreak[];
|
|
992
|
+
views: WorksheetView[];
|
|
993
|
+
autoFilter: AutoFilter;
|
|
994
|
+
media: Media[];
|
|
995
|
+
merges: Range['range'][];
|
|
996
|
+
}
|
|
997
|
+
export type WorksheetState = 'visible' | 'hidden' | 'veryHidden';
|
|
998
|
+
|
|
999
|
+
export type CellIsOperators = 'equal' | 'greaterThan' | 'lessThan' | 'between';
|
|
1000
|
+
|
|
1001
|
+
export type ContainsTextOperators = 'containsText' | 'containsBlanks' | 'notContainsBlanks' | 'containsErrors' | 'notContainsErrors';
|
|
1002
|
+
|
|
1003
|
+
export type TimePeriodTypes = 'lastWeek' | 'thisWeek' | 'nextWeek' | 'yesterday' | 'today' | 'tomorrow' | 'last7Days' | 'lastMonth'
|
|
1004
|
+
| 'thisMonth' | 'nextMonth';
|
|
1005
|
+
|
|
1006
|
+
export type IconSetTypes = '5Arrows' | '5ArrowsGray' | '5Boxes' | '5Quarters' | '5Rating' | '4Arrows' | '4ArrowsGray'
|
|
1007
|
+
| '4Rating' | '4RedToBlack' | '4TrafficLights' | 'NoIcons' | '3Arrows' | '3ArrowsGray' | '3Flags' | '3Signs'
|
|
1008
|
+
| '3Stars' | '3Symbols' | '3Symbols2' | '3TrafficLights1' | '3TrafficLights2' | '3Triangles';
|
|
1009
|
+
|
|
1010
|
+
export type CfvoTypes = 'percentile' | 'percent' | 'num' | 'min' | 'max' | 'formula' | 'autoMin' | 'autoMax';
|
|
1011
|
+
|
|
1012
|
+
export interface Cvfo {
|
|
1013
|
+
type: CfvoTypes;
|
|
1014
|
+
value?: number;
|
|
1015
|
+
}
|
|
1016
|
+
export interface ConditionalFormattingBaseRule {
|
|
1017
|
+
priority: number;
|
|
1018
|
+
style?: Partial<Style>;
|
|
1019
|
+
}
|
|
1020
|
+
export interface ExpressionRuleType extends ConditionalFormattingBaseRule {
|
|
1021
|
+
type: 'expression';
|
|
1022
|
+
formulae?: any[];
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
export interface CellIsRuleType extends ConditionalFormattingBaseRule {
|
|
1026
|
+
type: 'cellIs';
|
|
1027
|
+
formulae?: any[];
|
|
1028
|
+
operator?: CellIsOperators;
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
export interface Top10RuleType extends ConditionalFormattingBaseRule {
|
|
1032
|
+
type: 'top10';
|
|
1033
|
+
rank: number;
|
|
1034
|
+
percent: boolean;
|
|
1035
|
+
bottom: boolean;
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
export interface AboveAverageRuleType extends ConditionalFormattingBaseRule {
|
|
1039
|
+
type: 'aboveAverage';
|
|
1040
|
+
aboveAverage: boolean;
|
|
1041
|
+
}
|
|
1042
|
+
|
|
1043
|
+
export interface ColorScaleRuleType extends ConditionalFormattingBaseRule {
|
|
1044
|
+
type: 'colorScale';
|
|
1045
|
+
cfvo?: Cvfo[];
|
|
1046
|
+
color?: Partial<Color>[];
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1049
|
+
export interface IconSetRuleType extends ConditionalFormattingBaseRule {
|
|
1050
|
+
type: 'iconSet';
|
|
1051
|
+
showValue?: boolean;
|
|
1052
|
+
reverse?: boolean;
|
|
1053
|
+
custom?: boolean;
|
|
1054
|
+
iconSet?: IconSetTypes;
|
|
1055
|
+
cfvo?: Cvfo[];
|
|
1056
|
+
}
|
|
1057
|
+
|
|
1058
|
+
export interface ContainsTextRuleType extends ConditionalFormattingBaseRule {
|
|
1059
|
+
type: 'containsText';
|
|
1060
|
+
operator?: ContainsTextOperators;
|
|
1061
|
+
text?: string;
|
|
1062
|
+
}
|
|
1063
|
+
|
|
1064
|
+
export interface TimePeriodRuleType extends ConditionalFormattingBaseRule {
|
|
1065
|
+
type: 'timePeriod';
|
|
1066
|
+
timePeriod?: TimePeriodTypes;
|
|
1067
|
+
}
|
|
1068
|
+
|
|
1069
|
+
export interface DataBarRuleType extends ConditionalFormattingBaseRule {
|
|
1070
|
+
type: 'dataBar';
|
|
1071
|
+
gradient?: boolean;
|
|
1072
|
+
minLength?: number;
|
|
1073
|
+
maxLength?: number;
|
|
1074
|
+
showValue?: boolean;
|
|
1075
|
+
border?: boolean;
|
|
1076
|
+
negativeBarColorSameAsPositive?: boolean;
|
|
1077
|
+
negativeBarBorderColorSameAsPositive?: boolean;
|
|
1078
|
+
axisPosition?: 'auto' | 'middle' | 'none';
|
|
1079
|
+
direction?: 'context' | 'leftToRight' | 'rightToLeft';
|
|
1080
|
+
cfvo?: Cvfo[];
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1083
|
+
export type ConditionalFormattingRule = ExpressionRuleType | CellIsRuleType | Top10RuleType | AboveAverageRuleType | ColorScaleRuleType | IconSetRuleType
|
|
1084
|
+
| ContainsTextRuleType | TimePeriodRuleType | DataBarRuleType;
|
|
1085
|
+
|
|
1086
|
+
|
|
1087
|
+
export type RowValues = CellValue[] | { [key: string]: CellValue } | undefined | null;
|
|
1088
|
+
|
|
1089
|
+
export interface ConditionalFormattingOptions {
|
|
1090
|
+
ref: string;
|
|
1091
|
+
rules: ConditionalFormattingRule[];
|
|
1092
|
+
}
|
|
1093
|
+
|
|
1094
|
+
export interface Worksheet {
|
|
1095
|
+
readonly id: number;
|
|
1096
|
+
name: string;
|
|
1097
|
+
readonly workbook: Workbook;
|
|
1098
|
+
readonly hasMerges: boolean;
|
|
1099
|
+
|
|
1100
|
+
readonly dimensions: Range;
|
|
1101
|
+
/**
|
|
1102
|
+
* Contains information related to how a worksheet is printed
|
|
1103
|
+
*/
|
|
1104
|
+
pageSetup: Partial<PageSetup>;
|
|
1105
|
+
|
|
1106
|
+
/**
|
|
1107
|
+
* Worksheet Header and Footer
|
|
1108
|
+
*/
|
|
1109
|
+
headerFooter: Partial<HeaderFooter>;
|
|
1110
|
+
|
|
1111
|
+
/**
|
|
1112
|
+
* Worksheet State
|
|
1113
|
+
*/
|
|
1114
|
+
state: WorksheetState;
|
|
1115
|
+
|
|
1116
|
+
/**
|
|
1117
|
+
* Worksheet Properties
|
|
1118
|
+
*/
|
|
1119
|
+
properties: WorksheetProperties;
|
|
1120
|
+
|
|
1121
|
+
/**
|
|
1122
|
+
* Open panes representing the sheet
|
|
1123
|
+
*/
|
|
1124
|
+
views: Array<Partial<WorksheetView>>;
|
|
1125
|
+
|
|
1126
|
+
/**
|
|
1127
|
+
* Apply an auto filter to your worksheet.
|
|
1128
|
+
*/
|
|
1129
|
+
autoFilter?: AutoFilter;
|
|
1130
|
+
|
|
1131
|
+
destroy(): void;
|
|
1132
|
+
|
|
1133
|
+
/**
|
|
1134
|
+
* A count of the number of rows that have values. If a mid-document row is empty, it will not be included in the count.
|
|
1135
|
+
*/
|
|
1136
|
+
readonly actualRowCount: number;
|
|
1137
|
+
|
|
1138
|
+
/**
|
|
1139
|
+
* The total column size of the document. Equal to the maximum cell count from all of the rows
|
|
1140
|
+
*/
|
|
1141
|
+
readonly columnCount: number;
|
|
1142
|
+
|
|
1143
|
+
/**
|
|
1144
|
+
* Get the last column in a worksheet
|
|
1145
|
+
*/
|
|
1146
|
+
readonly lastColumn: Column | undefined;
|
|
1147
|
+
|
|
1148
|
+
/**
|
|
1149
|
+
* A count of the number of columns that have values.
|
|
1150
|
+
*/
|
|
1151
|
+
readonly actualColumnCount: number;
|
|
1152
|
+
|
|
1153
|
+
getColumnKey(key: string): Column;
|
|
1154
|
+
|
|
1155
|
+
setColumnKey(key: string, value: Column): void;
|
|
1156
|
+
|
|
1157
|
+
deleteColumnKey(key: string): void;
|
|
1158
|
+
|
|
1159
|
+
eachColumnKey(callback: (col: Column, index: number) => void): void;
|
|
1160
|
+
|
|
1161
|
+
/**
|
|
1162
|
+
* Access an individual columns by key, letter and 1-based column number
|
|
1163
|
+
*/
|
|
1164
|
+
getColumn(indexOrKey: number | string): Column;
|
|
1165
|
+
|
|
1166
|
+
/**
|
|
1167
|
+
* Cut one or more columns (columns to the right are shifted left)
|
|
1168
|
+
* and optionally insert more
|
|
1169
|
+
*
|
|
1170
|
+
* If column properties have been definde, they will be cut or moved accordingly
|
|
1171
|
+
*
|
|
1172
|
+
* Known Issue: If a splice causes any merged cells to move, the results may be unpredictable
|
|
1173
|
+
*
|
|
1174
|
+
* Also: If the worksheet has more rows than values in the colulmn inserts,
|
|
1175
|
+
* the rows will still be shifted as if the values existed
|
|
1176
|
+
*/
|
|
1177
|
+
spliceColumns(start: number, count: number, ...insert: any[][]): void;
|
|
1178
|
+
|
|
1179
|
+
/**
|
|
1180
|
+
* Add column headers and define column keys and widths.
|
|
1181
|
+
*
|
|
1182
|
+
* Note: these column structures are a workbook-building convenience only,
|
|
1183
|
+
* apart from the column width, they will not be fully persisted.
|
|
1184
|
+
*/
|
|
1185
|
+
columns: Array<Partial<Column>>;
|
|
1186
|
+
|
|
1187
|
+
/**
|
|
1188
|
+
* The total row size of the document. Equal to the row number of the last row that has values.
|
|
1189
|
+
*/
|
|
1190
|
+
readonly rowCount: number;
|
|
1191
|
+
|
|
1192
|
+
/**
|
|
1193
|
+
* Get the last editable row in a worksheet (or undefined if there are none)
|
|
1194
|
+
*/
|
|
1195
|
+
readonly lastRow: Row | undefined;
|
|
1196
|
+
|
|
1197
|
+
/**
|
|
1198
|
+
* Tries to find and return row for row no, else undefined
|
|
1199
|
+
*
|
|
1200
|
+
* @param row The 1-index row number
|
|
1201
|
+
*/
|
|
1202
|
+
findRow(row: number): Row | undefined;
|
|
1203
|
+
|
|
1204
|
+
/**
|
|
1205
|
+
* Tries to find and return rows for row no start and length, else undefined
|
|
1206
|
+
*
|
|
1207
|
+
* @param start The 1-index starting row number
|
|
1208
|
+
* @param length The length of the expected array
|
|
1209
|
+
*/
|
|
1210
|
+
findRows(start: number, length: number): Row[] | undefined;
|
|
1211
|
+
|
|
1212
|
+
/**
|
|
1213
|
+
* Cut one or more rows (rows below are shifted up)
|
|
1214
|
+
* and optionally insert more
|
|
1215
|
+
*
|
|
1216
|
+
* Known Issue: If a splice causes any merged cells to move, the results may be unpredictable
|
|
1217
|
+
*/
|
|
1218
|
+
spliceRows(start: number, count: number, ...insert: any[][]): void;
|
|
1219
|
+
|
|
1220
|
+
/**
|
|
1221
|
+
* Add a couple of Rows by key-value, after the last current row, using the column keys,
|
|
1222
|
+
* or add a row by contiguous Array (assign to columns A, B & C)
|
|
1223
|
+
*/
|
|
1224
|
+
addRow(data: any[] | any, style?: string): Row;
|
|
1225
|
+
|
|
1226
|
+
/**
|
|
1227
|
+
* Add multiple rows by providing an array of arrays or key-value pairs
|
|
1228
|
+
*/
|
|
1229
|
+
addRows(rows: any[], style?: string): Row[];
|
|
1230
|
+
|
|
1231
|
+
/**
|
|
1232
|
+
* Insert a Row by key-value, at the position (shifiting down all rows from position),
|
|
1233
|
+
* using the column keys, or add a row by contiguous Array (assign to columns A, B & C)
|
|
1234
|
+
*/
|
|
1235
|
+
insertRow(pos: number, value: any[] | any, style?: string): Row;
|
|
1236
|
+
|
|
1237
|
+
/**
|
|
1238
|
+
* Insert multiple rows at position (shifiting down all rows from position)
|
|
1239
|
+
* by providing an array of arrays or key-value pairs
|
|
1240
|
+
*/
|
|
1241
|
+
insertRows(pos: number, values: any[], style?: string): Row[];
|
|
1242
|
+
|
|
1243
|
+
/**
|
|
1244
|
+
* Duplicate rows and insert new rows
|
|
1245
|
+
*/
|
|
1246
|
+
duplicateRow(rowNum: number, count: number, insert: boolean): void;
|
|
1247
|
+
|
|
1248
|
+
/**
|
|
1249
|
+
* Get or create row by 1-based index
|
|
1250
|
+
*/
|
|
1251
|
+
getRow(index: number): Row;
|
|
1252
|
+
|
|
1253
|
+
/**
|
|
1254
|
+
* Get or create rows by 1-based index
|
|
1255
|
+
*/
|
|
1256
|
+
getRows(start: number, length: number): Row[] | undefined;
|
|
1257
|
+
|
|
1258
|
+
/**
|
|
1259
|
+
* Iterate over all rows that have values in a worksheet
|
|
1260
|
+
*/
|
|
1261
|
+
eachRow(callback: (row: Row, rowNumber: number) => void): void;
|
|
1262
|
+
|
|
1263
|
+
/**
|
|
1264
|
+
* Iterate over all rows (including empty rows) in a worksheet
|
|
1265
|
+
*/
|
|
1266
|
+
eachRow(opt: { includeEmpty: boolean }, callback: (row: Row, rowNumber: number) => void): void;
|
|
1267
|
+
|
|
1268
|
+
/**
|
|
1269
|
+
* return all rows as sparse array
|
|
1270
|
+
*/
|
|
1271
|
+
getSheetValues(): RowValues[];
|
|
1272
|
+
|
|
1273
|
+
/**
|
|
1274
|
+
* returns the cell at [r,c] or address given by r. If not found, return undefined
|
|
1275
|
+
*/
|
|
1276
|
+
findCell(r: number | string, c: number | string): Cell | undefined;
|
|
1277
|
+
|
|
1278
|
+
/**
|
|
1279
|
+
* Get or create cell
|
|
1280
|
+
*/
|
|
1281
|
+
getCell(r: number | string, c?: number | string): Cell;
|
|
1282
|
+
|
|
1283
|
+
/**
|
|
1284
|
+
* Merge cells, either:
|
|
1285
|
+
*
|
|
1286
|
+
* tlbr string, e.g. `'A4:B5'`
|
|
1287
|
+
*
|
|
1288
|
+
* tl string, br string, e.g. `'G10', 'H11'`
|
|
1289
|
+
*
|
|
1290
|
+
* t, l, b, r numbers, e.g. `10,11,12,13`
|
|
1291
|
+
*/
|
|
1292
|
+
mergeCells(): void;
|
|
1293
|
+
mergeCells(v: Range): void;
|
|
1294
|
+
mergeCells(v: string): void;
|
|
1295
|
+
mergeCells(v: Location): void;
|
|
1296
|
+
mergeCells(top: number, left: number, bottom: number, right: number, sheetName?: string): void;
|
|
1297
|
+
mergeCells(tl: string, br: string, sheetName?: string): void;
|
|
1298
|
+
mergeCells(v: [string, string]): void;
|
|
1299
|
+
mergeCells(v: [string, string, string]): void;
|
|
1300
|
+
mergeCells(v: [number, number, number, number]): void;
|
|
1301
|
+
mergeCells(v: [number, number, number, number, string]): void;
|
|
1302
|
+
mergeCellsWithoutStyle(): void;
|
|
1303
|
+
mergeCellsWithoutStyle(v: Range): void;
|
|
1304
|
+
mergeCellsWithoutStyle(v: string): void;
|
|
1305
|
+
mergeCellsWithoutStyle(v: Location): void;
|
|
1306
|
+
mergeCellsWithoutStyle(top: number, left: number, bottom: number, right: number, sheetName?: string): void;
|
|
1307
|
+
mergeCellsWithoutStyle(tl: string, br: string, sheetName?: string): void;
|
|
1308
|
+
mergeCellsWithoutStyle(v: [string, string]): void;
|
|
1309
|
+
mergeCellsWithoutStyle(v: [string, string, string]): void;
|
|
1310
|
+
mergeCellsWithoutStyle(v: [number, number, number, number]): void;
|
|
1311
|
+
mergeCellsWithoutStyle(v: [number, number, number, number, string]): void;
|
|
1312
|
+
|
|
1313
|
+
/**
|
|
1314
|
+
* unmerging the cells breaks the style links
|
|
1315
|
+
*/
|
|
1316
|
+
unMergeCells(): void;
|
|
1317
|
+
unMergeCells(v: Range): void;
|
|
1318
|
+
unMergeCells(v: string): void;
|
|
1319
|
+
unMergeCells(v: Location): void;
|
|
1320
|
+
unMergeCells(top: number, left: number, bottom: number, right: number, sheetName?: string): void;
|
|
1321
|
+
unMergeCells(tl: string, br: string, sheetName?: string): void;
|
|
1322
|
+
unMergeCells(v: [string, string]): void;
|
|
1323
|
+
unMergeCells(v: [string, string, string]): void;
|
|
1324
|
+
unMergeCells(v: [number, number, number, number]): void;
|
|
1325
|
+
unMergeCells(v: [number, number, number, number, string]): void;
|
|
1326
|
+
|
|
1327
|
+
fillFormula(range: Range | string | Location, formula: string, results?: ((r: number, c: number) => string | number) | number[] | number[][]): void;
|
|
1328
|
+
|
|
1329
|
+
/**
|
|
1330
|
+
* Using the image id from `Workbook.addImage`, set the background to the worksheet
|
|
1331
|
+
*/
|
|
1332
|
+
addBackgroundImage(imageId: number): void;
|
|
1333
|
+
|
|
1334
|
+
getBackgroundImageId(): string;
|
|
1335
|
+
|
|
1336
|
+
/**
|
|
1337
|
+
* Using the image id from `Workbook.addImage`,
|
|
1338
|
+
* embed an image within the worksheet to cover a range
|
|
1339
|
+
*/
|
|
1340
|
+
addImage(imageId: number, range: string | { editAs?: string; } & ImageRange & { hyperlinks?: ImageHyperlinkValue } | { editAs?: string; } & ImagePosition & { hyperlinks?: ImageHyperlinkValue }): void;
|
|
1341
|
+
|
|
1342
|
+
getImages(): Array<{
|
|
1343
|
+
type: 'image',
|
|
1344
|
+
imageId: string;
|
|
1345
|
+
range: ImageRange;
|
|
1346
|
+
}>;
|
|
1347
|
+
|
|
1348
|
+
commit(): void;
|
|
1349
|
+
|
|
1350
|
+
model: WorksheetModel;
|
|
1351
|
+
|
|
1352
|
+
/**
|
|
1353
|
+
* Worksheet protection
|
|
1354
|
+
*/
|
|
1355
|
+
protect(password: string, options: Partial<WorksheetProtection>): Promise<void>;
|
|
1356
|
+
unprotect(): void;
|
|
1357
|
+
|
|
1358
|
+
/**
|
|
1359
|
+
* Add a new table and return a reference to it
|
|
1360
|
+
*/
|
|
1361
|
+
addTable(tableProperties: TableProperties): Table;
|
|
1362
|
+
/**
|
|
1363
|
+
* fetch table by name or id
|
|
1364
|
+
*/
|
|
1365
|
+
getTable(name: string): Table;
|
|
1366
|
+
/**
|
|
1367
|
+
* delete table by name or id
|
|
1368
|
+
*/
|
|
1369
|
+
removeTable(name: string): void;
|
|
1370
|
+
/**
|
|
1371
|
+
* fetch table
|
|
1372
|
+
*/
|
|
1373
|
+
getTables(): [Table, void][];
|
|
1374
|
+
/**
|
|
1375
|
+
* add conditionalFormattingOptions
|
|
1376
|
+
*/
|
|
1377
|
+
addConditionalFormatting(cf: ConditionalFormattingOptions): void;
|
|
1378
|
+
|
|
1379
|
+
/**
|
|
1380
|
+
* delete conditionalFormattingOptions
|
|
1381
|
+
*/
|
|
1382
|
+
removeConditionalFormatting(filter: any): void;
|
|
1383
|
+
}
|
|
1384
|
+
|
|
1385
|
+
export interface CalculationProperties {
|
|
1386
|
+
/**
|
|
1387
|
+
* Whether the application shall perform a full recalculation when the workbook is opened
|
|
1388
|
+
*/
|
|
1389
|
+
fullCalcOnLoad: boolean
|
|
1390
|
+
}
|
|
1391
|
+
|
|
1392
|
+
export interface WorksheetProperties {
|
|
1393
|
+
/**
|
|
1394
|
+
* Color of the tab
|
|
1395
|
+
*/
|
|
1396
|
+
tabColor: Partial<Color>;
|
|
1397
|
+
|
|
1398
|
+
/**
|
|
1399
|
+
* The worksheet column outline level (default: 0)
|
|
1400
|
+
*/
|
|
1401
|
+
outlineLevelCol: number;
|
|
1402
|
+
|
|
1403
|
+
/**
|
|
1404
|
+
* The worksheet row outline level (default: 0)
|
|
1405
|
+
*/
|
|
1406
|
+
outlineLevelRow: number;
|
|
1407
|
+
|
|
1408
|
+
/**
|
|
1409
|
+
* The outline properties which controls how it will summarize rows and columns
|
|
1410
|
+
*/
|
|
1411
|
+
outlineProperties: {
|
|
1412
|
+
summaryBelow: boolean,
|
|
1413
|
+
summaryRight: boolean,
|
|
1414
|
+
};
|
|
1415
|
+
/**
|
|
1416
|
+
* Default row height (default: 15)
|
|
1417
|
+
*/
|
|
1418
|
+
defaultRowHeight: number;
|
|
1419
|
+
|
|
1420
|
+
/**
|
|
1421
|
+
* Default column width (optional)
|
|
1422
|
+
*/
|
|
1423
|
+
defaultColWidth?: number;
|
|
1424
|
+
|
|
1425
|
+
/**
|
|
1426
|
+
* default: 55
|
|
1427
|
+
*/
|
|
1428
|
+
dyDescent: number;
|
|
1429
|
+
showGridLines: boolean;
|
|
1430
|
+
}
|
|
1431
|
+
|
|
1432
|
+
export interface AddWorksheetOptions {
|
|
1433
|
+
properties: Partial<WorksheetProperties>;
|
|
1434
|
+
pageSetup: Partial<PageSetup>;
|
|
1435
|
+
headerFooter: Partial<HeaderFooter>;
|
|
1436
|
+
views: Array<Partial<WorksheetView>>;
|
|
1437
|
+
state: WorksheetState;
|
|
1438
|
+
}
|
|
1439
|
+
|
|
1440
|
+
export interface WorkbookProperties {
|
|
1441
|
+
/**
|
|
1442
|
+
* Set workbook dates to 1904 date system
|
|
1443
|
+
*/
|
|
1444
|
+
date1904: boolean;
|
|
1445
|
+
}
|
|
1446
|
+
|
|
1447
|
+
export interface JSZipGeneratorOptions {
|
|
1448
|
+
/**
|
|
1449
|
+
* @default DEFLATE
|
|
1450
|
+
*/
|
|
1451
|
+
compression: 'STORE' | 'DEFLATE';
|
|
1452
|
+
compressionOptions: null | {
|
|
1453
|
+
/**
|
|
1454
|
+
* @default 6
|
|
1455
|
+
*/
|
|
1456
|
+
level: number;
|
|
1457
|
+
};
|
|
1458
|
+
}
|
|
1459
|
+
|
|
1460
|
+
export interface XlsxReadOptions {
|
|
1461
|
+
/**
|
|
1462
|
+
* The list of XML node names to ignore while parsing an XLSX file
|
|
1463
|
+
*/
|
|
1464
|
+
ignoreNodes: string[];
|
|
1465
|
+
}
|
|
1466
|
+
|
|
1467
|
+
export interface XlsxWriteOptions extends stream.xlsx.WorkbookWriterOptions {
|
|
1468
|
+
/**
|
|
1469
|
+
* The option passed to JsZip#generateAsync(options)
|
|
1470
|
+
*/
|
|
1471
|
+
zip: Partial<JSZipGeneratorOptions>;
|
|
1472
|
+
}
|
|
1473
|
+
|
|
1474
|
+
export interface Xlsx {
|
|
1475
|
+
/**
|
|
1476
|
+
* read from a file
|
|
1477
|
+
*/
|
|
1478
|
+
readFile(path: string, options?: Partial<XlsxReadOptions>): Promise<Workbook>;
|
|
1479
|
+
|
|
1480
|
+
/**
|
|
1481
|
+
* read from a stream
|
|
1482
|
+
* @param stream
|
|
1483
|
+
*/
|
|
1484
|
+
read(stream: import('stream').Stream, options?: Partial<XlsxReadOptions>): Promise<Workbook>;
|
|
1485
|
+
|
|
1486
|
+
/**
|
|
1487
|
+
* load from an array buffer
|
|
1488
|
+
* @param buffer
|
|
1489
|
+
*/
|
|
1490
|
+
load(buffer: Buffer, options?: Partial<XlsxReadOptions>): Promise<Workbook>;
|
|
1491
|
+
|
|
1492
|
+
/**
|
|
1493
|
+
* write to a buffer
|
|
1494
|
+
*/
|
|
1495
|
+
writeBuffer(options?: Partial<XlsxWriteOptions>): Promise<Buffer>;
|
|
1496
|
+
|
|
1497
|
+
/**
|
|
1498
|
+
* write to a file
|
|
1499
|
+
*/
|
|
1500
|
+
writeFile(path: string, options?: Partial<XlsxWriteOptions>): Promise<void>;
|
|
1501
|
+
|
|
1502
|
+
/**
|
|
1503
|
+
* write to a stream
|
|
1504
|
+
*/
|
|
1505
|
+
write(stream: import('stream').Stream, options?: Partial<XlsxWriteOptions>): Promise<void>;
|
|
1506
|
+
}
|
|
1507
|
+
|
|
1508
|
+
// https://c2fo.github.io/fast-csv/docs/parsing/options
|
|
1509
|
+
|
|
1510
|
+
type HeaderArray = (string | undefined | null)[];
|
|
1511
|
+
type HeaderTransformFunction = (headers: HeaderArray) => HeaderArray;
|
|
1512
|
+
export interface FastCsvParserOptionsArgs {
|
|
1513
|
+
objectMode: boolean;
|
|
1514
|
+
delimiter: string;
|
|
1515
|
+
quote: string | null;
|
|
1516
|
+
escape: string;
|
|
1517
|
+
headers: boolean | HeaderTransformFunction | HeaderArray;
|
|
1518
|
+
renameHeaders: boolean;
|
|
1519
|
+
ignoreEmpty: boolean;
|
|
1520
|
+
comment: string;
|
|
1521
|
+
strictColumnHandling: boolean;
|
|
1522
|
+
discardUnmappedColumns: boolean;
|
|
1523
|
+
trim: boolean;
|
|
1524
|
+
ltrim: boolean;
|
|
1525
|
+
rtrim: boolean;
|
|
1526
|
+
encoding: string;
|
|
1527
|
+
maxRows: number;
|
|
1528
|
+
skipLines: number;
|
|
1529
|
+
skipRows: number;
|
|
1530
|
+
}
|
|
1531
|
+
|
|
1532
|
+
interface QuoteColumnMap {
|
|
1533
|
+
[s: string]: boolean;
|
|
1534
|
+
}
|
|
1535
|
+
declare type QuoteColumns = boolean | boolean[] | QuoteColumnMap;
|
|
1536
|
+
|
|
1537
|
+
interface RowMap {
|
|
1538
|
+
[key: string]: any;
|
|
1539
|
+
}
|
|
1540
|
+
declare type RowHashArray = [string, any][];
|
|
1541
|
+
declare type RowArray = string[];
|
|
1542
|
+
declare type Rows = RowArray | RowMap | RowHashArray;
|
|
1543
|
+
declare type RowTransformCallback = (error?: Error | null, row?: Rows) => void;
|
|
1544
|
+
interface RowTransformFunction {
|
|
1545
|
+
(row: Rows, callback: RowTransformCallback): void;
|
|
1546
|
+
(row: Rows): Rows;
|
|
1547
|
+
}
|
|
1548
|
+
|
|
1549
|
+
// https://c2fo.github.io/fast-csv/docs/formatting/options/
|
|
1550
|
+
export interface FastCsvFormatterOptionsArgs {
|
|
1551
|
+
objectMode: boolean;
|
|
1552
|
+
delimiter: string;
|
|
1553
|
+
rowDelimiter: string;
|
|
1554
|
+
quote: string | boolean;
|
|
1555
|
+
escape: string;
|
|
1556
|
+
quoteColumns: QuoteColumns;
|
|
1557
|
+
quoteHeaders: QuoteColumns;
|
|
1558
|
+
headers: null | boolean | string[];
|
|
1559
|
+
includeEndRowDelimiter: boolean;
|
|
1560
|
+
writeBOM: boolean;
|
|
1561
|
+
transform: RowTransformFunction;
|
|
1562
|
+
alwaysWriteHeaders: boolean;
|
|
1563
|
+
}
|
|
1564
|
+
|
|
1565
|
+
export interface CsvReadOptions {
|
|
1566
|
+
dateFormats: string[];
|
|
1567
|
+
map(value: any, index: number): any;
|
|
1568
|
+
sheetName: string;
|
|
1569
|
+
parserOptions: Partial<FastCsvParserOptionsArgs>;
|
|
1570
|
+
}
|
|
1571
|
+
|
|
1572
|
+
export interface CsvWriteOptions {
|
|
1573
|
+
dateFormat: string;
|
|
1574
|
+
dateUTC: boolean;
|
|
1575
|
+
sheetName: string;
|
|
1576
|
+
sheetId: number;
|
|
1577
|
+
encoding: string;
|
|
1578
|
+
map(value: any, index: number): any;
|
|
1579
|
+
includeEmptyRows: boolean;
|
|
1580
|
+
formatterOptions: Partial<FastCsvFormatterOptionsArgs>;
|
|
1581
|
+
}
|
|
1582
|
+
|
|
1583
|
+
export interface Csv {
|
|
1584
|
+
/**
|
|
1585
|
+
* read from a file
|
|
1586
|
+
*/
|
|
1587
|
+
readFile(path: string, options?: Partial<CsvReadOptions>): Promise<Worksheet>;
|
|
1588
|
+
|
|
1589
|
+
/**
|
|
1590
|
+
* read from a stream
|
|
1591
|
+
*/
|
|
1592
|
+
read(stream: import('stream').Stream, options?: Partial<CsvReadOptions>): Promise<Worksheet>;
|
|
1593
|
+
|
|
1594
|
+
/**
|
|
1595
|
+
* Create input stream for reading
|
|
1596
|
+
*/
|
|
1597
|
+
createInputStream(options?: Partial<CsvReadOptions>): import('events').EventEmitter;
|
|
1598
|
+
|
|
1599
|
+
/**
|
|
1600
|
+
* write to a buffer
|
|
1601
|
+
*/
|
|
1602
|
+
writeBuffer(options?: Partial<CsvWriteOptions>): Promise<Buffer>;
|
|
1603
|
+
|
|
1604
|
+
/**
|
|
1605
|
+
* write to a file
|
|
1606
|
+
*/
|
|
1607
|
+
writeFile(path: string, options?: Partial<CsvWriteOptions>): Promise<void>;
|
|
1608
|
+
|
|
1609
|
+
/**
|
|
1610
|
+
* write to a stream
|
|
1611
|
+
*/
|
|
1612
|
+
write(stream: import('stream').Stream, options?: Partial<CsvWriteOptions>): Promise<void>;
|
|
1613
|
+
}
|
|
1614
|
+
|
|
1615
|
+
export interface Media {
|
|
1616
|
+
type: string; // image,background
|
|
1617
|
+
name: string;
|
|
1618
|
+
extension: string;
|
|
1619
|
+
buffer: Buffer;
|
|
1620
|
+
}
|
|
1621
|
+
|
|
1622
|
+
export interface Address {
|
|
1623
|
+
sheetName?: string;
|
|
1624
|
+
address: string;
|
|
1625
|
+
col: string;
|
|
1626
|
+
row: string;
|
|
1627
|
+
$col$row: string;
|
|
1628
|
+
}
|
|
1629
|
+
|
|
1630
|
+
export interface Location {
|
|
1631
|
+
top: number;
|
|
1632
|
+
left: number;
|
|
1633
|
+
bottom: number;
|
|
1634
|
+
right: number;
|
|
1635
|
+
}
|
|
1636
|
+
|
|
1637
|
+
export interface CellMatrix {
|
|
1638
|
+
addCell(addressStr: string): void;
|
|
1639
|
+
getCell(addressStr: string): Cell;
|
|
1640
|
+
findCell(addressStr: string): Cell | undefined;
|
|
1641
|
+
findCellAt(sheetName: string, rowNumber: number, colNumber: number): Cell | undefined;
|
|
1642
|
+
addCellEx(address: string | Location): void;
|
|
1643
|
+
getCellEx(address: string | Location): Cell;
|
|
1644
|
+
findCellEx(address: string | Location, create: boolean): Cell | undefined;
|
|
1645
|
+
getCellAt(sheetName: string, rowNumber: number, colNumber: number): Cell;
|
|
1646
|
+
removeCellEx(address: string | Location): void;
|
|
1647
|
+
forEach(callback: (cell: Cell) => void): void;
|
|
1648
|
+
map<T>(callback: (cell: Cell) => T): T[];
|
|
1649
|
+
findSheet(address: string | Location, create: boolean): Cell[] | undefined;
|
|
1650
|
+
findSheetRow(sheet: Cell[][], address: string | Location, create: boolean): Row | undefined;
|
|
1651
|
+
findRowCell(row: any[], address: Address, create: boolean): Cell | undefined;
|
|
1652
|
+
}
|
|
1653
|
+
|
|
1654
|
+
export interface DefinedNamesRanges {
|
|
1655
|
+
name: string;
|
|
1656
|
+
ranges: string[];
|
|
1657
|
+
}
|
|
1658
|
+
|
|
1659
|
+
export type DefinedNamesModel = DefinedNamesRanges[];
|
|
1660
|
+
|
|
1661
|
+
export interface DefinedNames {
|
|
1662
|
+
getMatrix(name: string): CellMatrix;
|
|
1663
|
+
// add a name to a cell. locStr in the form SheetName!$col$row or SheetName!$c1$r1:$c2:$r2
|
|
1664
|
+
add(locStr: string, name?: string): void;
|
|
1665
|
+
addEx(location: string | Location, name: string): Cell;
|
|
1666
|
+
|
|
1667
|
+
remove(locStr: string | Location, name: string): void;
|
|
1668
|
+
removeEx(location: string | Location, name: string): void;
|
|
1669
|
+
removeAllNames(location: string | Location): void;
|
|
1670
|
+
|
|
1671
|
+
forEach(callback: (name: string, cell: Cell) => void): void;
|
|
1672
|
+
|
|
1673
|
+
// get all the names of a cell
|
|
1674
|
+
getNames(addressStr: string): string[];
|
|
1675
|
+
getNamesEx(address: string): string[];
|
|
1676
|
+
|
|
1677
|
+
getRanges(name: string, matrix?: CellMatrix): DefinedNamesRanges;
|
|
1678
|
+
|
|
1679
|
+
model: DefinedNamesModel;
|
|
1680
|
+
}
|
|
1681
|
+
|
|
1682
|
+
export interface WorkbookModel {
|
|
1683
|
+
creator: string;
|
|
1684
|
+
lastModifiedBy: string;
|
|
1685
|
+
lastPrinted: Date;
|
|
1686
|
+
created: Date;
|
|
1687
|
+
modified: Date;
|
|
1688
|
+
properties: WorkbookProperties;
|
|
1689
|
+
worksheets: Worksheet[];
|
|
1690
|
+
sheets: WorksheetModel[];
|
|
1691
|
+
definedNames: DefinedNamesModel;
|
|
1692
|
+
views: WorkbookView[];
|
|
1693
|
+
company: string;
|
|
1694
|
+
manager: string;
|
|
1695
|
+
title: string;
|
|
1696
|
+
subject: string;
|
|
1697
|
+
keywords: string;
|
|
1698
|
+
category: string;
|
|
1699
|
+
description: string;
|
|
1700
|
+
language: string;
|
|
1701
|
+
revision: Date;
|
|
1702
|
+
contentStatus: string;
|
|
1703
|
+
themes: string[];
|
|
1704
|
+
media: Media[];
|
|
1705
|
+
}
|
|
1706
|
+
|
|
1707
|
+
export class Workbook {
|
|
1708
|
+
category: string;
|
|
1709
|
+
company: string;
|
|
1710
|
+
creator: string;
|
|
1711
|
+
description: string;
|
|
1712
|
+
keywords: string;
|
|
1713
|
+
lastModifiedBy: string;
|
|
1714
|
+
created: Date;
|
|
1715
|
+
manager: string;
|
|
1716
|
+
modified: Date;
|
|
1717
|
+
lastPrinted: Date;
|
|
1718
|
+
properties: WorkbookProperties;
|
|
1719
|
+
subject: string;
|
|
1720
|
+
title: string;
|
|
1721
|
+
|
|
1722
|
+
/**
|
|
1723
|
+
* Workbook calculation Properties
|
|
1724
|
+
*/
|
|
1725
|
+
calcProperties: CalculationProperties;
|
|
1726
|
+
|
|
1727
|
+
/**
|
|
1728
|
+
* xlsx file format operations
|
|
1729
|
+
*/
|
|
1730
|
+
readonly xlsx: Xlsx;
|
|
1731
|
+
|
|
1732
|
+
/**
|
|
1733
|
+
* csv file format operations
|
|
1734
|
+
*/
|
|
1735
|
+
readonly csv: Csv;
|
|
1736
|
+
|
|
1737
|
+
readonly nextId: number;
|
|
1738
|
+
|
|
1739
|
+
readonly definedNames: DefinedNames;
|
|
1740
|
+
|
|
1741
|
+
model: WorkbookModel;
|
|
1742
|
+
|
|
1743
|
+
/**
|
|
1744
|
+
* The Workbook views controls how many separate windows Excel will open when viewing the workbook.
|
|
1745
|
+
*/
|
|
1746
|
+
views: WorkbookView[];
|
|
1747
|
+
|
|
1748
|
+
/**
|
|
1749
|
+
* return a clone of worksheets in order
|
|
1750
|
+
*/
|
|
1751
|
+
worksheets: Worksheet[];
|
|
1752
|
+
|
|
1753
|
+
/**
|
|
1754
|
+
* Add a new worksheet and return a reference to it
|
|
1755
|
+
*/
|
|
1756
|
+
addWorksheet(name?: string, options?: Partial<AddWorksheetOptions>): Worksheet;
|
|
1757
|
+
|
|
1758
|
+
removeWorksheetEx(worksheet: Worksheet): void;
|
|
1759
|
+
removeWorksheet(indexOrName: number | string): void;
|
|
1760
|
+
|
|
1761
|
+
/**
|
|
1762
|
+
* fetch sheet by name or id
|
|
1763
|
+
*/
|
|
1764
|
+
getWorksheet(indexOrName?: number | string): Worksheet | undefined;
|
|
1765
|
+
|
|
1766
|
+
/**
|
|
1767
|
+
* Iterate over all sheets.
|
|
1768
|
+
*
|
|
1769
|
+
* Note: `workbook.worksheets.forEach` will still work but this is better.
|
|
1770
|
+
*/
|
|
1771
|
+
eachSheet(callback: (worksheet: Worksheet, id: number) => void): void;
|
|
1772
|
+
|
|
1773
|
+
clearThemes(): void;
|
|
1774
|
+
|
|
1775
|
+
/**
|
|
1776
|
+
* Add Image to Workbook and return the id
|
|
1777
|
+
*/
|
|
1778
|
+
addImage(img: Image): number;
|
|
1779
|
+
|
|
1780
|
+
getImage(id: number): Image;
|
|
1781
|
+
}
|
|
1782
|
+
|
|
1783
|
+
export interface TableStyleProperties {
|
|
1784
|
+
/**
|
|
1785
|
+
* The colour theme of the table
|
|
1786
|
+
* @default 'TableStyleMedium2'
|
|
1787
|
+
*/
|
|
1788
|
+
theme?: 'TableStyleDark1' | 'TableStyleDark10' | 'TableStyleDark11' | 'TableStyleDark2' | 'TableStyleDark3' | 'TableStyleDark4' | 'TableStyleDark5' | 'TableStyleDark6' | 'TableStyleDark7' | 'TableStyleDark8' | 'TableStyleDark9' | 'TableStyleLight1' | 'TableStyleLight10' | 'TableStyleLight11' | 'TableStyleLight12' | 'TableStyleLight13' | 'TableStyleLight14' | 'TableStyleLight15' | 'TableStyleLight16' | 'TableStyleLight17' | 'TableStyleLight18' | 'TableStyleLight19' | 'TableStyleLight2' | 'TableStyleLight20' | 'TableStyleLight21' | 'TableStyleLight3' | 'TableStyleLight4' | 'TableStyleLight5' | 'TableStyleLight6' | 'TableStyleLight7' | 'TableStyleLight8' | 'TableStyleLight9' | 'TableStyleMedium1' | 'TableStyleMedium10' | 'TableStyleMedium11' | 'TableStyleMedium12' | 'TableStyleMedium13' | 'TableStyleMedium14' | 'TableStyleMedium15' | 'TableStyleMedium16' | 'TableStyleMedium17' | 'TableStyleMedium18' | 'TableStyleMedium19' | 'TableStyleMedium2' | 'TableStyleMedium20' | 'TableStyleMedium21' | 'TableStyleMedium22' | 'TableStyleMedium23' | 'TableStyleMedium24' | 'TableStyleMedium25' | 'TableStyleMedium26' | 'TableStyleMedium27' | 'TableStyleMedium28' | 'TableStyleMedium3' | 'TableStyleMedium4' | 'TableStyleMedium5' | 'TableStyleMedium6' | 'TableStyleMedium7' | 'TableStyleMedium8' | 'TableStyleMedium9';
|
|
1789
|
+
/**
|
|
1790
|
+
* Highlight the first column (bold)
|
|
1791
|
+
* @default false
|
|
1792
|
+
*/
|
|
1793
|
+
showFirstColumn?: boolean;
|
|
1794
|
+
/**
|
|
1795
|
+
* Highlight the last column (bold)
|
|
1796
|
+
* @default false
|
|
1797
|
+
*/
|
|
1798
|
+
showLastColumn?: boolean;
|
|
1799
|
+
/**
|
|
1800
|
+
* Alternate rows shown with background colour
|
|
1801
|
+
* @default false
|
|
1802
|
+
*/
|
|
1803
|
+
showRowStripes?: boolean;
|
|
1804
|
+
/**
|
|
1805
|
+
* Alternate rows shown with background colour
|
|
1806
|
+
* @default false
|
|
1807
|
+
*/
|
|
1808
|
+
showColumnStripes?: boolean;
|
|
1809
|
+
}
|
|
1810
|
+
|
|
1811
|
+
export interface TableColumnProperties {
|
|
1812
|
+
/**
|
|
1813
|
+
* The name of the column, also used in the header
|
|
1814
|
+
*/
|
|
1815
|
+
name: string;
|
|
1816
|
+
/**
|
|
1817
|
+
* Switches the filter control in the header
|
|
1818
|
+
* @default false
|
|
1819
|
+
*/
|
|
1820
|
+
filterButton?: boolean;
|
|
1821
|
+
/**
|
|
1822
|
+
* Label to describe the totals row (first column)
|
|
1823
|
+
* @default 'Total'
|
|
1824
|
+
*/
|
|
1825
|
+
totalsRowLabel?: string;
|
|
1826
|
+
/**
|
|
1827
|
+
* Name of the totals function
|
|
1828
|
+
* @default 'none'
|
|
1829
|
+
*/
|
|
1830
|
+
totalsRowFunction?: 'none' | 'average' | 'countNums' | 'count' | 'max' | 'min' | 'stdDev' | 'var' | 'sum' | 'custom';
|
|
1831
|
+
/**
|
|
1832
|
+
* Optional formula for custom functions
|
|
1833
|
+
*/
|
|
1834
|
+
totalsRowFormula?: string;
|
|
1835
|
+
|
|
1836
|
+
/**
|
|
1837
|
+
* Styles applied to the column
|
|
1838
|
+
*/
|
|
1839
|
+
style?: Partial<Style>;
|
|
1840
|
+
}
|
|
1841
|
+
|
|
1842
|
+
|
|
1843
|
+
export interface TableProperties {
|
|
1844
|
+
/**
|
|
1845
|
+
* The name of the table
|
|
1846
|
+
*/
|
|
1847
|
+
name: string;
|
|
1848
|
+
/**
|
|
1849
|
+
* The display name of the table
|
|
1850
|
+
*/
|
|
1851
|
+
displayName?: string;
|
|
1852
|
+
/**
|
|
1853
|
+
* Top left cell of the table
|
|
1854
|
+
*/
|
|
1855
|
+
ref: string;
|
|
1856
|
+
/**
|
|
1857
|
+
* Show headers at top of table
|
|
1858
|
+
* @default true
|
|
1859
|
+
*/
|
|
1860
|
+
headerRow?: boolean;
|
|
1861
|
+
/**
|
|
1862
|
+
* Show totals at bottom of table
|
|
1863
|
+
* @default false
|
|
1864
|
+
*/
|
|
1865
|
+
totalsRow?: boolean;
|
|
1866
|
+
/**
|
|
1867
|
+
* Extra style properties
|
|
1868
|
+
* @default {}
|
|
1869
|
+
*/
|
|
1870
|
+
style?: TableStyleProperties;
|
|
1871
|
+
/**
|
|
1872
|
+
* Column definitions
|
|
1873
|
+
*/
|
|
1874
|
+
columns: TableColumnProperties[]
|
|
1875
|
+
/**
|
|
1876
|
+
* Rows of data
|
|
1877
|
+
*/
|
|
1878
|
+
rows: any[][]
|
|
1879
|
+
}
|
|
1880
|
+
|
|
1881
|
+
export type TableColumn = Required<TableColumnProperties>
|
|
1882
|
+
|
|
1883
|
+
export interface Table extends Required<TableProperties> {
|
|
1884
|
+
/**
|
|
1885
|
+
* Commit changes
|
|
1886
|
+
*/
|
|
1887
|
+
commit: () => void
|
|
1888
|
+
/**
|
|
1889
|
+
* Remove a rows of data
|
|
1890
|
+
*/
|
|
1891
|
+
removeRows: (rowIndex: number, count: number) => void
|
|
1892
|
+
/**
|
|
1893
|
+
* Add a row of data, either insert at rowNumber or append
|
|
1894
|
+
*/
|
|
1895
|
+
addRow: (values: any[], rowNumber?: number) => void
|
|
1896
|
+
/**
|
|
1897
|
+
* Get column
|
|
1898
|
+
*/
|
|
1899
|
+
getColumn: (colIndex: number) => TableColumn
|
|
1900
|
+
/**
|
|
1901
|
+
* Add a new column, including column defn and values
|
|
1902
|
+
* inserts at colNumber or adds to the right
|
|
1903
|
+
*/
|
|
1904
|
+
addColumn: (column: TableColumnProperties, values: any[], colIndex: number) => void
|
|
1905
|
+
/**
|
|
1906
|
+
* Remove a column with data
|
|
1907
|
+
*/
|
|
1908
|
+
removeColumns: (colIndex: number, count: number) => void
|
|
1909
|
+
}
|
|
1910
|
+
|
|
1911
|
+
export namespace config {
|
|
1912
|
+
function setValue(key: 'promise', promise: any): void;
|
|
1913
|
+
}
|
|
1914
|
+
|
|
1915
|
+
export namespace stream {
|
|
1916
|
+
namespace xlsx {
|
|
1917
|
+
interface WorkbookWriterOptions {
|
|
1918
|
+
/**
|
|
1919
|
+
* Specifies a writable stream to write the XLSX workbook to.
|
|
1920
|
+
*/
|
|
1921
|
+
stream: import('stream').Stream;
|
|
1922
|
+
|
|
1923
|
+
/**
|
|
1924
|
+
* If stream not specified, this field specifies the path to a file to write the XLSX workbook to.
|
|
1925
|
+
*/
|
|
1926
|
+
filename: string;
|
|
1927
|
+
|
|
1928
|
+
/**
|
|
1929
|
+
* Specifies whether to use shared strings in the workbook. Default is false
|
|
1930
|
+
*/
|
|
1931
|
+
useSharedStrings: boolean;
|
|
1932
|
+
|
|
1933
|
+
/**
|
|
1934
|
+
* Specifies whether to add style information to the workbook.
|
|
1935
|
+
* Styles can add some performance overhead. Default is false
|
|
1936
|
+
*/
|
|
1937
|
+
useStyles: boolean;
|
|
1938
|
+
}
|
|
1939
|
+
|
|
1940
|
+
interface ArchiverZipOptions {
|
|
1941
|
+
comment: string;
|
|
1942
|
+
forceLocalTime: boolean;
|
|
1943
|
+
forceZip64: boolean;
|
|
1944
|
+
store: boolean;
|
|
1945
|
+
zlib: Partial<ZlibOptions>;
|
|
1946
|
+
}
|
|
1947
|
+
|
|
1948
|
+
interface ZlibOptions {
|
|
1949
|
+
/**
|
|
1950
|
+
* @default constants.Z_NO_FLUSH
|
|
1951
|
+
*/
|
|
1952
|
+
flush: number;
|
|
1953
|
+
/**
|
|
1954
|
+
* @default constants.Z_FINISH
|
|
1955
|
+
*/
|
|
1956
|
+
finishFlush: number;
|
|
1957
|
+
/**
|
|
1958
|
+
* @default 16*1024
|
|
1959
|
+
*/
|
|
1960
|
+
chunkSize: number;
|
|
1961
|
+
windowBits: number;
|
|
1962
|
+
level: number; // compression only
|
|
1963
|
+
memLevel: number; // compression only
|
|
1964
|
+
strategy: number; // compression only
|
|
1965
|
+
dictionary: Buffer | NodeJS.TypedArray | DataView | ArrayBuffer; // deflate/inflate only, empty dictionary by default
|
|
1966
|
+
}
|
|
1967
|
+
|
|
1968
|
+
interface WorkbookStreamWriterOptions extends WorkbookWriterOptions {
|
|
1969
|
+
|
|
1970
|
+
/**
|
|
1971
|
+
* Specifies whether to add style information to the workbook.
|
|
1972
|
+
* Styles can add some performance overhead. Default is false
|
|
1973
|
+
*/
|
|
1974
|
+
zip: Partial<ArchiverZipOptions>;
|
|
1975
|
+
}
|
|
1976
|
+
|
|
1977
|
+
class WorkbookWriter extends Workbook {
|
|
1978
|
+
constructor(options: Partial<WorkbookStreamWriterOptions>);
|
|
1979
|
+
// commit all worksheets, then add suplimentary files
|
|
1980
|
+
commit(): Promise<void>;
|
|
1981
|
+
addStyles(): Promise<void>;
|
|
1982
|
+
addThemes(): Promise<void>;
|
|
1983
|
+
addOfficeRels(): Promise<void>;
|
|
1984
|
+
addContentTypes(): Promise<void>;
|
|
1985
|
+
addApp(): Promise<void>;
|
|
1986
|
+
addCore(): Promise<void>;
|
|
1987
|
+
addSharedStrings(): Promise<void>;
|
|
1988
|
+
addWorkbookRels(): Promise<void>;
|
|
1989
|
+
addWorkbook(): Promise<void>;
|
|
1990
|
+
}
|
|
1991
|
+
|
|
1992
|
+
|
|
1993
|
+
interface WorkbookStreamReaderOptions {
|
|
1994
|
+
/**
|
|
1995
|
+
* @default 'emit'
|
|
1996
|
+
*/
|
|
1997
|
+
worksheets?: 'emit' | 'ignore';
|
|
1998
|
+
/**
|
|
1999
|
+
* @default 'cache'
|
|
2000
|
+
*/
|
|
2001
|
+
sharedStrings?: 'cache' | 'emit' | 'ignore';
|
|
2002
|
+
/**
|
|
2003
|
+
* @default 'ignore'
|
|
2004
|
+
*/
|
|
2005
|
+
hyperlinks?: 'cache' | 'emit' | 'ignore';
|
|
2006
|
+
/**
|
|
2007
|
+
* @default 'ignore'
|
|
2008
|
+
*/
|
|
2009
|
+
styles?: 'cache' | 'ignore';
|
|
2010
|
+
/**
|
|
2011
|
+
* @default 'ignore'
|
|
2012
|
+
*/
|
|
2013
|
+
entries?: 'emit' | 'ignore';
|
|
2014
|
+
}
|
|
2015
|
+
|
|
2016
|
+
class WorkbookReader extends Workbook {
|
|
2017
|
+
constructor(input: string | import('stream').Stream, options: Partial<WorkbookStreamReaderOptions>);
|
|
2018
|
+
read(): Promise<void>;
|
|
2019
|
+
[Symbol.asyncIterator](): AsyncGenerator<WorksheetReader>;
|
|
2020
|
+
parse(): AsyncIterator<any>;
|
|
2021
|
+
}
|
|
2022
|
+
|
|
2023
|
+
interface WorksheetReaderOptions {
|
|
2024
|
+
workbook: Workbook;
|
|
2025
|
+
id: number;
|
|
2026
|
+
entry: import('stream').Stream;
|
|
2027
|
+
options: WorkbookStreamReaderOptions;
|
|
2028
|
+
}
|
|
2029
|
+
|
|
2030
|
+
class WorksheetReader {
|
|
2031
|
+
constructor(options: WorksheetReaderOptions);
|
|
2032
|
+
read(): Promise<void>;
|
|
2033
|
+
[Symbol.asyncIterator](): AsyncGenerator<Row>;
|
|
2034
|
+
parse(): AsyncIterator<Array<any>>;
|
|
2035
|
+
dimensions(): number;
|
|
2036
|
+
columns(): number;
|
|
2037
|
+
getColumn(c: number): Column;
|
|
2038
|
+
}
|
|
2039
|
+
}
|
|
2040
|
+
}
|