@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
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const BaseXform = require('../base-xform');
|
|
4
|
+
const utils = require('../../../utils/utils');
|
|
5
|
+
const CellXform = require('./cell-xform');
|
|
6
|
+
class RowXform extends BaseXform {
|
|
7
|
+
constructor(options) {
|
|
8
|
+
super();
|
|
9
|
+
this.maxItems = options && options.maxItems;
|
|
10
|
+
this.map = {
|
|
11
|
+
c: new CellXform()
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
get tag() {
|
|
15
|
+
return 'row';
|
|
16
|
+
}
|
|
17
|
+
prepare(model, options) {
|
|
18
|
+
const styleId = options.styles.addStyleModel(model.style);
|
|
19
|
+
if (styleId) {
|
|
20
|
+
model.styleId = styleId;
|
|
21
|
+
}
|
|
22
|
+
const cellXform = this.map.c;
|
|
23
|
+
model.cells.forEach(cellModel => {
|
|
24
|
+
cellXform.prepare(cellModel, options);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
render(xmlStream, model, options) {
|
|
28
|
+
xmlStream.openNode('row');
|
|
29
|
+
xmlStream.addAttribute('r', model.number);
|
|
30
|
+
if (model.height) {
|
|
31
|
+
xmlStream.addAttribute('ht', model.height);
|
|
32
|
+
xmlStream.addAttribute('customHeight', '1');
|
|
33
|
+
}
|
|
34
|
+
if (model.hidden) {
|
|
35
|
+
xmlStream.addAttribute('hidden', '1');
|
|
36
|
+
}
|
|
37
|
+
if (model.min > 0 && model.max > 0 && model.min <= model.max) {
|
|
38
|
+
xmlStream.addAttribute('spans', `${model.min}:${model.max}`);
|
|
39
|
+
}
|
|
40
|
+
if (model.styleId) {
|
|
41
|
+
xmlStream.addAttribute('s', model.styleId);
|
|
42
|
+
xmlStream.addAttribute('customFormat', '1');
|
|
43
|
+
}
|
|
44
|
+
xmlStream.addAttribute('x14ac:dyDescent', '0.25');
|
|
45
|
+
if (model.outlineLevel) {
|
|
46
|
+
xmlStream.addAttribute('outlineLevel', model.outlineLevel);
|
|
47
|
+
}
|
|
48
|
+
if (model.collapsed) {
|
|
49
|
+
xmlStream.addAttribute('collapsed', '1');
|
|
50
|
+
}
|
|
51
|
+
const cellXform = this.map.c;
|
|
52
|
+
model.cells.forEach(cellModel => {
|
|
53
|
+
cellXform.render(xmlStream, cellModel, options);
|
|
54
|
+
});
|
|
55
|
+
xmlStream.closeNode();
|
|
56
|
+
}
|
|
57
|
+
parseOpen(node) {
|
|
58
|
+
if (this.parser) {
|
|
59
|
+
this.parser.parseOpen(node);
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
if (node.name === 'row') {
|
|
63
|
+
this.numRowsSeen += 1;
|
|
64
|
+
const spans = node.attributes.spans ? node.attributes.spans.split(':').map(span => parseInt(span, 10)) : [undefined, undefined];
|
|
65
|
+
const model = this.model = {
|
|
66
|
+
number: parseInt(node.attributes.r, 10),
|
|
67
|
+
min: spans[0],
|
|
68
|
+
max: spans[1],
|
|
69
|
+
cells: []
|
|
70
|
+
};
|
|
71
|
+
if (node.attributes.s) {
|
|
72
|
+
model.styleId = parseInt(node.attributes.s, 10);
|
|
73
|
+
}
|
|
74
|
+
if (utils.parseBoolean(node.attributes.hidden)) {
|
|
75
|
+
model.hidden = true;
|
|
76
|
+
}
|
|
77
|
+
if (utils.parseBoolean(node.attributes.bestFit)) {
|
|
78
|
+
model.bestFit = true;
|
|
79
|
+
}
|
|
80
|
+
if (node.attributes.ht) {
|
|
81
|
+
model.height = parseFloat(node.attributes.ht);
|
|
82
|
+
}
|
|
83
|
+
if (node.attributes.outlineLevel) {
|
|
84
|
+
model.outlineLevel = parseInt(node.attributes.outlineLevel, 10);
|
|
85
|
+
}
|
|
86
|
+
if (utils.parseBoolean(node.attributes.collapsed)) {
|
|
87
|
+
model.collapsed = true;
|
|
88
|
+
}
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
this.parser = this.map[node.name];
|
|
92
|
+
if (this.parser) {
|
|
93
|
+
this.parser.parseOpen(node);
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
parseText(text) {
|
|
99
|
+
if (this.parser) {
|
|
100
|
+
this.parser.parseText(text);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
parseClose(name) {
|
|
104
|
+
if (this.parser) {
|
|
105
|
+
if (!this.parser.parseClose(name)) {
|
|
106
|
+
this.model.cells.push(this.parser.model);
|
|
107
|
+
if (this.maxItems && this.model.cells.length > this.maxItems) {
|
|
108
|
+
throw new Error(`Max column count (${this.maxItems}) exceeded`);
|
|
109
|
+
}
|
|
110
|
+
this.parser = undefined;
|
|
111
|
+
}
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
reconcile(model, options) {
|
|
117
|
+
model.style = model.styleId ? options.styles.getStyleModel(model.styleId) : {};
|
|
118
|
+
if (model.styleId !== undefined) {
|
|
119
|
+
model.styleId = undefined;
|
|
120
|
+
}
|
|
121
|
+
const cellXform = this.map.c;
|
|
122
|
+
model.cells.forEach(cellModel => {
|
|
123
|
+
cellXform.reconcile(cellModel, options);
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
module.exports = RowXform;
|
|
128
|
+
//# sourceMappingURL=row-xform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row-xform.js","names":["BaseXform","require","utils","CellXform","RowXform","constructor","options","maxItems","map","c","tag","prepare","model","styleId","styles","addStyleModel","style","cellXform","cells","forEach","cellModel","render","xmlStream","openNode","addAttribute","number","height","hidden","min","max","outlineLevel","collapsed","closeNode","parseOpen","node","parser","name","numRowsSeen","spans","attributes","split","span","parseInt","undefined","r","s","parseBoolean","bestFit","ht","parseFloat","parseText","text","parseClose","push","length","Error","reconcile","getStyleModel","module","exports"],"sources":["../../../../../lib/xlsx/xform/sheet/row-xform.js"],"sourcesContent":["const BaseXform = require('../base-xform');\r\nconst utils = require('../../../utils/utils');\r\n\r\nconst CellXform = require('./cell-xform');\r\n\r\nclass RowXform extends BaseXform {\r\n constructor(options) {\r\n super();\r\n\r\n this.maxItems = options && options.maxItems;\r\n this.map = {\r\n c: new CellXform(),\r\n };\r\n }\r\n\r\n get tag() {\r\n return 'row';\r\n }\r\n\r\n prepare(model, options) {\r\n const styleId = options.styles.addStyleModel(model.style);\r\n if (styleId) {\r\n model.styleId = styleId;\r\n }\r\n const cellXform = this.map.c;\r\n model.cells.forEach(cellModel => {\r\n cellXform.prepare(cellModel, options);\r\n });\r\n }\r\n\r\n render(xmlStream, model, options) {\r\n xmlStream.openNode('row');\r\n xmlStream.addAttribute('r', model.number);\r\n if (model.height) {\r\n xmlStream.addAttribute('ht', model.height);\r\n xmlStream.addAttribute('customHeight', '1');\r\n }\r\n if (model.hidden) {\r\n xmlStream.addAttribute('hidden', '1');\r\n }\r\n if (model.min > 0 && model.max > 0 && model.min <= model.max) {\r\n xmlStream.addAttribute('spans', `${model.min}:${model.max}`);\r\n }\r\n if (model.styleId) {\r\n xmlStream.addAttribute('s', model.styleId);\r\n xmlStream.addAttribute('customFormat', '1');\r\n }\r\n xmlStream.addAttribute('x14ac:dyDescent', '0.25');\r\n if (model.outlineLevel) {\r\n xmlStream.addAttribute('outlineLevel', model.outlineLevel);\r\n }\r\n if (model.collapsed) {\r\n xmlStream.addAttribute('collapsed', '1');\r\n }\r\n\r\n const cellXform = this.map.c;\r\n model.cells.forEach(cellModel => {\r\n cellXform.render(xmlStream, cellModel, options);\r\n });\r\n\r\n xmlStream.closeNode();\r\n }\r\n\r\n parseOpen(node) {\r\n if (this.parser) {\r\n this.parser.parseOpen(node);\r\n return true;\r\n }\r\n if (node.name === 'row') {\r\n this.numRowsSeen += 1;\r\n const spans = node.attributes.spans\r\n ? node.attributes.spans.split(':').map(span => parseInt(span, 10))\r\n : [undefined, undefined];\r\n const model = (this.model = {\r\n number: parseInt(node.attributes.r, 10),\r\n min: spans[0],\r\n max: spans[1],\r\n cells: [],\r\n });\r\n if (node.attributes.s) {\r\n model.styleId = parseInt(node.attributes.s, 10);\r\n }\r\n if (utils.parseBoolean(node.attributes.hidden)) {\r\n model.hidden = true;\r\n }\r\n if (utils.parseBoolean(node.attributes.bestFit)) {\r\n model.bestFit = true;\r\n }\r\n if (node.attributes.ht) {\r\n model.height = parseFloat(node.attributes.ht);\r\n }\r\n if (node.attributes.outlineLevel) {\r\n model.outlineLevel = parseInt(node.attributes.outlineLevel, 10);\r\n }\r\n if (utils.parseBoolean(node.attributes.collapsed)) {\r\n model.collapsed = true;\r\n }\r\n return true;\r\n }\r\n\r\n this.parser = this.map[node.name];\r\n if (this.parser) {\r\n this.parser.parseOpen(node);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n parseText(text) {\r\n if (this.parser) {\r\n this.parser.parseText(text);\r\n }\r\n }\r\n\r\n parseClose(name) {\r\n if (this.parser) {\r\n if (!this.parser.parseClose(name)) {\r\n this.model.cells.push(this.parser.model);\r\n if (this.maxItems && this.model.cells.length > this.maxItems) {\r\n throw new Error(`Max column count (${this.maxItems}) exceeded`);\r\n }\r\n this.parser = undefined;\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n reconcile(model, options) {\r\n model.style = model.styleId ? options.styles.getStyleModel(model.styleId) : {};\r\n if (model.styleId !== undefined) {\r\n model.styleId = undefined;\r\n }\r\n\r\n const cellXform = this.map.c;\r\n model.cells.forEach(cellModel => {\r\n cellXform.reconcile(cellModel, options);\r\n });\r\n }\r\n}\r\n\r\nmodule.exports = RowXform;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const _ = require('../../../utils/under-dash');
|
|
4
|
+
const BaseXform = require('../base-xform');
|
|
5
|
+
class SheetFormatPropertiesXform extends BaseXform {
|
|
6
|
+
get tag() {
|
|
7
|
+
return 'sheetFormatPr';
|
|
8
|
+
}
|
|
9
|
+
render(xmlStream, model) {
|
|
10
|
+
if (model) {
|
|
11
|
+
const attributes = {
|
|
12
|
+
defaultRowHeight: model.defaultRowHeight,
|
|
13
|
+
outlineLevelRow: model.outlineLevelRow,
|
|
14
|
+
outlineLevelCol: model.outlineLevelCol,
|
|
15
|
+
'x14ac:dyDescent': model.dyDescent
|
|
16
|
+
};
|
|
17
|
+
if (model.defaultColWidth) {
|
|
18
|
+
attributes.defaultColWidth = model.defaultColWidth;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// default value for 'defaultRowHeight' is 15, this should not be 'custom'
|
|
22
|
+
if (!model.defaultRowHeight || model.defaultRowHeight !== 15) {
|
|
23
|
+
attributes.customHeight = '1';
|
|
24
|
+
}
|
|
25
|
+
if (_.some(attributes, value => value !== undefined)) {
|
|
26
|
+
xmlStream.leafNode('sheetFormatPr', attributes);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
parseOpen(node) {
|
|
31
|
+
if (node.name === 'sheetFormatPr') {
|
|
32
|
+
this.model = {
|
|
33
|
+
defaultRowHeight: parseFloat(node.attributes.defaultRowHeight || '0'),
|
|
34
|
+
dyDescent: parseFloat(node.attributes['x14ac:dyDescent'] || '0'),
|
|
35
|
+
outlineLevelRow: parseInt(node.attributes.outlineLevelRow || '0', 10),
|
|
36
|
+
outlineLevelCol: parseInt(node.attributes.outlineLevelCol || '0', 10)
|
|
37
|
+
};
|
|
38
|
+
if (node.attributes.defaultColWidth) {
|
|
39
|
+
this.model.defaultColWidth = parseFloat(node.attributes.defaultColWidth);
|
|
40
|
+
}
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
parseText() {}
|
|
46
|
+
parseClose() {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
module.exports = SheetFormatPropertiesXform;
|
|
51
|
+
//# sourceMappingURL=sheet-format-properties-xform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sheet-format-properties-xform.js","names":["_","require","BaseXform","SheetFormatPropertiesXform","tag","render","xmlStream","model","attributes","defaultRowHeight","outlineLevelRow","outlineLevelCol","dyDescent","defaultColWidth","customHeight","some","value","undefined","leafNode","parseOpen","node","name","parseFloat","parseInt","parseText","parseClose","module","exports"],"sources":["../../../../../lib/xlsx/xform/sheet/sheet-format-properties-xform.js"],"sourcesContent":["const _ = require('../../../utils/under-dash');\r\nconst BaseXform = require('../base-xform');\r\n\r\nclass SheetFormatPropertiesXform extends BaseXform {\r\n get tag() {\r\n return 'sheetFormatPr';\r\n }\r\n\r\n render(xmlStream, model) {\r\n if (model) {\r\n const attributes = {\r\n defaultRowHeight: model.defaultRowHeight,\r\n outlineLevelRow: model.outlineLevelRow,\r\n outlineLevelCol: model.outlineLevelCol,\r\n 'x14ac:dyDescent': model.dyDescent,\r\n };\r\n if (model.defaultColWidth) {\r\n attributes.defaultColWidth = model.defaultColWidth;\r\n }\r\n\r\n // default value for 'defaultRowHeight' is 15, this should not be 'custom'\r\n if (!model.defaultRowHeight || model.defaultRowHeight !== 15) {\r\n attributes.customHeight = '1';\r\n }\r\n\r\n if (_.some(attributes, value => value !== undefined)) {\r\n xmlStream.leafNode('sheetFormatPr', attributes);\r\n }\r\n }\r\n }\r\n\r\n parseOpen(node) {\r\n if (node.name === 'sheetFormatPr') {\r\n this.model = {\r\n defaultRowHeight: parseFloat(node.attributes.defaultRowHeight || '0'),\r\n dyDescent: parseFloat(node.attributes['x14ac:dyDescent'] || '0'),\r\n outlineLevelRow: parseInt(node.attributes.outlineLevelRow || '0', 10),\r\n outlineLevelCol: parseInt(node.attributes.outlineLevelCol || '0', 10),\r\n };\r\n if (node.attributes.defaultColWidth) {\r\n this.model.defaultColWidth = parseFloat(node.attributes.defaultColWidth);\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n parseText() {}\r\n\r\n parseClose() {\r\n return false;\r\n }\r\n}\r\n\r\nmodule.exports = SheetFormatPropertiesXform;\r\n"],"mappings":";;AAAA,MAAMA,CAAC,GAAGC,OAAO,CAAC,2BAA2B,CAAC;AAC9C,MAAMC,SAAS,GAAGD,OAAO,CAAC,eAAe,CAAC;AAE1C,MAAME,0BAA0B,SAASD,SAAS,CAAC;EACjD,IAAIE,GAAGA,CAAA,EAAG;IACR,OAAO,eAAe;EACxB;EAEAC,MAAMA,CAACC,SAAS,EAAEC,KAAK,EAAE;IACvB,IAAIA,KAAK,EAAE;MACT,MAAMC,UAAU,GAAG;QACjBC,gBAAgB,EAAEF,KAAK,CAACE,gBAAgB;QACxCC,eAAe,EAAEH,KAAK,CAACG,eAAe;QACtCC,eAAe,EAAEJ,KAAK,CAACI,eAAe;QACtC,iBAAiB,EAAEJ,KAAK,CAACK;MAC3B,CAAC;MACD,IAAIL,KAAK,CAACM,eAAe,EAAE;QACzBL,UAAU,CAACK,eAAe,GAAGN,KAAK,CAACM,eAAe;MACpD;;MAEA;MACA,IAAI,CAACN,KAAK,CAACE,gBAAgB,IAAIF,KAAK,CAACE,gBAAgB,KAAK,EAAE,EAAE;QAC5DD,UAAU,CAACM,YAAY,GAAG,GAAG;MAC/B;MAEA,IAAId,CAAC,CAACe,IAAI,CAACP,UAAU,EAAEQ,KAAK,IAAIA,KAAK,KAAKC,SAAS,CAAC,EAAE;QACpDX,SAAS,CAACY,QAAQ,CAAC,eAAe,EAAEV,UAAU,CAAC;MACjD;IACF;EACF;EAEAW,SAASA,CAACC,IAAI,EAAE;IACd,IAAIA,IAAI,CAACC,IAAI,KAAK,eAAe,EAAE;MACjC,IAAI,CAACd,KAAK,GAAG;QACXE,gBAAgB,EAAEa,UAAU,CAACF,IAAI,CAACZ,UAAU,CAACC,gBAAgB,IAAI,GAAG,CAAC;QACrEG,SAAS,EAAEU,UAAU,CAACF,IAAI,CAACZ,UAAU,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC;QAChEE,eAAe,EAAEa,QAAQ,CAACH,IAAI,CAACZ,UAAU,CAACE,eAAe,IAAI,GAAG,EAAE,EAAE,CAAC;QACrEC,eAAe,EAAEY,QAAQ,CAACH,IAAI,CAACZ,UAAU,CAACG,eAAe,IAAI,GAAG,EAAE,EAAE;MACtE,CAAC;MACD,IAAIS,IAAI,CAACZ,UAAU,CAACK,eAAe,EAAE;QACnC,IAAI,CAACN,KAAK,CAACM,eAAe,GAAGS,UAAU,CAACF,IAAI,CAACZ,UAAU,CAACK,eAAe,CAAC;MAC1E;MACA,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;EAEAW,SAASA,CAAA,EAAG,CAAC;EAEbC,UAAUA,CAAA,EAAG;IACX,OAAO,KAAK;EACd;AACF;AAEAC,MAAM,CAACC,OAAO,GAAGxB,0BAA0B","ignoreList":[]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const BaseXform = require('../base-xform');
|
|
4
|
+
const ColorXform = require('../style/color-xform');
|
|
5
|
+
const PageSetupPropertiesXform = require('./page-setup-properties-xform');
|
|
6
|
+
const OutlinePropertiesXform = require('./outline-properties-xform');
|
|
7
|
+
class SheetPropertiesXform extends BaseXform {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.map = {
|
|
11
|
+
tabColor: new ColorXform('tabColor'),
|
|
12
|
+
pageSetUpPr: new PageSetupPropertiesXform(),
|
|
13
|
+
outlinePr: new OutlinePropertiesXform()
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
get tag() {
|
|
17
|
+
return 'sheetPr';
|
|
18
|
+
}
|
|
19
|
+
render(xmlStream, model) {
|
|
20
|
+
if (model) {
|
|
21
|
+
xmlStream.addRollback();
|
|
22
|
+
xmlStream.openNode('sheetPr');
|
|
23
|
+
let inner = false;
|
|
24
|
+
inner = this.map.tabColor.render(xmlStream, model.tabColor) || inner;
|
|
25
|
+
inner = this.map.pageSetUpPr.render(xmlStream, model.pageSetup) || inner;
|
|
26
|
+
inner = this.map.outlinePr.render(xmlStream, model.outlineProperties) || inner;
|
|
27
|
+
if (inner) {
|
|
28
|
+
xmlStream.closeNode();
|
|
29
|
+
xmlStream.commit();
|
|
30
|
+
} else {
|
|
31
|
+
xmlStream.rollback();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
parseOpen(node) {
|
|
36
|
+
if (this.parser) {
|
|
37
|
+
this.parser.parseOpen(node);
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
if (node.name === this.tag) {
|
|
41
|
+
this.reset();
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
if (this.map[node.name]) {
|
|
45
|
+
this.parser = this.map[node.name];
|
|
46
|
+
this.parser.parseOpen(node);
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
parseText(text) {
|
|
52
|
+
if (this.parser) {
|
|
53
|
+
this.parser.parseText(text);
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
parseClose(name) {
|
|
59
|
+
if (this.parser) {
|
|
60
|
+
if (!this.parser.parseClose(name)) {
|
|
61
|
+
this.parser = undefined;
|
|
62
|
+
}
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
if (this.map.tabColor.model || this.map.pageSetUpPr.model || this.map.outlinePr.model) {
|
|
66
|
+
this.model = {};
|
|
67
|
+
if (this.map.tabColor.model) {
|
|
68
|
+
this.model.tabColor = this.map.tabColor.model;
|
|
69
|
+
}
|
|
70
|
+
if (this.map.pageSetUpPr.model) {
|
|
71
|
+
this.model.pageSetup = this.map.pageSetUpPr.model;
|
|
72
|
+
}
|
|
73
|
+
if (this.map.outlinePr.model) {
|
|
74
|
+
this.model.outlineProperties = this.map.outlinePr.model;
|
|
75
|
+
}
|
|
76
|
+
} else {
|
|
77
|
+
this.model = null;
|
|
78
|
+
}
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
module.exports = SheetPropertiesXform;
|
|
83
|
+
//# sourceMappingURL=sheet-properties-xform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sheet-properties-xform.js","names":["BaseXform","require","ColorXform","PageSetupPropertiesXform","OutlinePropertiesXform","SheetPropertiesXform","constructor","map","tabColor","pageSetUpPr","outlinePr","tag","render","xmlStream","model","addRollback","openNode","inner","pageSetup","outlineProperties","closeNode","commit","rollback","parseOpen","node","parser","name","reset","parseText","text","parseClose","undefined","module","exports"],"sources":["../../../../../lib/xlsx/xform/sheet/sheet-properties-xform.js"],"sourcesContent":["const BaseXform = require('../base-xform');\r\nconst ColorXform = require('../style/color-xform');\r\nconst PageSetupPropertiesXform = require('./page-setup-properties-xform');\r\nconst OutlinePropertiesXform = require('./outline-properties-xform');\r\n\r\nclass SheetPropertiesXform extends BaseXform {\r\n constructor() {\r\n super();\r\n\r\n this.map = {\r\n tabColor: new ColorXform('tabColor'),\r\n pageSetUpPr: new PageSetupPropertiesXform(),\r\n outlinePr: new OutlinePropertiesXform(),\r\n };\r\n }\r\n\r\n get tag() {\r\n return 'sheetPr';\r\n }\r\n\r\n render(xmlStream, model) {\r\n if (model) {\r\n xmlStream.addRollback();\r\n xmlStream.openNode('sheetPr');\r\n\r\n let inner = false;\r\n inner = this.map.tabColor.render(xmlStream, model.tabColor) || inner;\r\n inner = this.map.pageSetUpPr.render(xmlStream, model.pageSetup) || inner;\r\n inner = this.map.outlinePr.render(xmlStream, model.outlineProperties) || inner;\r\n\r\n if (inner) {\r\n xmlStream.closeNode();\r\n xmlStream.commit();\r\n } else {\r\n xmlStream.rollback();\r\n }\r\n }\r\n }\r\n\r\n parseOpen(node) {\r\n if (this.parser) {\r\n this.parser.parseOpen(node);\r\n return true;\r\n }\r\n if (node.name === this.tag) {\r\n this.reset();\r\n return true;\r\n }\r\n if (this.map[node.name]) {\r\n this.parser = this.map[node.name];\r\n this.parser.parseOpen(node);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n parseText(text) {\r\n if (this.parser) {\r\n this.parser.parseText(text);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n parseClose(name) {\r\n if (this.parser) {\r\n if (!this.parser.parseClose(name)) {\r\n this.parser = undefined;\r\n }\r\n return true;\r\n }\r\n if (this.map.tabColor.model || this.map.pageSetUpPr.model || this.map.outlinePr.model) {\r\n this.model = {};\r\n if (this.map.tabColor.model) {\r\n this.model.tabColor = this.map.tabColor.model;\r\n }\r\n if (this.map.pageSetUpPr.model) {\r\n this.model.pageSetup = this.map.pageSetUpPr.model;\r\n }\r\n if (this.map.outlinePr.model) {\r\n this.model.outlineProperties = this.map.outlinePr.model;\r\n }\r\n } else {\r\n this.model = null;\r\n }\r\n return false;\r\n }\r\n}\r\n\r\nmodule.exports = SheetPropertiesXform;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const _ = require('../../../utils/under-dash');
|
|
4
|
+
const BaseXform = require('../base-xform');
|
|
5
|
+
function booleanToXml(model, value) {
|
|
6
|
+
return model ? value : undefined;
|
|
7
|
+
}
|
|
8
|
+
function xmlToBoolean(value, equals) {
|
|
9
|
+
return value === equals ? true : undefined;
|
|
10
|
+
}
|
|
11
|
+
class SheetProtectionXform extends BaseXform {
|
|
12
|
+
get tag() {
|
|
13
|
+
return 'sheetProtection';
|
|
14
|
+
}
|
|
15
|
+
render(xmlStream, model) {
|
|
16
|
+
if (model) {
|
|
17
|
+
const attributes = {
|
|
18
|
+
sheet: booleanToXml(model.sheet, '1'),
|
|
19
|
+
selectLockedCells: model.selectLockedCells === false ? '1' : undefined,
|
|
20
|
+
selectUnlockedCells: model.selectUnlockedCells === false ? '1' : undefined,
|
|
21
|
+
formatCells: booleanToXml(model.formatCells, '0'),
|
|
22
|
+
formatColumns: booleanToXml(model.formatColumns, '0'),
|
|
23
|
+
formatRows: booleanToXml(model.formatRows, '0'),
|
|
24
|
+
insertColumns: booleanToXml(model.insertColumns, '0'),
|
|
25
|
+
insertRows: booleanToXml(model.insertRows, '0'),
|
|
26
|
+
insertHyperlinks: booleanToXml(model.insertHyperlinks, '0'),
|
|
27
|
+
deleteColumns: booleanToXml(model.deleteColumns, '0'),
|
|
28
|
+
deleteRows: booleanToXml(model.deleteRows, '0'),
|
|
29
|
+
sort: booleanToXml(model.sort, '0'),
|
|
30
|
+
autoFilter: booleanToXml(model.autoFilter, '0'),
|
|
31
|
+
pivotTables: booleanToXml(model.pivotTables, '0')
|
|
32
|
+
};
|
|
33
|
+
if (model.sheet) {
|
|
34
|
+
attributes.algorithmName = model.algorithmName;
|
|
35
|
+
attributes.hashValue = model.hashValue;
|
|
36
|
+
attributes.saltValue = model.saltValue;
|
|
37
|
+
attributes.spinCount = model.spinCount;
|
|
38
|
+
attributes.objects = booleanToXml(model.objects === false, '1');
|
|
39
|
+
attributes.scenarios = booleanToXml(model.scenarios === false, '1');
|
|
40
|
+
}
|
|
41
|
+
if (_.some(attributes, value => value !== undefined)) {
|
|
42
|
+
xmlStream.leafNode(this.tag, attributes);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
parseOpen(node) {
|
|
47
|
+
switch (node.name) {
|
|
48
|
+
case this.tag:
|
|
49
|
+
this.model = {
|
|
50
|
+
sheet: xmlToBoolean(node.attributes.sheet, '1'),
|
|
51
|
+
objects: node.attributes.objects === '1' ? false : undefined,
|
|
52
|
+
scenarios: node.attributes.scenarios === '1' ? false : undefined,
|
|
53
|
+
selectLockedCells: node.attributes.selectLockedCells === '1' ? false : undefined,
|
|
54
|
+
selectUnlockedCells: node.attributes.selectUnlockedCells === '1' ? false : undefined,
|
|
55
|
+
formatCells: xmlToBoolean(node.attributes.formatCells, '0'),
|
|
56
|
+
formatColumns: xmlToBoolean(node.attributes.formatColumns, '0'),
|
|
57
|
+
formatRows: xmlToBoolean(node.attributes.formatRows, '0'),
|
|
58
|
+
insertColumns: xmlToBoolean(node.attributes.insertColumns, '0'),
|
|
59
|
+
insertRows: xmlToBoolean(node.attributes.insertRows, '0'),
|
|
60
|
+
insertHyperlinks: xmlToBoolean(node.attributes.insertHyperlinks, '0'),
|
|
61
|
+
deleteColumns: xmlToBoolean(node.attributes.deleteColumns, '0'),
|
|
62
|
+
deleteRows: xmlToBoolean(node.attributes.deleteRows, '0'),
|
|
63
|
+
sort: xmlToBoolean(node.attributes.sort, '0'),
|
|
64
|
+
autoFilter: xmlToBoolean(node.attributes.autoFilter, '0'),
|
|
65
|
+
pivotTables: xmlToBoolean(node.attributes.pivotTables, '0')
|
|
66
|
+
};
|
|
67
|
+
if (node.attributes.algorithmName) {
|
|
68
|
+
this.model.algorithmName = node.attributes.algorithmName;
|
|
69
|
+
this.model.hashValue = node.attributes.hashValue;
|
|
70
|
+
this.model.saltValue = node.attributes.saltValue;
|
|
71
|
+
this.model.spinCount = parseInt(node.attributes.spinCount, 10);
|
|
72
|
+
}
|
|
73
|
+
return true;
|
|
74
|
+
default:
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
parseText() {}
|
|
79
|
+
parseClose() {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
module.exports = SheetProtectionXform;
|
|
84
|
+
//# sourceMappingURL=sheet-protection-xform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sheet-protection-xform.js","names":["_","require","BaseXform","booleanToXml","model","value","undefined","xmlToBoolean","equals","SheetProtectionXform","tag","render","xmlStream","attributes","sheet","selectLockedCells","selectUnlockedCells","formatCells","formatColumns","formatRows","insertColumns","insertRows","insertHyperlinks","deleteColumns","deleteRows","sort","autoFilter","pivotTables","algorithmName","hashValue","saltValue","spinCount","objects","scenarios","some","leafNode","parseOpen","node","name","parseInt","parseText","parseClose","module","exports"],"sources":["../../../../../lib/xlsx/xform/sheet/sheet-protection-xform.js"],"sourcesContent":["const _ = require('../../../utils/under-dash');\r\nconst BaseXform = require('../base-xform');\r\n\r\nfunction booleanToXml(model, value) {\r\n return model ? value : undefined;\r\n}\r\n\r\nfunction xmlToBoolean(value, equals) {\r\n return value === equals ? true : undefined;\r\n}\r\n\r\nclass SheetProtectionXform extends BaseXform {\r\n get tag() {\r\n return 'sheetProtection';\r\n }\r\n\r\n render(xmlStream, model) {\r\n if (model) {\r\n const attributes = {\r\n sheet: booleanToXml(model.sheet, '1'),\r\n selectLockedCells: model.selectLockedCells === false ? '1' : undefined,\r\n selectUnlockedCells: model.selectUnlockedCells === false ? '1' : undefined,\r\n formatCells: booleanToXml(model.formatCells, '0'),\r\n formatColumns: booleanToXml(model.formatColumns, '0'),\r\n formatRows: booleanToXml(model.formatRows, '0'),\r\n insertColumns: booleanToXml(model.insertColumns, '0'),\r\n insertRows: booleanToXml(model.insertRows, '0'),\r\n insertHyperlinks: booleanToXml(model.insertHyperlinks, '0'),\r\n deleteColumns: booleanToXml(model.deleteColumns, '0'),\r\n deleteRows: booleanToXml(model.deleteRows, '0'),\r\n sort: booleanToXml(model.sort, '0'),\r\n autoFilter: booleanToXml(model.autoFilter, '0'),\r\n pivotTables: booleanToXml(model.pivotTables, '0'),\r\n };\r\n if (model.sheet) {\r\n attributes.algorithmName = model.algorithmName;\r\n attributes.hashValue = model.hashValue;\r\n attributes.saltValue = model.saltValue;\r\n attributes.spinCount = model.spinCount;\r\n attributes.objects = booleanToXml(model.objects === false, '1');\r\n attributes.scenarios = booleanToXml(model.scenarios === false, '1');\r\n }\r\n if (_.some(attributes, value => value !== undefined)) {\r\n xmlStream.leafNode(this.tag, attributes);\r\n }\r\n }\r\n }\r\n\r\n parseOpen(node) {\r\n switch (node.name) {\r\n case this.tag:\r\n this.model = {\r\n sheet: xmlToBoolean(node.attributes.sheet, '1'),\r\n objects: node.attributes.objects === '1' ? false : undefined,\r\n scenarios: node.attributes.scenarios === '1' ? false : undefined,\r\n selectLockedCells: node.attributes.selectLockedCells === '1' ? false : undefined,\r\n selectUnlockedCells: node.attributes.selectUnlockedCells === '1' ? false : undefined,\r\n formatCells: xmlToBoolean(node.attributes.formatCells, '0'),\r\n formatColumns: xmlToBoolean(node.attributes.formatColumns, '0'),\r\n formatRows: xmlToBoolean(node.attributes.formatRows, '0'),\r\n insertColumns: xmlToBoolean(node.attributes.insertColumns, '0'),\r\n insertRows: xmlToBoolean(node.attributes.insertRows, '0'),\r\n insertHyperlinks: xmlToBoolean(node.attributes.insertHyperlinks, '0'),\r\n deleteColumns: xmlToBoolean(node.attributes.deleteColumns, '0'),\r\n deleteRows: xmlToBoolean(node.attributes.deleteRows, '0'),\r\n sort: xmlToBoolean(node.attributes.sort, '0'),\r\n autoFilter: xmlToBoolean(node.attributes.autoFilter, '0'),\r\n pivotTables: xmlToBoolean(node.attributes.pivotTables, '0'),\r\n };\r\n if (node.attributes.algorithmName) {\r\n this.model.algorithmName = node.attributes.algorithmName;\r\n this.model.hashValue = node.attributes.hashValue;\r\n this.model.saltValue = node.attributes.saltValue;\r\n this.model.spinCount = parseInt(node.attributes.spinCount, 10);\r\n }\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n parseText() {}\r\n\r\n parseClose() {\r\n return false;\r\n }\r\n}\r\n\r\nmodule.exports = SheetProtectionXform;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const colCache = require('../../../utils/col-cache');
|
|
4
|
+
const BaseXform = require('../base-xform');
|
|
5
|
+
const VIEW_STATES = {
|
|
6
|
+
frozen: 'frozen',
|
|
7
|
+
frozenSplit: 'frozen',
|
|
8
|
+
split: 'split'
|
|
9
|
+
};
|
|
10
|
+
class SheetViewXform extends BaseXform {
|
|
11
|
+
get tag() {
|
|
12
|
+
return 'sheetView';
|
|
13
|
+
}
|
|
14
|
+
prepare(model) {
|
|
15
|
+
switch (model.state) {
|
|
16
|
+
case 'frozen':
|
|
17
|
+
case 'split':
|
|
18
|
+
break;
|
|
19
|
+
default:
|
|
20
|
+
model.state = 'normal';
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
render(xmlStream, model) {
|
|
25
|
+
xmlStream.openNode('sheetView', {
|
|
26
|
+
workbookViewId: model.workbookViewId || 0
|
|
27
|
+
});
|
|
28
|
+
const add = function (name, value, included) {
|
|
29
|
+
if (included) {
|
|
30
|
+
xmlStream.addAttribute(name, value);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
add('rightToLeft', '1', model.rightToLeft === true);
|
|
34
|
+
add('tabSelected', '1', model.tabSelected);
|
|
35
|
+
add('showRuler', '0', model.showRuler === false);
|
|
36
|
+
add('showRowColHeaders', '0', model.showRowColHeaders === false);
|
|
37
|
+
add('showGridLines', '0', model.showGridLines === false);
|
|
38
|
+
add('zoomScale', model.zoomScale, model.zoomScale);
|
|
39
|
+
add('zoomScaleNormal', model.zoomScaleNormal, model.zoomScaleNormal);
|
|
40
|
+
add('view', model.style, model.style);
|
|
41
|
+
let topLeftCell;
|
|
42
|
+
let xSplit;
|
|
43
|
+
let ySplit;
|
|
44
|
+
let activePane;
|
|
45
|
+
switch (model.state) {
|
|
46
|
+
case 'frozen':
|
|
47
|
+
xSplit = model.xSplit || 0;
|
|
48
|
+
ySplit = model.ySplit || 0;
|
|
49
|
+
topLeftCell = model.topLeftCell || colCache.getAddress(ySplit + 1, xSplit + 1).address;
|
|
50
|
+
activePane = model.xSplit && model.ySplit && 'bottomRight' || model.xSplit && 'topRight' || 'bottomLeft';
|
|
51
|
+
xmlStream.leafNode('pane', {
|
|
52
|
+
xSplit: model.xSplit || undefined,
|
|
53
|
+
ySplit: model.ySplit || undefined,
|
|
54
|
+
topLeftCell,
|
|
55
|
+
activePane,
|
|
56
|
+
state: 'frozen'
|
|
57
|
+
});
|
|
58
|
+
xmlStream.leafNode('selection', {
|
|
59
|
+
pane: activePane,
|
|
60
|
+
activeCell: model.activeCell,
|
|
61
|
+
sqref: model.activeCell
|
|
62
|
+
});
|
|
63
|
+
break;
|
|
64
|
+
case 'split':
|
|
65
|
+
if (model.activePane === 'topLeft') {
|
|
66
|
+
model.activePane = undefined;
|
|
67
|
+
}
|
|
68
|
+
xmlStream.leafNode('pane', {
|
|
69
|
+
xSplit: model.xSplit || undefined,
|
|
70
|
+
ySplit: model.ySplit || undefined,
|
|
71
|
+
topLeftCell: model.topLeftCell,
|
|
72
|
+
activePane: model.activePane
|
|
73
|
+
});
|
|
74
|
+
xmlStream.leafNode('selection', {
|
|
75
|
+
pane: model.activePane,
|
|
76
|
+
activeCell: model.activeCell,
|
|
77
|
+
sqref: model.activeCell
|
|
78
|
+
});
|
|
79
|
+
break;
|
|
80
|
+
case 'normal':
|
|
81
|
+
if (model.activeCell) {
|
|
82
|
+
xmlStream.leafNode('selection', {
|
|
83
|
+
activeCell: model.activeCell,
|
|
84
|
+
sqref: model.activeCell
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
break;
|
|
88
|
+
default:
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
xmlStream.closeNode();
|
|
92
|
+
}
|
|
93
|
+
parseOpen(node) {
|
|
94
|
+
switch (node.name) {
|
|
95
|
+
case 'sheetView':
|
|
96
|
+
this.sheetView = {
|
|
97
|
+
workbookViewId: parseInt(node.attributes.workbookViewId, 10),
|
|
98
|
+
rightToLeft: node.attributes.rightToLeft === '1',
|
|
99
|
+
tabSelected: node.attributes.tabSelected === '1',
|
|
100
|
+
showRuler: !(node.attributes.showRuler === '0'),
|
|
101
|
+
showRowColHeaders: !(node.attributes.showRowColHeaders === '0'),
|
|
102
|
+
showGridLines: !(node.attributes.showGridLines === '0'),
|
|
103
|
+
zoomScale: parseInt(node.attributes.zoomScale || '100', 10),
|
|
104
|
+
zoomScaleNormal: parseInt(node.attributes.zoomScaleNormal || '100', 10),
|
|
105
|
+
style: node.attributes.view
|
|
106
|
+
};
|
|
107
|
+
this.pane = undefined;
|
|
108
|
+
this.selections = {};
|
|
109
|
+
return true;
|
|
110
|
+
case 'pane':
|
|
111
|
+
this.pane = {
|
|
112
|
+
xSplit: parseInt(node.attributes.xSplit || '0', 10),
|
|
113
|
+
ySplit: parseInt(node.attributes.ySplit || '0', 10),
|
|
114
|
+
topLeftCell: node.attributes.topLeftCell,
|
|
115
|
+
activePane: node.attributes.activePane || 'topLeft',
|
|
116
|
+
state: node.attributes.state
|
|
117
|
+
};
|
|
118
|
+
return true;
|
|
119
|
+
case 'selection':
|
|
120
|
+
{
|
|
121
|
+
const name = node.attributes.pane || 'topLeft';
|
|
122
|
+
this.selections[name] = {
|
|
123
|
+
pane: name,
|
|
124
|
+
activeCell: node.attributes.activeCell
|
|
125
|
+
};
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
default:
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
parseText() {}
|
|
133
|
+
parseClose(name) {
|
|
134
|
+
let model;
|
|
135
|
+
let selection;
|
|
136
|
+
switch (name) {
|
|
137
|
+
case 'sheetView':
|
|
138
|
+
if (this.sheetView && this.pane) {
|
|
139
|
+
model = this.model = {
|
|
140
|
+
workbookViewId: this.sheetView.workbookViewId,
|
|
141
|
+
rightToLeft: this.sheetView.rightToLeft,
|
|
142
|
+
state: VIEW_STATES[this.pane.state] || 'split',
|
|
143
|
+
// split is default
|
|
144
|
+
xSplit: this.pane.xSplit,
|
|
145
|
+
ySplit: this.pane.ySplit,
|
|
146
|
+
topLeftCell: this.pane.topLeftCell,
|
|
147
|
+
showRuler: this.sheetView.showRuler,
|
|
148
|
+
showRowColHeaders: this.sheetView.showRowColHeaders,
|
|
149
|
+
showGridLines: this.sheetView.showGridLines,
|
|
150
|
+
zoomScale: this.sheetView.zoomScale,
|
|
151
|
+
zoomScaleNormal: this.sheetView.zoomScaleNormal
|
|
152
|
+
};
|
|
153
|
+
if (this.model.state === 'split') {
|
|
154
|
+
model.activePane = this.pane.activePane;
|
|
155
|
+
}
|
|
156
|
+
selection = this.selections[this.pane.activePane];
|
|
157
|
+
if (selection && selection.activeCell) {
|
|
158
|
+
model.activeCell = selection.activeCell;
|
|
159
|
+
}
|
|
160
|
+
if (this.sheetView.style) {
|
|
161
|
+
model.style = this.sheetView.style;
|
|
162
|
+
}
|
|
163
|
+
} else {
|
|
164
|
+
model = this.model = {
|
|
165
|
+
workbookViewId: this.sheetView.workbookViewId,
|
|
166
|
+
rightToLeft: this.sheetView.rightToLeft,
|
|
167
|
+
state: 'normal',
|
|
168
|
+
showRuler: this.sheetView.showRuler,
|
|
169
|
+
showRowColHeaders: this.sheetView.showRowColHeaders,
|
|
170
|
+
showGridLines: this.sheetView.showGridLines,
|
|
171
|
+
zoomScale: this.sheetView.zoomScale,
|
|
172
|
+
zoomScaleNormal: this.sheetView.zoomScaleNormal
|
|
173
|
+
};
|
|
174
|
+
selection = this.selections.topLeft;
|
|
175
|
+
if (selection && selection.activeCell) {
|
|
176
|
+
model.activeCell = selection.activeCell;
|
|
177
|
+
}
|
|
178
|
+
if (this.sheetView.style) {
|
|
179
|
+
model.style = this.sheetView.style;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return false;
|
|
183
|
+
default:
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
reconcile() {}
|
|
188
|
+
}
|
|
189
|
+
module.exports = SheetViewXform;
|
|
190
|
+
//# sourceMappingURL=sheet-view-xform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sheet-view-xform.js","names":["colCache","require","BaseXform","VIEW_STATES","frozen","frozenSplit","split","SheetViewXform","tag","prepare","model","state","render","xmlStream","openNode","workbookViewId","add","name","value","included","addAttribute","rightToLeft","tabSelected","showRuler","showRowColHeaders","showGridLines","zoomScale","zoomScaleNormal","style","topLeftCell","xSplit","ySplit","activePane","getAddress","address","leafNode","undefined","pane","activeCell","sqref","closeNode","parseOpen","node","sheetView","parseInt","attributes","view","selections","parseText","parseClose","selection","topLeft","reconcile","module","exports"],"sources":["../../../../../lib/xlsx/xform/sheet/sheet-view-xform.js"],"sourcesContent":["const colCache = require('../../../utils/col-cache');\r\nconst BaseXform = require('../base-xform');\r\n\r\nconst VIEW_STATES = {\r\n frozen: 'frozen',\r\n frozenSplit: 'frozen',\r\n split: 'split',\r\n};\r\n\r\nclass SheetViewXform extends BaseXform {\r\n get tag() {\r\n return 'sheetView';\r\n }\r\n\r\n prepare(model) {\r\n switch (model.state) {\r\n case 'frozen':\r\n case 'split':\r\n break;\r\n default:\r\n model.state = 'normal';\r\n break;\r\n }\r\n }\r\n\r\n render(xmlStream, model) {\r\n xmlStream.openNode('sheetView', {\r\n workbookViewId: model.workbookViewId || 0,\r\n });\r\n const add = function(name, value, included) {\r\n if (included) {\r\n xmlStream.addAttribute(name, value);\r\n }\r\n };\r\n add('rightToLeft', '1', model.rightToLeft === true);\r\n add('tabSelected', '1', model.tabSelected);\r\n add('showRuler', '0', model.showRuler === false);\r\n add('showRowColHeaders', '0', model.showRowColHeaders === false);\r\n add('showGridLines', '0', model.showGridLines === false);\r\n add('zoomScale', model.zoomScale, model.zoomScale);\r\n add('zoomScaleNormal', model.zoomScaleNormal, model.zoomScaleNormal);\r\n add('view', model.style, model.style);\r\n\r\n let topLeftCell;\r\n let xSplit;\r\n let ySplit;\r\n let activePane;\r\n switch (model.state) {\r\n case 'frozen':\r\n xSplit = model.xSplit || 0;\r\n ySplit = model.ySplit || 0;\r\n topLeftCell = model.topLeftCell || colCache.getAddress(ySplit + 1, xSplit + 1).address;\r\n activePane =\r\n (model.xSplit && model.ySplit && 'bottomRight') ||\r\n (model.xSplit && 'topRight') ||\r\n 'bottomLeft';\r\n\r\n xmlStream.leafNode('pane', {\r\n xSplit: model.xSplit || undefined,\r\n ySplit: model.ySplit || undefined,\r\n topLeftCell,\r\n activePane,\r\n state: 'frozen',\r\n });\r\n xmlStream.leafNode('selection', {\r\n pane: activePane,\r\n activeCell: model.activeCell,\r\n sqref: model.activeCell,\r\n });\r\n break;\r\n case 'split':\r\n if (model.activePane === 'topLeft') {\r\n model.activePane = undefined;\r\n }\r\n xmlStream.leafNode('pane', {\r\n xSplit: model.xSplit || undefined,\r\n ySplit: model.ySplit || undefined,\r\n topLeftCell: model.topLeftCell,\r\n activePane: model.activePane,\r\n });\r\n xmlStream.leafNode('selection', {\r\n pane: model.activePane,\r\n activeCell: model.activeCell,\r\n sqref: model.activeCell,\r\n });\r\n break;\r\n case 'normal':\r\n if (model.activeCell) {\r\n xmlStream.leafNode('selection', {\r\n activeCell: model.activeCell,\r\n sqref: model.activeCell,\r\n });\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n xmlStream.closeNode();\r\n }\r\n\r\n parseOpen(node) {\r\n switch (node.name) {\r\n case 'sheetView':\r\n this.sheetView = {\r\n workbookViewId: parseInt(node.attributes.workbookViewId, 10),\r\n rightToLeft: node.attributes.rightToLeft === '1',\r\n tabSelected: node.attributes.tabSelected === '1',\r\n showRuler: !(node.attributes.showRuler === '0'),\r\n showRowColHeaders: !(node.attributes.showRowColHeaders === '0'),\r\n showGridLines: !(node.attributes.showGridLines === '0'),\r\n zoomScale: parseInt(node.attributes.zoomScale || '100', 10),\r\n zoomScaleNormal: parseInt(node.attributes.zoomScaleNormal || '100', 10),\r\n style: node.attributes.view,\r\n };\r\n this.pane = undefined;\r\n this.selections = {};\r\n return true;\r\n\r\n case 'pane':\r\n this.pane = {\r\n xSplit: parseInt(node.attributes.xSplit || '0', 10),\r\n ySplit: parseInt(node.attributes.ySplit || '0', 10),\r\n topLeftCell: node.attributes.topLeftCell,\r\n activePane: node.attributes.activePane || 'topLeft',\r\n state: node.attributes.state,\r\n };\r\n return true;\r\n\r\n case 'selection': {\r\n const name = node.attributes.pane || 'topLeft';\r\n this.selections[name] = {\r\n pane: name,\r\n activeCell: node.attributes.activeCell,\r\n };\r\n return true;\r\n }\r\n\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n parseText() {}\r\n\r\n parseClose(name) {\r\n let model;\r\n let selection;\r\n switch (name) {\r\n case 'sheetView':\r\n if (this.sheetView && this.pane) {\r\n model = this.model = {\r\n workbookViewId: this.sheetView.workbookViewId,\r\n rightToLeft: this.sheetView.rightToLeft,\r\n state: VIEW_STATES[this.pane.state] || 'split', // split is default\r\n xSplit: this.pane.xSplit,\r\n ySplit: this.pane.ySplit,\r\n topLeftCell: this.pane.topLeftCell,\r\n showRuler: this.sheetView.showRuler,\r\n showRowColHeaders: this.sheetView.showRowColHeaders,\r\n showGridLines: this.sheetView.showGridLines,\r\n zoomScale: this.sheetView.zoomScale,\r\n zoomScaleNormal: this.sheetView.zoomScaleNormal,\r\n };\r\n if (this.model.state === 'split') {\r\n model.activePane = this.pane.activePane;\r\n }\r\n selection = this.selections[this.pane.activePane];\r\n if (selection && selection.activeCell) {\r\n model.activeCell = selection.activeCell;\r\n }\r\n if (this.sheetView.style) {\r\n model.style = this.sheetView.style;\r\n }\r\n } else {\r\n model = this.model = {\r\n workbookViewId: this.sheetView.workbookViewId,\r\n rightToLeft: this.sheetView.rightToLeft,\r\n state: 'normal',\r\n showRuler: this.sheetView.showRuler,\r\n showRowColHeaders: this.sheetView.showRowColHeaders,\r\n showGridLines: this.sheetView.showGridLines,\r\n zoomScale: this.sheetView.zoomScale,\r\n zoomScaleNormal: this.sheetView.zoomScaleNormal,\r\n };\r\n selection = this.selections.topLeft;\r\n if (selection && selection.activeCell) {\r\n model.activeCell = selection.activeCell;\r\n }\r\n if (this.sheetView.style) {\r\n model.style = this.sheetView.style;\r\n }\r\n }\r\n return false;\r\n default:\r\n return true;\r\n }\r\n }\r\n\r\n reconcile() {}\r\n}\r\n\r\nmodule.exports = SheetViewXform;\r\n"],"mappings":"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","ignoreList":[]}
|