@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.
Files changed (537) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +3024 -0
  3. package/README_zh.md +2878 -0
  4. package/dist/LICENSE +22 -0
  5. package/dist/es5/csv/csv.js +182 -0
  6. package/dist/es5/csv/csv.js.map +1 -0
  7. package/dist/es5/csv/line-buffer.js +68 -0
  8. package/dist/es5/csv/line-buffer.js.map +1 -0
  9. package/dist/es5/csv/stream-converter.js +110 -0
  10. package/dist/es5/csv/stream-converter.js.map +1 -0
  11. package/dist/es5/doc/anchor.js +73 -0
  12. package/dist/es5/doc/anchor.js.map +1 -0
  13. package/dist/es5/doc/cell.js +960 -0
  14. package/dist/es5/doc/cell.js.map +1 -0
  15. package/dist/es5/doc/column.js +274 -0
  16. package/dist/es5/doc/column.js.map +1 -0
  17. package/dist/es5/doc/data-validations.js +18 -0
  18. package/dist/es5/doc/data-validations.js.map +1 -0
  19. package/dist/es5/doc/defined-names.js +173 -0
  20. package/dist/es5/doc/defined-names.js.map +1 -0
  21. package/dist/es5/doc/enums.js +49 -0
  22. package/dist/es5/doc/enums.js.map +1 -0
  23. package/dist/es5/doc/image.js +69 -0
  24. package/dist/es5/doc/image.js.map +1 -0
  25. package/dist/es5/doc/modelcontainer.js +16 -0
  26. package/dist/es5/doc/modelcontainer.js.map +1 -0
  27. package/dist/es5/doc/note.js +64 -0
  28. package/dist/es5/doc/note.js.map +1 -0
  29. package/dist/es5/doc/pivot-table.js +137 -0
  30. package/dist/es5/doc/pivot-table.js.map +1 -0
  31. package/dist/es5/doc/range.js +229 -0
  32. package/dist/es5/doc/range.js.map +1 -0
  33. package/dist/es5/doc/row.js +382 -0
  34. package/dist/es5/doc/row.js.map +1 -0
  35. package/dist/es5/doc/table.js +441 -0
  36. package/dist/es5/doc/table.js.map +1 -0
  37. package/dist/es5/doc/workbook.js +205 -0
  38. package/dist/es5/doc/workbook.js.map +1 -0
  39. package/dist/es5/doc/worksheet.js +918 -0
  40. package/dist/es5/doc/worksheet.js.map +1 -0
  41. package/dist/es5/exceljs.bare.js +14 -0
  42. package/dist/es5/exceljs.bare.js.map +1 -0
  43. package/dist/es5/exceljs.browser.js +36 -0
  44. package/dist/es5/exceljs.browser.js.map +1 -0
  45. package/dist/es5/exceljs.nodejs.js +15 -0
  46. package/dist/es5/exceljs.nodejs.js.map +1 -0
  47. package/dist/es5/index.js +15 -0
  48. package/dist/es5/stream/xlsx/hyperlink-reader.js +90 -0
  49. package/dist/es5/stream/xlsx/hyperlink-reader.js.map +1 -0
  50. package/dist/es5/stream/xlsx/sheet-comments-writer.js +94 -0
  51. package/dist/es5/stream/xlsx/sheet-comments-writer.js.map +1 -0
  52. package/dist/es5/stream/xlsx/sheet-rels-writer.js +94 -0
  53. package/dist/es5/stream/xlsx/sheet-rels-writer.js.map +1 -0
  54. package/dist/es5/stream/xlsx/workbook-reader.js +362 -0
  55. package/dist/es5/stream/xlsx/workbook-reader.js.map +1 -0
  56. package/dist/es5/stream/xlsx/workbook-writer.js +347 -0
  57. package/dist/es5/stream/xlsx/workbook-writer.js.map +1 -0
  58. package/dist/es5/stream/xlsx/worksheet-reader.js +392 -0
  59. package/dist/es5/stream/xlsx/worksheet-reader.js.map +1 -0
  60. package/dist/es5/stream/xlsx/worksheet-writer.js +652 -0
  61. package/dist/es5/stream/xlsx/worksheet-writer.js.map +1 -0
  62. package/dist/es5/utils/auto-drain.js +18 -0
  63. package/dist/es5/utils/auto-drain.js.map +1 -0
  64. package/dist/es5/utils/browser-buffer-decode.js +15 -0
  65. package/dist/es5/utils/browser-buffer-decode.js.map +1 -0
  66. package/dist/es5/utils/browser-buffer-encode.js +18 -0
  67. package/dist/es5/utils/browser-buffer-encode.js.map +1 -0
  68. package/dist/es5/utils/cell-matrix.js +149 -0
  69. package/dist/es5/utils/cell-matrix.js.map +1 -0
  70. package/dist/es5/utils/col-cache.js +258 -0
  71. package/dist/es5/utils/col-cache.js.map +1 -0
  72. package/dist/es5/utils/copy-style.js +43 -0
  73. package/dist/es5/utils/copy-style.js.map +1 -0
  74. package/dist/es5/utils/encryptor.js +58 -0
  75. package/dist/es5/utils/encryptor.js.map +1 -0
  76. package/dist/es5/utils/iterate-stream.js +46 -0
  77. package/dist/es5/utils/iterate-stream.js.map +1 -0
  78. package/dist/es5/utils/parse-sax.js +47 -0
  79. package/dist/es5/utils/parse-sax.js.map +1 -0
  80. package/dist/es5/utils/shared-formula.js +42 -0
  81. package/dist/es5/utils/shared-formula.js.map +1 -0
  82. package/dist/es5/utils/shared-strings.js +32 -0
  83. package/dist/es5/utils/shared-strings.js.map +1 -0
  84. package/dist/es5/utils/stream-base64.js +66 -0
  85. package/dist/es5/utils/stream-base64.js.map +1 -0
  86. package/dist/es5/utils/stream-buf.js +343 -0
  87. package/dist/es5/utils/stream-buf.js.map +1 -0
  88. package/dist/es5/utils/string-buf.js +73 -0
  89. package/dist/es5/utils/string-buf.js.map +1 -0
  90. package/dist/es5/utils/string-builder.js +32 -0
  91. package/dist/es5/utils/string-builder.js.map +1 -0
  92. package/dist/es5/utils/stuttered-pipe.js +61 -0
  93. package/dist/es5/utils/stuttered-pipe.js.map +1 -0
  94. package/dist/es5/utils/typed-stack.js +23 -0
  95. package/dist/es5/utils/typed-stack.js.map +1 -0
  96. package/dist/es5/utils/under-dash.js +168 -0
  97. package/dist/es5/utils/under-dash.js.map +1 -0
  98. package/dist/es5/utils/utils.js +204 -0
  99. package/dist/es5/utils/utils.js.map +1 -0
  100. package/dist/es5/utils/xml-stream.js +151 -0
  101. package/dist/es5/utils/xml-stream.js.map +1 -0
  102. package/dist/es5/utils/zip-stream.js +79 -0
  103. package/dist/es5/utils/zip-stream.js.map +1 -0
  104. package/dist/es5/xlsx/defaultnumformats.js +230 -0
  105. package/dist/es5/xlsx/defaultnumformats.js.map +1 -0
  106. package/dist/es5/xlsx/rel-type.js +21 -0
  107. package/dist/es5/xlsx/rel-type.js.map +1 -0
  108. package/dist/es5/xlsx/xform/base-xform.js +139 -0
  109. package/dist/es5/xlsx/xform/base-xform.js.map +1 -0
  110. package/dist/es5/xlsx/xform/book/defined-name-xform.js +85 -0
  111. package/dist/es5/xlsx/xform/book/defined-name-xform.js.map +1 -0
  112. package/dist/es5/xlsx/xform/book/sheet-xform.js +32 -0
  113. package/dist/es5/xlsx/xform/book/sheet-xform.js.map +1 -0
  114. package/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js +24 -0
  115. package/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js.map +1 -0
  116. package/dist/es5/xlsx/xform/book/workbook-pivot-cache-xform.js +27 -0
  117. package/dist/es5/xlsx/xform/book/workbook-pivot-cache-xform.js.map +1 -0
  118. package/dist/es5/xlsx/xform/book/workbook-properties-xform.js +27 -0
  119. package/dist/es5/xlsx/xform/book/workbook-properties-xform.js.map +1 -0
  120. package/dist/es5/xlsx/xform/book/workbook-view-xform.js +51 -0
  121. package/dist/es5/xlsx/xform/book/workbook-view-xform.js.map +1 -0
  122. package/dist/es5/xlsx/xform/book/workbook-xform.js +241 -0
  123. package/dist/es5/xlsx/xform/book/workbook-xform.js.map +1 -0
  124. package/dist/es5/xlsx/xform/comment/comment-xform.js +103 -0
  125. package/dist/es5/xlsx/xform/comment/comment-xform.js.map +1 -0
  126. package/dist/es5/xlsx/xform/comment/comments-xform.js +76 -0
  127. package/dist/es5/xlsx/xform/comment/comments-xform.js.map +1 -0
  128. package/dist/es5/xlsx/xform/comment/style/vml-position-xform.js +35 -0
  129. package/dist/es5/xlsx/xform/comment/style/vml-position-xform.js.map +1 -0
  130. package/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js +32 -0
  131. package/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js.map +1 -0
  132. package/dist/es5/xlsx/xform/comment/vml-anchor-xform.js +53 -0
  133. package/dist/es5/xlsx/xform/comment/vml-anchor-xform.js.map +1 -0
  134. package/dist/es5/xlsx/xform/comment/vml-client-data-xform.js +97 -0
  135. package/dist/es5/xlsx/xform/comment/vml-client-data-xform.js.map +1 -0
  136. package/dist/es5/xlsx/xform/comment/vml-notes-xform.js +107 -0
  137. package/dist/es5/xlsx/xform/comment/vml-notes-xform.js.map +1 -0
  138. package/dist/es5/xlsx/xform/comment/vml-shape-xform.js +92 -0
  139. package/dist/es5/xlsx/xform/comment/vml-shape-xform.js.map +1 -0
  140. package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js +61 -0
  141. package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js.map +1 -0
  142. package/dist/es5/xlsx/xform/composite-xform.js +51 -0
  143. package/dist/es5/xlsx/xform/composite-xform.js.map +1 -0
  144. package/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js +30 -0
  145. package/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js.map +1 -0
  146. package/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js +27 -0
  147. package/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js.map +1 -0
  148. package/dist/es5/xlsx/xform/core/app-xform.js +93 -0
  149. package/dist/es5/xlsx/xform/core/app-xform.js.map +1 -0
  150. package/dist/es5/xlsx/xform/core/content-types-xform.js +127 -0
  151. package/dist/es5/xlsx/xform/core/content-types-xform.js.map +1 -0
  152. package/dist/es5/xlsx/xform/core/core-xform.js +158 -0
  153. package/dist/es5/xlsx/xform/core/core-xform.js.map +1 -0
  154. package/dist/es5/xlsx/xform/core/relationship-xform.js +23 -0
  155. package/dist/es5/xlsx/xform/core/relationship-xform.js.map +1 -0
  156. package/dist/es5/xlsx/xform/core/relationships-xform.js +65 -0
  157. package/dist/es5/xlsx/xform/core/relationships-xform.js.map +1 -0
  158. package/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js +47 -0
  159. package/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js.map +1 -0
  160. package/dist/es5/xlsx/xform/drawing/blip-fill-xform.js +61 -0
  161. package/dist/es5/xlsx/xform/drawing/blip-fill-xform.js.map +1 -0
  162. package/dist/es5/xlsx/xform/drawing/blip-xform.js +39 -0
  163. package/dist/es5/xlsx/xform/drawing/blip-xform.js.map +1 -0
  164. package/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js +35 -0
  165. package/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js.map +1 -0
  166. package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js +62 -0
  167. package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js.map +1 -0
  168. package/dist/es5/xlsx/xform/drawing/cell-position-xform.js +82 -0
  169. package/dist/es5/xlsx/xform/drawing/cell-position-xform.js.map +1 -0
  170. package/dist/es5/xlsx/xform/drawing/drawing-xform.js +98 -0
  171. package/dist/es5/xlsx/xform/drawing/drawing-xform.js.map +1 -0
  172. package/dist/es5/xlsx/xform/drawing/ext-lst-xform.js +40 -0
  173. package/dist/es5/xlsx/xform/drawing/ext-lst-xform.js.map +1 -0
  174. package/dist/es5/xlsx/xform/drawing/ext-xform.js +38 -0
  175. package/dist/es5/xlsx/xform/drawing/ext-xform.js.map +1 -0
  176. package/dist/es5/xlsx/xform/drawing/hlink-click-xform.js +38 -0
  177. package/dist/es5/xlsx/xform/drawing/hlink-click-xform.js.map +1 -0
  178. package/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js +59 -0
  179. package/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js.map +1 -0
  180. package/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js +63 -0
  181. package/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js.map +1 -0
  182. package/dist/es5/xlsx/xform/drawing/pic-xform.js +67 -0
  183. package/dist/es5/xlsx/xform/drawing/pic-xform.js.map +1 -0
  184. package/dist/es5/xlsx/xform/drawing/sp-pr.js +30 -0
  185. package/dist/es5/xlsx/xform/drawing/sp-pr.js.map +1 -0
  186. package/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js +62 -0
  187. package/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js.map +1 -0
  188. package/dist/es5/xlsx/xform/list-xform.js +91 -0
  189. package/dist/es5/xlsx/xform/list-xform.js.map +1 -0
  190. package/dist/es5/xlsx/xform/pivot-table/cache-field.js +48 -0
  191. package/dist/es5/xlsx/xform/pivot-table/cache-field.js.map +1 -0
  192. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +73 -0
  193. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js.map +1 -0
  194. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js +93 -0
  195. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js.map +1 -0
  196. package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js +176 -0
  197. package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js.map +1 -0
  198. package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js +40 -0
  199. package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js.map +1 -0
  200. package/dist/es5/xlsx/xform/sheet/cell-xform.js +450 -0
  201. package/dist/es5/xlsx/xform/sheet/cell-xform.js.map +1 -0
  202. package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js +275 -0
  203. package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js.map +1 -0
  204. package/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js +25 -0
  205. package/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js.map +1 -0
  206. package/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js +38 -0
  207. package/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js.map +1 -0
  208. package/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js +45 -0
  209. package/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js.map +1 -0
  210. package/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js +77 -0
  211. package/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js.map +1 -0
  212. package/dist/es5/xlsx/xform/sheet/cf/databar-xform.js +42 -0
  213. package/dist/es5/xlsx/xform/sheet/cf/databar-xform.js.map +1 -0
  214. package/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +71 -0
  215. package/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js.map +1 -0
  216. package/dist/es5/xlsx/xform/sheet/cf/formula-xform.js +22 -0
  217. package/dist/es5/xlsx/xform/sheet/cf/formula-xform.js.map +1 -0
  218. package/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js +43 -0
  219. package/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js.map +1 -0
  220. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +28 -0
  221. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js.map +1 -0
  222. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +88 -0
  223. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js.map +1 -0
  224. package/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +38 -0
  225. package/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js.map +1 -0
  226. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +52 -0
  227. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js.map +1 -0
  228. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +43 -0
  229. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js.map +1 -0
  230. package/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +75 -0
  231. package/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js.map +1 -0
  232. package/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js +22 -0
  233. package/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js.map +1 -0
  234. package/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +66 -0
  235. package/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js.map +1 -0
  236. package/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +22 -0
  237. package/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js.map +1 -0
  238. package/dist/es5/xlsx/xform/sheet/col-xform.js +78 -0
  239. package/dist/es5/xlsx/xform/sheet/col-xform.js.map +1 -0
  240. package/dist/es5/xlsx/xform/sheet/data-validations-xform.js +247 -0
  241. package/dist/es5/xlsx/xform/sheet/data-validations-xform.js.map +1 -0
  242. package/dist/es5/xlsx/xform/sheet/dimension-xform.js +28 -0
  243. package/dist/es5/xlsx/xform/sheet/dimension-xform.js.map +1 -0
  244. package/dist/es5/xlsx/xform/sheet/drawing-xform.js +32 -0
  245. package/dist/es5/xlsx/xform/sheet/drawing-xform.js.map +1 -0
  246. package/dist/es5/xlsx/xform/sheet/ext-lst-xform.js +69 -0
  247. package/dist/es5/xlsx/xform/sheet/ext-lst-xform.js.map +1 -0
  248. package/dist/es5/xlsx/xform/sheet/header-footer-xform.js +126 -0
  249. package/dist/es5/xlsx/xform/sheet/header-footer-xform.js.map +1 -0
  250. package/dist/es5/xlsx/xform/sheet/hyperlink-xform.js +50 -0
  251. package/dist/es5/xlsx/xform/sheet/hyperlink-xform.js.map +1 -0
  252. package/dist/es5/xlsx/xform/sheet/merge-cell-xform.js +26 -0
  253. package/dist/es5/xlsx/xform/sheet/merge-cell-xform.js.map +1 -0
  254. package/dist/es5/xlsx/xform/sheet/merges.js +52 -0
  255. package/dist/es5/xlsx/xform/sheet/merges.js.map +1 -0
  256. package/dist/es5/xlsx/xform/sheet/outline-properties-xform.js +35 -0
  257. package/dist/es5/xlsx/xform/sheet/outline-properties-xform.js.map +1 -0
  258. package/dist/es5/xlsx/xform/sheet/page-breaks-xform.js +24 -0
  259. package/dist/es5/xlsx/xform/sheet/page-breaks-xform.js.map +1 -0
  260. package/dist/es5/xlsx/xform/sheet/page-margins-xform.js +46 -0
  261. package/dist/es5/xlsx/xform/sheet/page-margins-xform.js.map +1 -0
  262. package/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js +32 -0
  263. package/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js.map +1 -0
  264. package/dist/es5/xlsx/xform/sheet/page-setup-xform.js +99 -0
  265. package/dist/es5/xlsx/xform/sheet/page-setup-xform.js.map +1 -0
  266. package/dist/es5/xlsx/xform/sheet/picture-xform.js +32 -0
  267. package/dist/es5/xlsx/xform/sheet/picture-xform.js.map +1 -0
  268. package/dist/es5/xlsx/xform/sheet/print-options-xform.js +45 -0
  269. package/dist/es5/xlsx/xform/sheet/print-options-xform.js.map +1 -0
  270. package/dist/es5/xlsx/xform/sheet/row-breaks-xform.js +37 -0
  271. package/dist/es5/xlsx/xform/sheet/row-breaks-xform.js.map +1 -0
  272. package/dist/es5/xlsx/xform/sheet/row-xform.js +128 -0
  273. package/dist/es5/xlsx/xform/sheet/row-xform.js.map +1 -0
  274. package/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js +51 -0
  275. package/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js.map +1 -0
  276. package/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js +83 -0
  277. package/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js.map +1 -0
  278. package/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js +84 -0
  279. package/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js.map +1 -0
  280. package/dist/es5/xlsx/xform/sheet/sheet-view-xform.js +190 -0
  281. package/dist/es5/xlsx/xform/sheet/sheet-view-xform.js.map +1 -0
  282. package/dist/es5/xlsx/xform/sheet/table-part-xform.js +32 -0
  283. package/dist/es5/xlsx/xform/sheet/table-part-xform.js.map +1 -0
  284. package/dist/es5/xlsx/xform/sheet/worksheet-xform.js +522 -0
  285. package/dist/es5/xlsx/xform/sheet/worksheet-xform.js.map +1 -0
  286. package/dist/es5/xlsx/xform/simple/boolean-xform.js +27 -0
  287. package/dist/es5/xlsx/xform/simple/boolean-xform.js.map +1 -0
  288. package/dist/es5/xlsx/xform/simple/date-xform.js +58 -0
  289. package/dist/es5/xlsx/xform/simple/date-xform.js.map +1 -0
  290. package/dist/es5/xlsx/xform/simple/float-xform.js +47 -0
  291. package/dist/es5/xlsx/xform/simple/float-xform.js.map +1 -0
  292. package/dist/es5/xlsx/xform/simple/integer-xform.js +53 -0
  293. package/dist/es5/xlsx/xform/simple/integer-xform.js.map +1 -0
  294. package/dist/es5/xlsx/xform/simple/string-xform.js +47 -0
  295. package/dist/es5/xlsx/xform/simple/string-xform.js.map +1 -0
  296. package/dist/es5/xlsx/xform/static-xform.js +61 -0
  297. package/dist/es5/xlsx/xform/static-xform.js.map +1 -0
  298. package/dist/es5/xlsx/xform/strings/phonetic-text-xform.js +98 -0
  299. package/dist/es5/xlsx/xform/strings/phonetic-text-xform.js.map +1 -0
  300. package/dist/es5/xlsx/xform/strings/rich-text-xform.js +92 -0
  301. package/dist/es5/xlsx/xform/strings/rich-text-xform.js.map +1 -0
  302. package/dist/es5/xlsx/xform/strings/shared-string-xform.js +99 -0
  303. package/dist/es5/xlsx/xform/strings/shared-string-xform.js.map +1 -0
  304. package/dist/es5/xlsx/xform/strings/shared-strings-xform.js +114 -0
  305. package/dist/es5/xlsx/xform/strings/shared-strings-xform.js.map +1 -0
  306. package/dist/es5/xlsx/xform/strings/text-xform.js +39 -0
  307. package/dist/es5/xlsx/xform/strings/text-xform.js.map +1 -0
  308. package/dist/es5/xlsx/xform/style/alignment-xform.js +139 -0
  309. package/dist/es5/xlsx/xform/style/alignment-xform.js.map +1 -0
  310. package/dist/es5/xlsx/xform/style/border-xform.js +185 -0
  311. package/dist/es5/xlsx/xform/style/border-xform.js.map +1 -0
  312. package/dist/es5/xlsx/xform/style/color-xform.js +66 -0
  313. package/dist/es5/xlsx/xform/style/color-xform.js.map +1 -0
  314. package/dist/es5/xlsx/xform/style/dxf-xform.js +106 -0
  315. package/dist/es5/xlsx/xform/style/dxf-xform.js.map +1 -0
  316. package/dist/es5/xlsx/xform/style/fill-xform.js +307 -0
  317. package/dist/es5/xlsx/xform/style/fill-xform.js.map +1 -0
  318. package/dist/es5/xlsx/xform/style/font-xform.js +175 -0
  319. package/dist/es5/xlsx/xform/style/font-xform.js.map +1 -0
  320. package/dist/es5/xlsx/xform/style/numfmt-xform.js +58 -0
  321. package/dist/es5/xlsx/xform/style/numfmt-xform.js.map +1 -0
  322. package/dist/es5/xlsx/xform/style/protection-xform.js +53 -0
  323. package/dist/es5/xlsx/xform/style/protection-xform.js.map +1 -0
  324. package/dist/es5/xlsx/xform/style/style-xform.js +118 -0
  325. package/dist/es5/xlsx/xform/style/style-xform.js.map +1 -0
  326. package/dist/es5/xlsx/xform/style/styles-xform.js +611 -0
  327. package/dist/es5/xlsx/xform/style/styles-xform.js.map +1 -0
  328. package/dist/es5/xlsx/xform/style/underline-xform.js +46 -0
  329. package/dist/es5/xlsx/xform/style/underline-xform.js.map +1 -0
  330. package/dist/es5/xlsx/xform/table/auto-filter-xform.js +75 -0
  331. package/dist/es5/xlsx/xform/table/auto-filter-xform.js.map +1 -0
  332. package/dist/es5/xlsx/xform/table/custom-filter-xform.js +30 -0
  333. package/dist/es5/xlsx/xform/table/custom-filter-xform.js.map +1 -0
  334. package/dist/es5/xlsx/xform/table/filter-column-xform.js +89 -0
  335. package/dist/es5/xlsx/xform/table/filter-column-xform.js.map +1 -0
  336. package/dist/es5/xlsx/xform/table/filter-xform.js +28 -0
  337. package/dist/es5/xlsx/xform/table/filter-xform.js.map +1 -0
  338. package/dist/es5/xlsx/xform/table/table-column-xform.js +42 -0
  339. package/dist/es5/xlsx/xform/table/table-column-xform.js.map +1 -0
  340. package/dist/es5/xlsx/xform/table/table-style-info-xform.js +40 -0
  341. package/dist/es5/xlsx/xform/table/table-style-info-xform.js.map +1 -0
  342. package/dist/es5/xlsx/xform/table/table-xform.js +122 -0
  343. package/dist/es5/xlsx/xform/table/table-xform.js.map +1 -0
  344. package/dist/es5/xlsx/xlsx.js +775 -0
  345. package/dist/es5/xlsx/xlsx.js.map +1 -0
  346. package/dist/es5/xlsx/xml/theme1.js +5 -0
  347. package/dist/es5/xlsx/xml/theme1.js.map +1 -0
  348. package/dist/exceljs.bare.js +57759 -0
  349. package/dist/exceljs.bare.js.map +777 -0
  350. package/dist/exceljs.bare.min.js +45 -0
  351. package/dist/exceljs.bare.min.js.map +1 -0
  352. package/dist/exceljs.js +62398 -0
  353. package/dist/exceljs.js.map +1095 -0
  354. package/dist/exceljs.min.js +45 -0
  355. package/dist/exceljs.min.js.map +1 -0
  356. package/excel.js +13 -0
  357. package/index.d.ts +2040 -0
  358. package/index.ts +2 -0
  359. package/lib/csv/csv.js +191 -0
  360. package/lib/csv/line-buffer.js +74 -0
  361. package/lib/csv/stream-converter.js +135 -0
  362. package/lib/doc/anchor.js +91 -0
  363. package/lib/doc/cell.js +1124 -0
  364. package/lib/doc/column.js +320 -0
  365. package/lib/doc/data/theme1.json +234 -0
  366. package/lib/doc/data-validations.js +19 -0
  367. package/lib/doc/defined-names.js +196 -0
  368. package/lib/doc/enums.js +48 -0
  369. package/lib/doc/image.js +59 -0
  370. package/lib/doc/modelcontainer.js +18 -0
  371. package/lib/doc/note.js +65 -0
  372. package/lib/doc/pivot-table.js +132 -0
  373. package/lib/doc/range.js +257 -0
  374. package/lib/doc/row.js +415 -0
  375. package/lib/doc/table.js +465 -0
  376. package/lib/doc/workbook.js +224 -0
  377. package/lib/doc/worksheet.js +949 -0
  378. package/lib/exceljs.bare.js +13 -0
  379. package/lib/exceljs.browser.js +36 -0
  380. package/lib/exceljs.nodejs.js +14 -0
  381. package/lib/stream/xlsx/hyperlink-reader.js +83 -0
  382. package/lib/stream/xlsx/sheet-comments-writer.js +121 -0
  383. package/lib/stream/xlsx/sheet-rels-writer.js +119 -0
  384. package/lib/stream/xlsx/workbook-reader.js +337 -0
  385. package/lib/stream/xlsx/workbook-writer.js +347 -0
  386. package/lib/stream/xlsx/worksheet-reader.js +374 -0
  387. package/lib/stream/xlsx/worksheet-writer.js +717 -0
  388. package/lib/utils/auto-drain.js +15 -0
  389. package/lib/utils/browser-buffer-decode.js +14 -0
  390. package/lib/utils/browser-buffer-encode.js +15 -0
  391. package/lib/utils/cell-matrix.js +165 -0
  392. package/lib/utils/col-cache.js +287 -0
  393. package/lib/utils/copy-style.js +43 -0
  394. package/lib/utils/encryptor.js +55 -0
  395. package/lib/utils/iterate-stream.js +48 -0
  396. package/lib/utils/parse-sax.js +30 -0
  397. package/lib/utils/shared-formula.js +44 -0
  398. package/lib/utils/shared-strings.js +35 -0
  399. package/lib/utils/stream-base64.js +72 -0
  400. package/lib/utils/stream-buf.js +364 -0
  401. package/lib/utils/string-buf.js +82 -0
  402. package/lib/utils/string-builder.js +35 -0
  403. package/lib/utils/stuttered-pipe.js +67 -0
  404. package/lib/utils/typed-stack.js +24 -0
  405. package/lib/utils/under-dash.js +184 -0
  406. package/lib/utils/utils.js +205 -0
  407. package/lib/utils/xml-stream.js +169 -0
  408. package/lib/utils/zip-stream.js +87 -0
  409. package/lib/xlsx/.rels +11 -0
  410. package/lib/xlsx/calcChain.xml +6 -0
  411. package/lib/xlsx/core.xml +7 -0
  412. package/lib/xlsx/defaultnumformats.js +153 -0
  413. package/lib/xlsx/rel-type.js +20 -0
  414. package/lib/xlsx/styles.xml +41 -0
  415. package/lib/xlsx/workbook.xml +16 -0
  416. package/lib/xlsx/xform/base-xform.js +145 -0
  417. package/lib/xlsx/xform/book/defined-name-xform.js +91 -0
  418. package/lib/xlsx/xform/book/sheet-xform.js +34 -0
  419. package/lib/xlsx/xform/book/workbook-calc-properties-xform.js +26 -0
  420. package/lib/xlsx/xform/book/workbook-pivot-cache-xform.js +29 -0
  421. package/lib/xlsx/xform/book/workbook-properties-xform.js +29 -0
  422. package/lib/xlsx/xform/book/workbook-view-xform.js +53 -0
  423. package/lib/xlsx/xform/book/workbook-xform.js +259 -0
  424. package/lib/xlsx/xform/comment/comment-xform.js +105 -0
  425. package/lib/xlsx/xform/comment/comments-xform.js +82 -0
  426. package/lib/xlsx/xform/comment/style/vml-position-xform.js +39 -0
  427. package/lib/xlsx/xform/comment/style/vml-protection-xform.js +36 -0
  428. package/lib/xlsx/xform/comment/vml-anchor-xform.js +60 -0
  429. package/lib/xlsx/xform/comment/vml-client-data-xform.js +95 -0
  430. package/lib/xlsx/xform/comment/vml-notes-xform.js +107 -0
  431. package/lib/xlsx/xform/comment/vml-shape-xform.js +95 -0
  432. package/lib/xlsx/xform/comment/vml-textbox-xform.js +64 -0
  433. package/lib/xlsx/xform/composite-xform.js +56 -0
  434. package/lib/xlsx/xform/core/app-heading-pairs-xform.js +32 -0
  435. package/lib/xlsx/xform/core/app-titles-of-parts-xform.js +28 -0
  436. package/lib/xlsx/xform/core/app-xform.js +100 -0
  437. package/lib/xlsx/xform/core/content-types-xform.js +135 -0
  438. package/lib/xlsx/xform/core/core-xform.js +136 -0
  439. package/lib/xlsx/xform/core/relationship-xform.js +25 -0
  440. package/lib/xlsx/xform/core/relationships-xform.js +73 -0
  441. package/lib/xlsx/xform/drawing/base-cell-anchor-xform.js +48 -0
  442. package/lib/xlsx/xform/drawing/blip-fill-xform.js +71 -0
  443. package/lib/xlsx/xform/drawing/blip-xform.js +42 -0
  444. package/lib/xlsx/xform/drawing/c-nv-pic-pr-xform.js +38 -0
  445. package/lib/xlsx/xform/drawing/c-nv-pr-xform.js +68 -0
  446. package/lib/xlsx/xform/drawing/cell-position-xform.js +77 -0
  447. package/lib/xlsx/xform/drawing/drawing-xform.js +109 -0
  448. package/lib/xlsx/xform/drawing/ext-lst-xform.js +43 -0
  449. package/lib/xlsx/xform/drawing/ext-xform.js +44 -0
  450. package/lib/xlsx/xform/drawing/hlink-click-xform.js +41 -0
  451. package/lib/xlsx/xform/drawing/nv-pic-pr-xform.js +65 -0
  452. package/lib/xlsx/xform/drawing/one-cell-anchor-xform.js +63 -0
  453. package/lib/xlsx/xform/drawing/pic-xform.js +77 -0
  454. package/lib/xlsx/xform/drawing/sp-pr.js +17 -0
  455. package/lib/xlsx/xform/drawing/two-cell-anchor-xform.js +62 -0
  456. package/lib/xlsx/xform/list-xform.js +95 -0
  457. package/lib/xlsx/xform/pivot-table/cache-field.js +43 -0
  458. package/lib/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +77 -0
  459. package/lib/xlsx/xform/pivot-table/pivot-cache-records-xform.js +103 -0
  460. package/lib/xlsx/xform/pivot-table/pivot-table-xform.js +189 -0
  461. package/lib/xlsx/xform/sheet/auto-filter-xform.js +38 -0
  462. package/lib/xlsx/xform/sheet/cell-xform.js +498 -0
  463. package/lib/xlsx/xform/sheet/cf/cf-rule-xform.js +301 -0
  464. package/lib/xlsx/xform/sheet/cf/cfvo-xform.js +27 -0
  465. package/lib/xlsx/xform/sheet/cf/color-scale-xform.js +45 -0
  466. package/lib/xlsx/xform/sheet/cf/conditional-formatting-xform.js +48 -0
  467. package/lib/xlsx/xform/sheet/cf/conditional-formattings-xform.js +92 -0
  468. package/lib/xlsx/xform/sheet/cf/databar-xform.js +49 -0
  469. package/lib/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +87 -0
  470. package/lib/xlsx/xform/sheet/cf/formula-xform.js +25 -0
  471. package/lib/xlsx/xform/sheet/cf/icon-set-xform.js +47 -0
  472. package/lib/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +27 -0
  473. package/lib/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +98 -0
  474. package/lib/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +43 -0
  475. package/lib/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +62 -0
  476. package/lib/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +50 -0
  477. package/lib/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +98 -0
  478. package/lib/xlsx/xform/sheet/cf-ext/f-ext-xform.js +25 -0
  479. package/lib/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +73 -0
  480. package/lib/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +25 -0
  481. package/lib/xlsx/xform/sheet/col-xform.js +86 -0
  482. package/lib/xlsx/xform/sheet/data-validations-xform.js +257 -0
  483. package/lib/xlsx/xform/sheet/dimension-xform.js +29 -0
  484. package/lib/xlsx/xform/sheet/drawing-xform.js +33 -0
  485. package/lib/xlsx/xform/sheet/ext-lst-xform.js +86 -0
  486. package/lib/xlsx/xform/sheet/header-footer-xform.js +146 -0
  487. package/lib/xlsx/xform/sheet/hyperlink-xform.js +54 -0
  488. package/lib/xlsx/xform/sheet/merge-cell-xform.js +27 -0
  489. package/lib/xlsx/xform/sheet/merges.js +56 -0
  490. package/lib/xlsx/xform/sheet/outline-properties-xform.js +43 -0
  491. package/lib/xlsx/xform/sheet/page-breaks-xform.js +27 -0
  492. package/lib/xlsx/xform/sheet/page-margins-xform.js +49 -0
  493. package/lib/xlsx/xform/sheet/page-setup-properties-xform.js +35 -0
  494. package/lib/xlsx/xform/sheet/page-setup-xform.js +103 -0
  495. package/lib/xlsx/xform/sheet/picture-xform.js +33 -0
  496. package/lib/xlsx/xform/sheet/print-options-xform.js +49 -0
  497. package/lib/xlsx/xform/sheet/row-breaks-xform.js +39 -0
  498. package/lib/xlsx/xform/sheet/row-xform.js +142 -0
  499. package/lib/xlsx/xform/sheet/sheet-format-properties-xform.js +55 -0
  500. package/lib/xlsx/xform/sheet/sheet-properties-xform.js +90 -0
  501. package/lib/xlsx/xform/sheet/sheet-protection-xform.js +89 -0
  502. package/lib/xlsx/xform/sheet/sheet-view-xform.js +202 -0
  503. package/lib/xlsx/xform/sheet/table-part-xform.js +33 -0
  504. package/lib/xlsx/xform/sheet/worksheet-xform.js +548 -0
  505. package/lib/xlsx/xform/simple/boolean-xform.js +31 -0
  506. package/lib/xlsx/xform/simple/date-xform.js +66 -0
  507. package/lib/xlsx/xform/simple/float-xform.js +51 -0
  508. package/lib/xlsx/xform/simple/integer-xform.js +57 -0
  509. package/lib/xlsx/xform/simple/string-xform.js +51 -0
  510. package/lib/xlsx/xform/static-xform.js +64 -0
  511. package/lib/xlsx/xform/strings/phonetic-text-xform.js +98 -0
  512. package/lib/xlsx/xform/strings/rich-text-xform.js +101 -0
  513. package/lib/xlsx/xform/strings/shared-string-xform.js +102 -0
  514. package/lib/xlsx/xform/strings/shared-strings-xform.js +127 -0
  515. package/lib/xlsx/xform/strings/text-xform.js +44 -0
  516. package/lib/xlsx/xform/style/alignment-xform.js +172 -0
  517. package/lib/xlsx/xform/style/border-xform.js +207 -0
  518. package/lib/xlsx/xform/style/color-xform.js +63 -0
  519. package/lib/xlsx/xform/style/dxf-xform.js +111 -0
  520. package/lib/xlsx/xform/style/fill-xform.js +364 -0
  521. package/lib/xlsx/xform/style/font-xform.js +102 -0
  522. package/lib/xlsx/xform/style/numfmt-xform.js +63 -0
  523. package/lib/xlsx/xform/style/protection-xform.js +60 -0
  524. package/lib/xlsx/xform/style/style-xform.js +125 -0
  525. package/lib/xlsx/xform/style/styles-xform.js +527 -0
  526. package/lib/xlsx/xform/style/underline-xform.js +47 -0
  527. package/lib/xlsx/xform/table/auto-filter-xform.js +81 -0
  528. package/lib/xlsx/xform/table/custom-filter-xform.js +33 -0
  529. package/lib/xlsx/xform/table/filter-column-xform.js +96 -0
  530. package/lib/xlsx/xform/table/filter-xform.js +31 -0
  531. package/lib/xlsx/xform/table/table-column-xform.js +44 -0
  532. package/lib/xlsx/xform/table/table-style-info-xform.js +41 -0
  533. package/lib/xlsx/xform/table/table-xform.js +131 -0
  534. package/lib/xlsx/xlsx.js +774 -0
  535. package/lib/xlsx/xml/theme1.js +3 -0
  536. package/lib/xlsx/xml/theme1.xml +318 -0
  537. package/package.json +149 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worksheet.js","names":["_","require","colCache","Range","Row","Column","Enums","Image","Table","DataValidations","makePivotTable","Encryptor","copyStyle","Worksheet","constructor","options","_workbook","workbook","id","orderNo","name","state","_rows","_columns","_keys","_merges","rowBreaks","properties","Object","assign","defaultRowHeight","dyDescent","outlineLevelCol","outlineLevelRow","pageSetup","margins","left","right","top","bottom","header","footer","orientation","horizontalDpi","verticalDpi","fitToPage","fitToWidth","fitToHeight","scale","pageOrder","blackAndWhite","draft","cellComments","errors","paperSize","undefined","showRowColHeaders","showGridLines","firstPageNumber","horizontalCentered","verticalCentered","colBreaks","headerFooter","differentFirst","differentOddEven","oddHeader","oddFooter","evenHeader","evenFooter","firstHeader","firstFooter","dataValidations","views","autoFilter","_media","sheetProtection","tables","pivotTables","conditionalFormattings","_name","Error","test","length","console","warn","substring","_worksheets","find","ws","toLowerCase","destroy","removeWorksheetEx","dimensions","forEach","row","rowDims","expand","number","min","max","columns","value","_headerRowCount","reduce","pv","cv","headerCount","headers","Math","count","defn","column","push","getColumnKey","key","setColumnKey","deleteColumnKey","eachColumnKey","f","each","getColumn","c","col","l2n","n","spliceColumns","start","rows","nRows","_len","arguments","inserts","Array","_key","i","rowArguments","insert","getRow","splice","apply","r","nExpand","nKeep","nEnd","definedNames","lastColumn","columnCount","maxCount","eachRow","cellCount","actualColumnCount","counts","eachCell","_ref","_commitRow","_lastRowNumber","_nextRow","lastRow","findRow","findRows","slice","rowCount","actualRowCount","getRows","addRow","style","rowNo","values","_setStyleOption","addRows","insertRow","pos","spliceRows","insertRows","_copyStyle","src","dest","styleEmpty","rSrc","rDst","includeEmpty","cell","colNumber","getCell","height","duplicateRow","rowNum","fill","_len2","_key2","nInserts","_value","cellToBeMerged","_row","_number","prevMaster","_master","newMaster","_column","merge","iteratee","hasValues","getSheetValues","findCell","address","getAddress","getCellEx","mergeCells","_len3","cells","_key3","_mergeCellsInternal","mergeCellsWithoutStyle","_len4","_key4","ignoreStyle","intersects","master","j","_unMergeMaster","unmerge","hasMerges","some","Boolean","unMergeCells","_len5","_key5","type","ValueType","Merge","fillFormula","range","formula","results","shareType","decoded","decode","width","masterAddress","encodeAddress","isShared","getResult","isArray","first","ref","result","sharedFormula","addImage","imageId","model","getImages","filter","m","addBackgroundImage","getBackgroundImageId","image","protect","password","Promise","resolve","sheet","spinCount","Number","isFinite","round","algorithmName","saltValue","randomBytes","toString","hashValue","convertPasswordToHash","unprotect","addTable","table","getTable","removeTable","getTables","addPivotTable","pivotTable","addConditionalFormatting","cf","removeConditionalFormatting","Function","tabColor","trace","media","map","medium","cols","toModel","rowModel","merges","_parseRows","_parseMergeCells","fromModel","t","module","exports"],"sources":["../../../lib/doc/worksheet.js"],"sourcesContent":["const _ = require('../utils/under-dash');\r\n\r\nconst colCache = require('../utils/col-cache');\r\nconst Range = require('./range');\r\nconst Row = require('./row');\r\nconst Column = require('./column');\r\nconst Enums = require('./enums');\r\nconst Image = require('./image');\r\nconst Table = require('./table');\r\nconst DataValidations = require('./data-validations');\r\nconst {makePivotTable} = require('./pivot-table');\r\nconst Encryptor = require('../utils/encryptor');\r\nconst {copyStyle} = require('../utils/copy-style');\r\n\r\n// Worksheet requirements\r\n// Operate as sheet inside workbook or standalone\r\n// Load and Save from file and stream\r\n// Access/Add/Delete individual cells\r\n// Manage column widths and row heights\r\n\r\nclass Worksheet {\r\n constructor(options) {\r\n options = options || {};\r\n this._workbook = options.workbook;\r\n\r\n // in a workbook, each sheet will have a number\r\n this.id = options.id;\r\n this.orderNo = options.orderNo;\r\n\r\n // and a name\r\n this.name = options.name;\r\n\r\n // add a state\r\n this.state = options.state || 'visible';\r\n\r\n // rows allows access organised by row. Sparse array of arrays indexed by row-1, col\r\n // Note: _rows is zero based. Must subtract 1 to go from cell.row to index\r\n this._rows = [];\r\n\r\n // column definitions\r\n this._columns = null;\r\n\r\n // column keys (addRow convenience): key ==> this._collumns index\r\n this._keys = {};\r\n\r\n // keep record of all merges\r\n this._merges = {};\r\n\r\n // record of all row and column pageBreaks\r\n this.rowBreaks = [];\r\n\r\n // for tabColor, default row height, outline levels, etc\r\n this.properties = Object.assign(\r\n {},\r\n {\r\n defaultRowHeight: 15,\r\n dyDescent: 55,\r\n outlineLevelCol: 0,\r\n outlineLevelRow: 0,\r\n },\r\n options.properties\r\n );\r\n\r\n // for all things printing\r\n this.pageSetup = Object.assign(\r\n {},\r\n {\r\n margins: {left: 0.7, right: 0.7, top: 0.75, bottom: 0.75, header: 0.3, footer: 0.3},\r\n orientation: 'portrait',\r\n horizontalDpi: 4294967295,\r\n verticalDpi: 4294967295,\r\n fitToPage: !!(\r\n options.pageSetup &&\r\n (options.pageSetup.fitToWidth || options.pageSetup.fitToHeight) &&\r\n !options.pageSetup.scale\r\n ),\r\n pageOrder: 'downThenOver',\r\n blackAndWhite: false,\r\n draft: false,\r\n cellComments: 'None',\r\n errors: 'displayed',\r\n scale: 100,\r\n fitToWidth: 1,\r\n fitToHeight: 1,\r\n paperSize: undefined,\r\n showRowColHeaders: false,\r\n showGridLines: false,\r\n firstPageNumber: undefined,\r\n horizontalCentered: false,\r\n verticalCentered: false,\r\n rowBreaks: null,\r\n colBreaks: null,\r\n },\r\n options.pageSetup\r\n );\r\n\r\n this.headerFooter = Object.assign(\r\n {},\r\n {\r\n differentFirst: false,\r\n differentOddEven: false,\r\n oddHeader: null,\r\n oddFooter: null,\r\n evenHeader: null,\r\n evenFooter: null,\r\n firstHeader: null,\r\n firstFooter: null,\r\n },\r\n options.headerFooter\r\n );\r\n\r\n this.dataValidations = new DataValidations();\r\n\r\n // for freezepanes, split, zoom, gridlines, etc\r\n this.views = options.views || [];\r\n\r\n this.autoFilter = options.autoFilter || null;\r\n\r\n // for images, etc\r\n this._media = [];\r\n\r\n // worksheet protection\r\n this.sheetProtection = null;\r\n\r\n // for tables\r\n this.tables = {};\r\n\r\n this.pivotTables = [];\r\n\r\n this.conditionalFormattings = [];\r\n }\r\n\r\n get name() {\r\n return this._name;\r\n }\r\n\r\n set name(name) {\r\n if (name === undefined) {\r\n name = `sheet${this.id}`;\r\n }\r\n\r\n if (this._name === name) return;\r\n\r\n if (typeof name !== 'string') {\r\n throw new Error('The name has to be a string.');\r\n }\r\n\r\n if (name === '') {\r\n throw new Error('The name can\\'t be empty.');\r\n }\r\n\r\n if (name === 'History') {\r\n throw new Error('The name \"History\" is protected. Please use a different name.');\r\n }\r\n\r\n // Illegal character in worksheet name: asterisk (*), question mark (?),\r\n // colon (:), forward slash (/ \\), or bracket ([])\r\n if (/[*?:/\\\\[\\]]/.test(name)) {\r\n throw new Error(`Worksheet name ${name} cannot include any of the following characters: * ? : \\\\ / [ ]`);\r\n }\r\n\r\n if (/(^')|('$)/.test(name)) {\r\n throw new Error(`The first or last character of worksheet name cannot be a single quotation mark: ${name}`);\r\n }\r\n\r\n if (name && name.length > 31) {\r\n // eslint-disable-next-line no-console\r\n console.warn(`Worksheet name ${name} exceeds 31 chars. This will be truncated`);\r\n name = name.substring(0, 31);\r\n }\r\n\r\n if (this._workbook._worksheets.find(ws => ws && ws.name.toLowerCase() === name.toLowerCase())) {\r\n throw new Error(`Worksheet name already exists: ${name}`);\r\n }\r\n\r\n this._name = name;\r\n }\r\n\r\n get workbook() {\r\n return this._workbook;\r\n }\r\n\r\n // when you're done with this worksheet, call this to remove from workbook\r\n destroy() {\r\n this._workbook.removeWorksheetEx(this);\r\n }\r\n\r\n // Get the bounding range of the cells in this worksheet\r\n get dimensions() {\r\n const dimensions = new Range();\r\n this._rows.forEach(row => {\r\n if (row) {\r\n const rowDims = row.dimensions;\r\n if (rowDims) {\r\n dimensions.expand(row.number, rowDims.min, row.number, rowDims.max);\r\n }\r\n }\r\n });\r\n return dimensions;\r\n }\r\n\r\n // =========================================================================\r\n // Columns\r\n\r\n // get the current columns array.\r\n get columns() {\r\n return this._columns;\r\n }\r\n\r\n // set the columns from an array of column definitions.\r\n // Note: any headers defined will overwrite existing values.\r\n set columns(value) {\r\n // calculate max header row count\r\n this._headerRowCount = value.reduce((pv, cv) => {\r\n const headerCount = (cv.header && 1) || (cv.headers && cv.headers.length) || 0;\r\n return Math.max(pv, headerCount);\r\n }, 0);\r\n\r\n // construct Column objects\r\n let count = 1;\r\n const columns = (this._columns = []);\r\n value.forEach(defn => {\r\n const column = new Column(this, count++, false);\r\n columns.push(column);\r\n column.defn = defn;\r\n });\r\n }\r\n\r\n getColumnKey(key) {\r\n return this._keys[key];\r\n }\r\n\r\n setColumnKey(key, value) {\r\n this._keys[key] = value;\r\n }\r\n\r\n deleteColumnKey(key) {\r\n delete this._keys[key];\r\n }\r\n\r\n eachColumnKey(f) {\r\n _.each(this._keys, f);\r\n }\r\n\r\n // get a single column by col number. If it doesn't exist, create it and any gaps before it\r\n getColumn(c) {\r\n if (typeof c === 'string') {\r\n // if it matches a key'd column, return that\r\n const col = this._keys[c];\r\n if (col) return col;\r\n\r\n // otherwise, assume letter\r\n c = colCache.l2n(c);\r\n }\r\n if (!this._columns) {\r\n this._columns = [];\r\n }\r\n if (c > this._columns.length) {\r\n let n = this._columns.length + 1;\r\n while (n <= c) {\r\n this._columns.push(new Column(this, n++));\r\n }\r\n }\r\n return this._columns[c - 1];\r\n }\r\n\r\n spliceColumns(start, count, ...inserts) {\r\n const rows = this._rows;\r\n const nRows = rows.length;\r\n if (inserts.length > 0) {\r\n // must iterate over all rows whether they exist yet or not\r\n for (let i = 0; i < nRows; i++) {\r\n const rowArguments = [start, count];\r\n // eslint-disable-next-line no-loop-func\r\n inserts.forEach(insert => {\r\n rowArguments.push(insert[i] || null);\r\n });\r\n const row = this.getRow(i + 1);\r\n // eslint-disable-next-line prefer-spread\r\n row.splice.apply(row, rowArguments);\r\n }\r\n } else {\r\n // nothing to insert, so just splice all rows\r\n this._rows.forEach(r => {\r\n if (r) {\r\n r.splice(start, count);\r\n }\r\n });\r\n }\r\n\r\n // splice column definitions\r\n const nExpand = inserts.length - count;\r\n const nKeep = start + count;\r\n const nEnd = this._columns.length;\r\n if (nExpand < 0) {\r\n for (let i = start + inserts.length; i <= nEnd; i++) {\r\n this.getColumn(i).defn = this.getColumn(i - nExpand).defn;\r\n }\r\n } else if (nExpand > 0) {\r\n for (let i = nEnd; i >= nKeep; i--) {\r\n this.getColumn(i + nExpand).defn = this.getColumn(i).defn;\r\n }\r\n }\r\n for (let i = start; i < start + inserts.length; i++) {\r\n this.getColumn(i).defn = null;\r\n }\r\n\r\n // account for defined names\r\n this.workbook.definedNames.spliceColumns(this.name, start, count, inserts.length);\r\n }\r\n\r\n get lastColumn() {\r\n return this.getColumn(this.columnCount);\r\n }\r\n\r\n get columnCount() {\r\n let maxCount = 0;\r\n this.eachRow(row => {\r\n maxCount = Math.max(maxCount, row.cellCount);\r\n });\r\n return maxCount;\r\n }\r\n\r\n get actualColumnCount() {\r\n // performance nightmare - for each row, counts all the columns used\r\n const counts = [];\r\n let count = 0;\r\n this.eachRow(row => {\r\n row.eachCell(({col}) => {\r\n if (!counts[col]) {\r\n counts[col] = true;\r\n count++;\r\n }\r\n });\r\n });\r\n return count;\r\n }\r\n\r\n // =========================================================================\r\n // Rows\r\n\r\n _commitRow() {\r\n // nop - allows streaming reader to fill a document\r\n }\r\n\r\n get _lastRowNumber() {\r\n // need to cope with results of splice\r\n const rows = this._rows;\r\n let n = rows.length;\r\n while (n > 0 && rows[n - 1] === undefined) {\r\n n--;\r\n }\r\n return n;\r\n }\r\n\r\n get _nextRow() {\r\n return this._lastRowNumber + 1;\r\n }\r\n\r\n get lastRow() {\r\n if (this._rows.length) {\r\n return this._rows[this._rows.length - 1];\r\n }\r\n return undefined;\r\n }\r\n\r\n // find a row (if exists) by row number\r\n findRow(r) {\r\n return this._rows[r - 1];\r\n }\r\n\r\n // find multiple rows (if exists) by row number\r\n findRows(start, length) {\r\n return this._rows.slice(start - 1, start - 1 + length);\r\n }\r\n\r\n get rowCount() {\r\n return this._lastRowNumber;\r\n }\r\n\r\n get actualRowCount() {\r\n // counts actual rows that have actual data\r\n let count = 0;\r\n this.eachRow(() => {\r\n count++;\r\n });\r\n return count;\r\n }\r\n\r\n // get a row by row number.\r\n getRow(r) {\r\n let row = this._rows[r - 1];\r\n if (!row) {\r\n row = this._rows[r - 1] = new Row(this, r);\r\n }\r\n return row;\r\n }\r\n\r\n // get multiple rows by row number.\r\n getRows(start, length) {\r\n if (length < 1) return undefined;\r\n const rows = [];\r\n for (let i = start; i < start + length; i++) {\r\n rows.push(this.getRow(i));\r\n }\r\n return rows;\r\n }\r\n\r\n addRow(value, style = 'n') {\r\n const rowNo = this._nextRow;\r\n const row = this.getRow(rowNo);\r\n row.values = value;\r\n this._setStyleOption(rowNo, style[0] === 'i' ? style : 'n');\r\n return row;\r\n }\r\n\r\n addRows(value, style = 'n') {\r\n const rows = [];\r\n value.forEach(row => {\r\n rows.push(this.addRow(row, style));\r\n });\r\n return rows;\r\n }\r\n\r\n insertRow(pos, value, style = 'n') {\r\n this.spliceRows(pos, 0, value);\r\n this._setStyleOption(pos, style);\r\n return this.getRow(pos);\r\n }\r\n\r\n insertRows(pos, values, style = 'n') {\r\n this.spliceRows(pos, 0, ...values);\r\n if (style !== 'n') {\r\n // copy over the styles\r\n for (let i = 0; i < values.length; i++) {\r\n if (style[0] === 'o' && this.findRow(values.length + pos + i) !== undefined) {\r\n this._copyStyle(values.length + pos + i, pos + i, style[1] === '+');\r\n } else if (style[0] === 'i' && this.findRow(pos - 1) !== undefined) {\r\n this._copyStyle(pos - 1, pos + i, style[1] === '+');\r\n }\r\n }\r\n }\r\n return this.getRows(pos, values.length);\r\n }\r\n\r\n // set row at position to same style as of either pervious row (option 'i') or next row (option 'o')\r\n _setStyleOption(pos, style = 'n') {\r\n if (style[0] === 'o' && this.findRow(pos + 1) !== undefined) {\r\n this._copyStyle(pos + 1, pos, style[1] === '+');\r\n } else if (style[0] === 'i' && this.findRow(pos - 1) !== undefined) {\r\n this._copyStyle(pos - 1, pos, style[1] === '+');\r\n }\r\n }\r\n\r\n _copyStyle(src, dest, styleEmpty = false) {\r\n const rSrc = this.getRow(src);\r\n const rDst = this.getRow(dest);\r\n rDst.style = copyStyle(rSrc.style);\r\n // eslint-disable-next-line no-loop-func\r\n rSrc.eachCell({includeEmpty: styleEmpty}, (cell, colNumber) => {\r\n rDst.getCell(colNumber).style = copyStyle(cell.style);\r\n });\r\n rDst.height = rSrc.height;\r\n }\r\n\r\n duplicateRow(rowNum, count, insert = false) {\r\n // create count duplicates of rowNum\r\n // either inserting new or overwriting existing rows\r\n\r\n const rSrc = this._rows[rowNum - 1];\r\n const inserts = new Array(count).fill(rSrc.values);\r\n this.spliceRows(rowNum + 1, insert ? 0 : count, ...inserts);\r\n\r\n // now copy styles...\r\n for (let i = 0; i < count; i++) {\r\n const rDst = this._rows[rowNum + i];\r\n rDst.style = rSrc.style;\r\n rDst.height = rSrc.height;\r\n // eslint-disable-next-line no-loop-func\r\n rSrc.eachCell({includeEmpty: true}, (cell, colNumber) => {\r\n rDst.getCell(colNumber).style = cell.style;\r\n });\r\n }\r\n }\r\n\r\n spliceRows(start, count, ...inserts) {\r\n // same problem as row.splice, except worse.\r\n const nKeep = start + count;\r\n const nInserts = inserts.length;\r\n const nExpand = nInserts - count;\r\n const nEnd = this._rows.length;\r\n let i;\r\n let rSrc;\r\n if (nExpand < 0) {\r\n // remove rows\r\n if (start === nEnd) {\r\n this._rows[nEnd - 1] = undefined;\r\n }\r\n for (i = nKeep; i <= nEnd; i++) {\r\n rSrc = this._rows[i - 1];\r\n if (rSrc) {\r\n const rDst = this.getRow(i + nExpand);\r\n rDst.values = rSrc.values;\r\n rDst.style = rSrc.style;\r\n rDst.height = rSrc.height;\r\n // eslint-disable-next-line no-loop-func\r\n rSrc.eachCell({includeEmpty: true}, (cell, colNumber) => {\r\n rDst.getCell(colNumber).style = cell.style;\r\n });\r\n this._rows[i - 1] = undefined;\r\n } else {\r\n this._rows[i + nExpand - 1] = undefined;\r\n }\r\n }\r\n } else if (nExpand > 0) {\r\n // insert new cells\r\n for (i = nEnd; i >= nKeep; i--) {\r\n rSrc = this._rows[i - 1];\r\n if (rSrc) {\r\n const rDst = this.getRow(i + nExpand);\r\n rDst.values = rSrc.values;\r\n rDst.style = rSrc.style;\r\n rDst.height = rSrc.height;\r\n // eslint-disable-next-line no-loop-func\r\n rSrc.eachCell({includeEmpty: true}, (cell, colNumber) => {\r\n rDst.getCell(colNumber).style = cell.style;\r\n\r\n // remerge cells accounting for insert offset\r\n if (cell._value.constructor.name === 'MergeValue') {\r\n const cellToBeMerged = this.getRow(cell._row._number + nInserts).getCell(colNumber);\r\n const prevMaster = cell._value._master;\r\n const newMaster = this.getRow(prevMaster._row._number + nInserts).getCell(prevMaster._column._number);\r\n cellToBeMerged.merge(newMaster);\r\n }\r\n });\r\n } else {\r\n this._rows[i + nExpand - 1] = undefined;\r\n }\r\n }\r\n }\r\n\r\n // now copy over the new values\r\n for (i = 0; i < nInserts; i++) {\r\n const rDst = this.getRow(start + i);\r\n rDst.style = {};\r\n rDst.values = inserts[i];\r\n }\r\n\r\n // account for defined names\r\n this.workbook.definedNames.spliceRows(this.name, start, count, nInserts);\r\n }\r\n\r\n // iterate over every row in the worksheet, including maybe empty rows\r\n eachRow(options, iteratee) {\r\n if (!iteratee) {\r\n iteratee = options;\r\n options = undefined;\r\n }\r\n if (options && options.includeEmpty) {\r\n const n = this._rows.length;\r\n for (let i = 1; i <= n; i++) {\r\n iteratee(this.getRow(i), i);\r\n }\r\n } else {\r\n this._rows.forEach(row => {\r\n if (row && row.hasValues) {\r\n iteratee(row, row.number);\r\n }\r\n });\r\n }\r\n }\r\n\r\n // return all rows as sparse array\r\n getSheetValues() {\r\n const rows = [];\r\n this._rows.forEach(row => {\r\n if (row) {\r\n rows[row.number] = row.values;\r\n }\r\n });\r\n return rows;\r\n }\r\n\r\n // =========================================================================\r\n // Cells\r\n\r\n // returns the cell at [r,c] or address given by r. If not found, return undefined\r\n findCell(r, c) {\r\n const address = colCache.getAddress(r, c);\r\n const row = this._rows[address.row - 1];\r\n return row ? row.findCell(address.col) : undefined;\r\n }\r\n\r\n // return the cell at [r,c] or address given by r. If not found, create a new one.\r\n getCell(r, c) {\r\n const address = colCache.getAddress(r, c);\r\n const row = this.getRow(address.row);\r\n return row.getCellEx(address);\r\n }\r\n\r\n // =========================================================================\r\n // Merge\r\n\r\n // convert the range defined by ['tl:br'], [tl,br] or [t,l,b,r] into a single 'merged' cell\r\n mergeCells(...cells) {\r\n const dimensions = new Range(cells);\r\n this._mergeCellsInternal(dimensions);\r\n }\r\n\r\n mergeCellsWithoutStyle(...cells) {\r\n const dimensions = new Range(cells);\r\n this._mergeCellsInternal(dimensions, true);\r\n }\r\n\r\n _mergeCellsInternal(dimensions, ignoreStyle) {\r\n // check cells aren't already merged\r\n _.each(this._merges, merge => {\r\n if (merge.intersects(dimensions)) {\r\n throw new Error('Cannot merge already merged cells');\r\n }\r\n });\r\n\r\n // apply merge\r\n const master = this.getCell(dimensions.top, dimensions.left);\r\n for (let i = dimensions.top; i <= dimensions.bottom; i++) {\r\n for (let j = dimensions.left; j <= dimensions.right; j++) {\r\n // merge all but the master cell\r\n if (i > dimensions.top || j > dimensions.left) {\r\n this.getCell(i, j).merge(master, ignoreStyle);\r\n }\r\n }\r\n }\r\n\r\n // index merge\r\n this._merges[master.address] = dimensions;\r\n }\r\n\r\n _unMergeMaster(master) {\r\n // master is always top left of a rectangle\r\n const merge = this._merges[master.address];\r\n if (merge) {\r\n for (let i = merge.top; i <= merge.bottom; i++) {\r\n for (let j = merge.left; j <= merge.right; j++) {\r\n this.getCell(i, j).unmerge();\r\n }\r\n }\r\n delete this._merges[master.address];\r\n }\r\n }\r\n\r\n get hasMerges() {\r\n // return true if this._merges has a merge object\r\n return _.some(this._merges, Boolean);\r\n }\r\n\r\n // scan the range defined by ['tl:br'], [tl,br] or [t,l,b,r] and if any cell is part of a merge,\r\n // un-merge the group. Note this function can affect multiple merges and merge-blocks are\r\n // atomic - either they're all merged or all un-merged.\r\n unMergeCells(...cells) {\r\n const dimensions = new Range(cells);\r\n\r\n // find any cells in that range and unmerge them\r\n for (let i = dimensions.top; i <= dimensions.bottom; i++) {\r\n for (let j = dimensions.left; j <= dimensions.right; j++) {\r\n const cell = this.findCell(i, j);\r\n if (cell) {\r\n if (cell.type === Enums.ValueType.Merge) {\r\n // this cell merges to another master\r\n this._unMergeMaster(cell.master);\r\n } else if (this._merges[cell.address]) {\r\n // this cell is a master\r\n this._unMergeMaster(cell);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // ===========================================================================\r\n // Shared/Array Formula\r\n fillFormula(range, formula, results, shareType = 'shared') {\r\n // Define formula for top-left cell and share to rest\r\n const decoded = colCache.decode(range);\r\n const {top, left, bottom, right} = decoded;\r\n const width = right - left + 1;\r\n const masterAddress = colCache.encodeAddress(top, left);\r\n const isShared = shareType === 'shared';\r\n\r\n // work out result accessor\r\n let getResult;\r\n if (typeof results === 'function') {\r\n getResult = results;\r\n } else if (Array.isArray(results)) {\r\n if (Array.isArray(results[0])) {\r\n getResult = (row, col) => results[row - top][col - left];\r\n } else {\r\n // eslint-disable-next-line no-mixed-operators\r\n getResult = (row, col) => results[(row - top) * width + (col - left)];\r\n }\r\n } else {\r\n getResult = () => undefined;\r\n }\r\n let first = true;\r\n for (let r = top; r <= bottom; r++) {\r\n for (let c = left; c <= right; c++) {\r\n if (first) {\r\n this.getCell(r, c).value = {\r\n shareType,\r\n formula,\r\n ref: range,\r\n result: getResult(r, c),\r\n };\r\n first = false;\r\n } else {\r\n this.getCell(r, c).value = isShared\r\n ? {\r\n sharedFormula: masterAddress,\r\n result: getResult(r, c),\r\n }\r\n : getResult(r, c);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // =========================================================================\r\n // Images\r\n addImage(imageId, range) {\r\n const model = {\r\n type: 'image',\r\n imageId,\r\n range,\r\n };\r\n this._media.push(new Image(this, model));\r\n }\r\n\r\n getImages() {\r\n return this._media.filter(m => m.type === 'image');\r\n }\r\n\r\n addBackgroundImage(imageId) {\r\n const model = {\r\n type: 'background',\r\n imageId,\r\n };\r\n this._media.push(new Image(this, model));\r\n }\r\n\r\n getBackgroundImageId() {\r\n const image = this._media.find(m => m.type === 'background');\r\n return image && image.imageId;\r\n }\r\n\r\n // =========================================================================\r\n // Worksheet Protection\r\n protect(password, options) {\r\n // TODO: make this function truly async\r\n // perhaps marshal to worker thread or something\r\n return new Promise(resolve => {\r\n this.sheetProtection = {\r\n sheet: true,\r\n };\r\n if (options && 'spinCount' in options) {\r\n // force spinCount to be integer >= 0\r\n options.spinCount = Number.isFinite(options.spinCount) ? Math.round(Math.max(0, options.spinCount)) : 100000;\r\n }\r\n if (password) {\r\n this.sheetProtection.algorithmName = 'SHA-512';\r\n this.sheetProtection.saltValue = Encryptor.randomBytes(16).toString('base64');\r\n this.sheetProtection.spinCount = options && 'spinCount' in options ? options.spinCount : 100000; // allow user specified spinCount\r\n this.sheetProtection.hashValue = Encryptor.convertPasswordToHash(\r\n password,\r\n 'SHA512',\r\n this.sheetProtection.saltValue,\r\n this.sheetProtection.spinCount\r\n );\r\n }\r\n if (options) {\r\n this.sheetProtection = Object.assign(this.sheetProtection, options);\r\n if (!password && 'spinCount' in options) {\r\n delete this.sheetProtection.spinCount;\r\n }\r\n }\r\n resolve();\r\n });\r\n }\r\n\r\n unprotect() {\r\n this.sheetProtection = null;\r\n }\r\n\r\n // =========================================================================\r\n // Tables\r\n addTable(model) {\r\n const table = new Table(this, model);\r\n this.tables[model.name] = table;\r\n return table;\r\n }\r\n\r\n getTable(name) {\r\n return this.tables[name];\r\n }\r\n\r\n removeTable(name) {\r\n delete this.tables[name];\r\n }\r\n\r\n getTables() {\r\n return Object.values(this.tables);\r\n }\r\n\r\n // =========================================================================\r\n // Pivot Tables\r\n addPivotTable(model) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n `Warning: Pivot Table support is experimental. \r\nPlease leave feedback at https://github.com/exceljs/exceljs/discussions/2575`\r\n );\r\n\r\n const pivotTable = makePivotTable(this, model);\r\n\r\n this.pivotTables.push(pivotTable);\r\n this.workbook.pivotTables.push(pivotTable);\r\n\r\n return pivotTable;\r\n }\r\n\r\n // ===========================================================================\r\n // Conditional Formatting\r\n addConditionalFormatting(cf) {\r\n this.conditionalFormattings.push(cf);\r\n }\r\n\r\n removeConditionalFormatting(filter) {\r\n if (typeof filter === 'number') {\r\n this.conditionalFormattings.splice(filter, 1);\r\n } else if (filter instanceof Function) {\r\n this.conditionalFormattings = this.conditionalFormattings.filter(filter);\r\n } else {\r\n this.conditionalFormattings = [];\r\n }\r\n }\r\n\r\n // ===========================================================================\r\n // Deprecated\r\n get tabColor() {\r\n // eslint-disable-next-line no-console\r\n console.trace('worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor');\r\n return this.properties.tabColor;\r\n }\r\n\r\n set tabColor(value) {\r\n // eslint-disable-next-line no-console\r\n console.trace('worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor');\r\n this.properties.tabColor = value;\r\n }\r\n\r\n // ===========================================================================\r\n // Model\r\n\r\n get model() {\r\n const model = {\r\n id: this.id,\r\n name: this.name,\r\n dataValidations: this.dataValidations.model,\r\n properties: this.properties,\r\n state: this.state,\r\n pageSetup: this.pageSetup,\r\n headerFooter: this.headerFooter,\r\n rowBreaks: this.rowBreaks,\r\n views: this.views,\r\n autoFilter: this.autoFilter,\r\n media: this._media.map(medium => medium.model),\r\n sheetProtection: this.sheetProtection,\r\n tables: Object.values(this.tables).map(table => table.model),\r\n pivotTables: this.pivotTables,\r\n conditionalFormattings: this.conditionalFormattings,\r\n };\r\n\r\n // =================================================\r\n // columns\r\n model.cols = Column.toModel(this.columns);\r\n\r\n // ==========================================================\r\n // Rows\r\n const rows = (model.rows = []);\r\n const dimensions = (model.dimensions = new Range());\r\n this._rows.forEach(row => {\r\n const rowModel = row && row.model;\r\n if (rowModel) {\r\n dimensions.expand(rowModel.number, rowModel.min, rowModel.number, rowModel.max);\r\n rows.push(rowModel);\r\n }\r\n });\r\n\r\n // ==========================================================\r\n // Merges\r\n model.merges = [];\r\n _.each(this._merges, merge => {\r\n model.merges.push(merge.range);\r\n });\r\n\r\n return model;\r\n }\r\n\r\n _parseRows(model) {\r\n this._rows = [];\r\n model.rows.forEach(rowModel => {\r\n const row = new Row(this, rowModel.number);\r\n this._rows[row.number - 1] = row;\r\n row.model = rowModel;\r\n });\r\n }\r\n\r\n _parseMergeCells(model) {\r\n _.each(model.mergeCells, merge => {\r\n // Do not merge styles when importing an Excel file\r\n // since each cell may have different styles intentionally.\r\n this.mergeCellsWithoutStyle(merge);\r\n });\r\n }\r\n\r\n set model(value) {\r\n this.name = value.name;\r\n this._columns = Column.fromModel(this, value.cols);\r\n this._parseRows(value);\r\n\r\n this._parseMergeCells(value);\r\n this.dataValidations = new DataValidations(value.dataValidations);\r\n this.properties = value.properties;\r\n this.pageSetup = value.pageSetup;\r\n this.headerFooter = value.headerFooter;\r\n this.views = value.views;\r\n this.autoFilter = value.autoFilter;\r\n this._media = value.media.map(medium => new Image(this, medium));\r\n this.sheetProtection = value.sheetProtection;\r\n this.tables = value.tables.reduce((tables, table) => {\r\n const t = new Table();\r\n t.model = table;\r\n tables[table.name] = t;\r\n return tables;\r\n }, {});\r\n this.pivotTables = value.pivotTables;\r\n this.conditionalFormattings = value.conditionalFormattings;\r\n }\r\n}\r\n\r\nmodule.exports = Worksheet;\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ // this bundle is built without polyfill leaving apps the freedom to add their own
4
+ const ExcelJS = {
5
+ Workbook: require('./doc/workbook')
6
+ };
7
+
8
+ // Object.assign mono-fill
9
+ const Enums = require('./doc/enums');
10
+ Object.keys(Enums).forEach(key => {
11
+ ExcelJS[key] = Enums[key];
12
+ });
13
+ module.exports = ExcelJS;
14
+ //# sourceMappingURL=exceljs.bare.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exceljs.bare.js","names":["ExcelJS","Workbook","require","Enums","Object","keys","forEach","key","module","exports"],"sources":["../../lib/exceljs.bare.js"],"sourcesContent":["// this bundle is built without polyfill leaving apps the freedom to add their own\r\nconst ExcelJS = {\r\n Workbook: require('./doc/workbook'),\r\n};\r\n\r\n// Object.assign mono-fill\r\nconst Enums = require('./doc/enums');\r\n\r\nObject.keys(Enums).forEach(key => {\r\n ExcelJS[key] = Enums[key];\r\n});\r\n\r\nmodule.exports = ExcelJS;\r\n"],"mappings":";;AAAA;AACA,MAAMA,OAAO,GAAG;EACdC,QAAQ,EAAEC,OAAO,CAAC,gBAAgB;AACpC,CAAC;;AAED;AACA,MAAMC,KAAK,GAAGD,OAAO,CAAC,aAAa,CAAC;AAEpCE,MAAM,CAACC,IAAI,CAACF,KAAK,CAAC,CAACG,OAAO,CAACC,GAAG,IAAI;EAChCP,OAAO,CAACO,GAAG,CAAC,GAAGJ,KAAK,CAACI,GAAG,CAAC;AAC3B,CAAC,CAAC;AAEFC,MAAM,CAACC,OAAO,GAAGT,OAAO","ignoreList":[]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ /* eslint-disable import/no-extraneous-dependencies,node/no-unpublished-require */
4
+ require('core-js/modules/es.promise');
5
+ require('core-js/modules/es.promise.finally');
6
+ require('core-js/modules/es.object.assign');
7
+ require('core-js/modules/es.object.keys');
8
+ require('core-js/modules/es.object.values');
9
+ require('core-js/modules/es.symbol');
10
+ require('core-js/modules/es.symbol.async-iterator');
11
+ // required by core-js/modules/es.promise Promise.all
12
+ require('core-js/modules/es.array.iterator');
13
+ // required by node_modules/saxes/saxes.js SaxesParser.captureTo
14
+ require('core-js/modules/es.array.includes');
15
+ // required by lib/doc/workbook.js Workbook.model
16
+ require('core-js/modules/es.array.find-index');
17
+ // required by lib/doc/workbook.js Workbook.addWorksheet and Workbook.getWorksheet
18
+ require('core-js/modules/es.array.find');
19
+ // required by node_modules/saxes/saxes.js SaxesParser.getCode10
20
+ require('core-js/modules/es.string.from-code-point');
21
+ // required by lib/xlsx/xform/sheet/data-validations-xform.js DataValidationsXform.parseClose
22
+ require('core-js/modules/es.string.includes');
23
+ // required by lib/utils/utils.js utils.validInt and lib/csv/csv.js CSV.read
24
+ require('core-js/modules/es.number.is-nan');
25
+ require('regenerator-runtime/runtime');
26
+ const ExcelJS = {
27
+ Workbook: require('./doc/workbook')
28
+ };
29
+
30
+ // Object.assign mono-fill
31
+ const Enums = require('./doc/enums');
32
+ Object.keys(Enums).forEach(key => {
33
+ ExcelJS[key] = Enums[key];
34
+ });
35
+ module.exports = ExcelJS;
36
+ //# sourceMappingURL=exceljs.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exceljs.browser.js","names":["require","ExcelJS","Workbook","Enums","Object","keys","forEach","key","module","exports"],"sources":["../../lib/exceljs.browser.js"],"sourcesContent":["/* eslint-disable import/no-extraneous-dependencies,node/no-unpublished-require */\r\nrequire('core-js/modules/es.promise');\r\nrequire('core-js/modules/es.promise.finally');\r\nrequire('core-js/modules/es.object.assign');\r\nrequire('core-js/modules/es.object.keys');\r\nrequire('core-js/modules/es.object.values');\r\nrequire('core-js/modules/es.symbol');\r\nrequire('core-js/modules/es.symbol.async-iterator');\r\n// required by core-js/modules/es.promise Promise.all\r\nrequire('core-js/modules/es.array.iterator');\r\n// required by node_modules/saxes/saxes.js SaxesParser.captureTo\r\nrequire('core-js/modules/es.array.includes');\r\n// required by lib/doc/workbook.js Workbook.model\r\nrequire('core-js/modules/es.array.find-index');\r\n// required by lib/doc/workbook.js Workbook.addWorksheet and Workbook.getWorksheet\r\nrequire('core-js/modules/es.array.find');\r\n// required by node_modules/saxes/saxes.js SaxesParser.getCode10\r\nrequire('core-js/modules/es.string.from-code-point');\r\n// required by lib/xlsx/xform/sheet/data-validations-xform.js DataValidationsXform.parseClose\r\nrequire('core-js/modules/es.string.includes');\r\n// required by lib/utils/utils.js utils.validInt and lib/csv/csv.js CSV.read\r\nrequire('core-js/modules/es.number.is-nan');\r\nrequire('regenerator-runtime/runtime');\r\n\r\nconst ExcelJS = {\r\n Workbook: require('./doc/workbook'),\r\n};\r\n\r\n// Object.assign mono-fill\r\nconst Enums = require('./doc/enums');\r\n\r\nObject.keys(Enums).forEach(key => {\r\n ExcelJS[key] = Enums[key];\r\n});\r\n\r\nmodule.exports = ExcelJS;\r\n"],"mappings":";;AAAA;AACAA,OAAO,CAAC,4BAA4B,CAAC;AACrCA,OAAO,CAAC,oCAAoC,CAAC;AAC7CA,OAAO,CAAC,kCAAkC,CAAC;AAC3CA,OAAO,CAAC,gCAAgC,CAAC;AACzCA,OAAO,CAAC,kCAAkC,CAAC;AAC3CA,OAAO,CAAC,2BAA2B,CAAC;AACpCA,OAAO,CAAC,0CAA0C,CAAC;AACnD;AACAA,OAAO,CAAC,mCAAmC,CAAC;AAC5C;AACAA,OAAO,CAAC,mCAAmC,CAAC;AAC5C;AACAA,OAAO,CAAC,qCAAqC,CAAC;AAC9C;AACAA,OAAO,CAAC,+BAA+B,CAAC;AACxC;AACAA,OAAO,CAAC,2CAA2C,CAAC;AACpD;AACAA,OAAO,CAAC,oCAAoC,CAAC;AAC7C;AACAA,OAAO,CAAC,kCAAkC,CAAC;AAC3CA,OAAO,CAAC,6BAA6B,CAAC;AAEtC,MAAMC,OAAO,GAAG;EACdC,QAAQ,EAAEF,OAAO,CAAC,gBAAgB;AACpC,CAAC;;AAED;AACA,MAAMG,KAAK,GAAGH,OAAO,CAAC,aAAa,CAAC;AAEpCI,MAAM,CAACC,IAAI,CAACF,KAAK,CAAC,CAACG,OAAO,CAACC,GAAG,IAAI;EAChCN,OAAO,CAACM,GAAG,CAAC,GAAGJ,KAAK,CAACI,GAAG,CAAC;AAC3B,CAAC,CAAC;AAEFC,MAAM,CAACC,OAAO,GAAGR,OAAO","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ const ExcelJS = {
4
+ Workbook: require('./doc/workbook'),
5
+ ModelContainer: require('./doc/modelcontainer'),
6
+ stream: {
7
+ xlsx: {
8
+ WorkbookWriter: require('./stream/xlsx/workbook-writer'),
9
+ WorkbookReader: require('./stream/xlsx/workbook-reader')
10
+ }
11
+ }
12
+ };
13
+ Object.assign(ExcelJS, require('./doc/enums'));
14
+ module.exports = ExcelJS;
15
+ //# sourceMappingURL=exceljs.nodejs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exceljs.nodejs.js","names":["ExcelJS","Workbook","require","ModelContainer","stream","xlsx","WorkbookWriter","WorkbookReader","Object","assign","module","exports"],"sources":["../../lib/exceljs.nodejs.js"],"sourcesContent":["const ExcelJS = {\r\n Workbook: require('./doc/workbook'),\r\n ModelContainer: require('./doc/modelcontainer'),\r\n stream: {\r\n xlsx: {\r\n WorkbookWriter: require('./stream/xlsx/workbook-writer'),\r\n WorkbookReader: require('./stream/xlsx/workbook-reader'),\r\n },\r\n },\r\n};\r\n\r\nObject.assign(ExcelJS, require('./doc/enums'));\r\n\r\nmodule.exports = ExcelJS;\r\n"],"mappings":";;AAAA,MAAMA,OAAO,GAAG;EACdC,QAAQ,EAAEC,OAAO,CAAC,gBAAgB,CAAC;EACnCC,cAAc,EAAED,OAAO,CAAC,sBAAsB,CAAC;EAC/CE,MAAM,EAAE;IACNC,IAAI,EAAE;MACJC,cAAc,EAAEJ,OAAO,CAAC,+BAA+B,CAAC;MACxDK,cAAc,EAAEL,OAAO,CAAC,+BAA+B;IACzD;EACF;AACF,CAAC;AAEDM,MAAM,CAACC,MAAM,CAACT,OAAO,EAAEE,OAAO,CAAC,aAAa,CAAC,CAAC;AAE9CQ,MAAM,CAACC,OAAO,GAAGX,OAAO","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ const ExcelJS = {
4
+ Workbook: require('./doc/workbook'),
5
+ ModelContainer: require('./doc/modelcontainer'),
6
+ stream: {
7
+ xlsx: {
8
+ WorkbookWriter: require('./stream/xlsx/workbook-writer'),
9
+ WorkbookReader: require('./stream/xlsx/workbook-reader')
10
+ }
11
+ }
12
+ };
13
+ Object.assign(ExcelJS, require('./doc/enums'));
14
+ module.exports = ExcelJS;
15
+ //# sourceMappingURL=exceljs.nodejs.js.map
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ const {
4
+ EventEmitter
5
+ } = require('events');
6
+ const parseSax = require('../../utils/parse-sax');
7
+ const Enums = require('../../doc/enums');
8
+ const RelType = require('../../xlsx/rel-type');
9
+ class HyperlinkReader extends EventEmitter {
10
+ constructor(_ref) {
11
+ let {
12
+ workbook,
13
+ id,
14
+ iterator,
15
+ options
16
+ } = _ref;
17
+ super();
18
+ this.workbook = workbook;
19
+ this.id = id;
20
+ this.iterator = iterator;
21
+ this.options = options;
22
+ }
23
+ get count() {
24
+ return this.hyperlinks && this.hyperlinks.length || 0;
25
+ }
26
+ each(fn) {
27
+ return this.hyperlinks.forEach(fn);
28
+ }
29
+ async read() {
30
+ const {
31
+ iterator,
32
+ options
33
+ } = this;
34
+ let emitHyperlinks = false;
35
+ let hyperlinks = null;
36
+ switch (options.hyperlinks) {
37
+ case 'emit':
38
+ emitHyperlinks = true;
39
+ break;
40
+ case 'cache':
41
+ this.hyperlinks = hyperlinks = {};
42
+ break;
43
+ default:
44
+ break;
45
+ }
46
+ if (!emitHyperlinks && !hyperlinks) {
47
+ this.emit('finished');
48
+ return;
49
+ }
50
+ try {
51
+ for await (const events of parseSax(iterator)) {
52
+ for (const {
53
+ eventType,
54
+ value
55
+ } of events) {
56
+ if (eventType === 'opentag') {
57
+ const node = value;
58
+ if (node.name === 'Relationship') {
59
+ const rId = node.attributes.Id;
60
+ switch (node.attributes.Type) {
61
+ case RelType.Hyperlink:
62
+ {
63
+ const relationship = {
64
+ type: Enums.RelationshipType.Styles,
65
+ rId,
66
+ target: node.attributes.Target,
67
+ targetMode: node.attributes.TargetMode
68
+ };
69
+ if (emitHyperlinks) {
70
+ this.emit('hyperlink', relationship);
71
+ } else {
72
+ hyperlinks[relationship.rId] = relationship;
73
+ }
74
+ }
75
+ break;
76
+ default:
77
+ break;
78
+ }
79
+ }
80
+ }
81
+ }
82
+ }
83
+ this.emit('finished');
84
+ } catch (error) {
85
+ this.emit('error', error);
86
+ }
87
+ }
88
+ }
89
+ module.exports = HyperlinkReader;
90
+ //# sourceMappingURL=hyperlink-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyperlink-reader.js","names":["EventEmitter","require","parseSax","Enums","RelType","HyperlinkReader","constructor","_ref","workbook","id","iterator","options","count","hyperlinks","length","each","fn","forEach","read","emitHyperlinks","emit","events","eventType","value","node","name","rId","attributes","Id","Type","Hyperlink","relationship","type","RelationshipType","Styles","target","Target","targetMode","TargetMode","error","module","exports"],"sources":["../../../../lib/stream/xlsx/hyperlink-reader.js"],"sourcesContent":["const {EventEmitter} = require('events');\r\nconst parseSax = require('../../utils/parse-sax');\r\n\r\nconst Enums = require('../../doc/enums');\r\nconst RelType = require('../../xlsx/rel-type');\r\n\r\nclass HyperlinkReader extends EventEmitter {\r\n constructor({workbook, id, iterator, options}) {\r\n super();\r\n\r\n this.workbook = workbook;\r\n this.id = id;\r\n this.iterator = iterator;\r\n this.options = options;\r\n }\r\n\r\n get count() {\r\n return (this.hyperlinks && this.hyperlinks.length) || 0;\r\n }\r\n\r\n each(fn) {\r\n return this.hyperlinks.forEach(fn);\r\n }\r\n\r\n async read() {\r\n const {iterator, options} = this;\r\n let emitHyperlinks = false;\r\n let hyperlinks = null;\r\n switch (options.hyperlinks) {\r\n case 'emit':\r\n emitHyperlinks = true;\r\n break;\r\n case 'cache':\r\n this.hyperlinks = hyperlinks = {};\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (!emitHyperlinks && !hyperlinks) {\r\n this.emit('finished');\r\n return;\r\n }\r\n\r\n try {\r\n for await (const events of parseSax(iterator)) {\r\n for (const {eventType, value} of events) {\r\n if (eventType === 'opentag') {\r\n const node = value;\r\n if (node.name === 'Relationship') {\r\n const rId = node.attributes.Id;\r\n switch (node.attributes.Type) {\r\n case RelType.Hyperlink:\r\n {\r\n const relationship = {\r\n type: Enums.RelationshipType.Styles,\r\n rId,\r\n target: node.attributes.Target,\r\n targetMode: node.attributes.TargetMode,\r\n };\r\n if (emitHyperlinks) {\r\n this.emit('hyperlink', relationship);\r\n } else {\r\n hyperlinks[relationship.rId] = relationship;\r\n }\r\n }\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n this.emit('finished');\r\n } catch (error) {\r\n this.emit('error', error);\r\n }\r\n }\r\n}\r\n\r\nmodule.exports = HyperlinkReader;\r\n"],"mappings":";;AAAA,MAAM;EAACA;AAAY,CAAC,GAAGC,OAAO,CAAC,QAAQ,CAAC;AACxC,MAAMC,QAAQ,GAAGD,OAAO,CAAC,uBAAuB,CAAC;AAEjD,MAAME,KAAK,GAAGF,OAAO,CAAC,iBAAiB,CAAC;AACxC,MAAMG,OAAO,GAAGH,OAAO,CAAC,qBAAqB,CAAC;AAE9C,MAAMI,eAAe,SAASL,YAAY,CAAC;EACzCM,WAAWA,CAAAC,IAAA,EAAoC;IAAA,IAAnC;MAACC,QAAQ;MAAEC,EAAE;MAAEC,QAAQ;MAAEC;IAAO,CAAC,GAAAJ,IAAA;IAC3C,KAAK,CAAC,CAAC;IAEP,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,EAAE,GAAGA,EAAE;IACZ,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;EACxB;EAEA,IAAIC,KAAKA,CAAA,EAAG;IACV,OAAQ,IAAI,CAACC,UAAU,IAAI,IAAI,CAACA,UAAU,CAACC,MAAM,IAAK,CAAC;EACzD;EAEAC,IAAIA,CAACC,EAAE,EAAE;IACP,OAAO,IAAI,CAACH,UAAU,CAACI,OAAO,CAACD,EAAE,CAAC;EACpC;EAEA,MAAME,IAAIA,CAAA,EAAG;IACX,MAAM;MAACR,QAAQ;MAAEC;IAAO,CAAC,GAAG,IAAI;IAChC,IAAIQ,cAAc,GAAG,KAAK;IAC1B,IAAIN,UAAU,GAAG,IAAI;IACrB,QAAQF,OAAO,CAACE,UAAU;MACxB,KAAK,MAAM;QACTM,cAAc,GAAG,IAAI;QACrB;MACF,KAAK,OAAO;QACV,IAAI,CAACN,UAAU,GAAGA,UAAU,GAAG,CAAC,CAAC;QACjC;MACF;QACE;IACJ;IAEA,IAAI,CAACM,cAAc,IAAI,CAACN,UAAU,EAAE;MAClC,IAAI,CAACO,IAAI,CAAC,UAAU,CAAC;MACrB;IACF;IAEA,IAAI;MACF,WAAW,MAAMC,MAAM,IAAInB,QAAQ,CAACQ,QAAQ,CAAC,EAAE;QAC7C,KAAK,MAAM;UAACY,SAAS;UAAEC;QAAK,CAAC,IAAIF,MAAM,EAAE;UACvC,IAAIC,SAAS,KAAK,SAAS,EAAE;YAC3B,MAAME,IAAI,GAAGD,KAAK;YAClB,IAAIC,IAAI,CAACC,IAAI,KAAK,cAAc,EAAE;cAChC,MAAMC,GAAG,GAAGF,IAAI,CAACG,UAAU,CAACC,EAAE;cAC9B,QAAQJ,IAAI,CAACG,UAAU,CAACE,IAAI;gBAC1B,KAAKzB,OAAO,CAAC0B,SAAS;kBACpB;oBACE,MAAMC,YAAY,GAAG;sBACnBC,IAAI,EAAE7B,KAAK,CAAC8B,gBAAgB,CAACC,MAAM;sBACnCR,GAAG;sBACHS,MAAM,EAAEX,IAAI,CAACG,UAAU,CAACS,MAAM;sBAC9BC,UAAU,EAAEb,IAAI,CAACG,UAAU,CAACW;oBAC9B,CAAC;oBACD,IAAInB,cAAc,EAAE;sBAClB,IAAI,CAACC,IAAI,CAAC,WAAW,EAAEW,YAAY,CAAC;oBACtC,CAAC,MAAM;sBACLlB,UAAU,CAACkB,YAAY,CAACL,GAAG,CAAC,GAAGK,YAAY;oBAC7C;kBACF;kBACA;gBAEF;kBACE;cACJ;YACF;UACF;QACF;MACF;MACA,IAAI,CAACX,IAAI,CAAC,UAAU,CAAC;IACvB,CAAC,CAAC,OAAOmB,KAAK,EAAE;MACd,IAAI,CAACnB,IAAI,CAAC,OAAO,EAAEmB,KAAK,CAAC;IAC3B;EACF;AACF;AAEAC,MAAM,CAACC,OAAO,GAAGpC,eAAe","ignoreList":[]}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ const XmlStream = require('../../utils/xml-stream');
4
+ const RelType = require('../../xlsx/rel-type');
5
+ const colCache = require('../../utils/col-cache');
6
+ const CommentXform = require('../../xlsx/xform/comment/comment-xform');
7
+ const VmlShapeXform = require('../../xlsx/xform/comment/vml-shape-xform');
8
+ class SheetCommentsWriter {
9
+ constructor(worksheet, sheetRelsWriter, options) {
10
+ // in a workbook, each sheet will have a number
11
+ this.id = options.id;
12
+ this.count = 0;
13
+ this._worksheet = worksheet;
14
+ this._workbook = options.workbook;
15
+ this._sheetRelsWriter = sheetRelsWriter;
16
+ }
17
+ get commentsStream() {
18
+ if (!this._commentsStream) {
19
+ // eslint-disable-next-line no-underscore-dangle
20
+ this._commentsStream = this._workbook._openStream(`/xl/comments${this.id}.xml`);
21
+ }
22
+ return this._commentsStream;
23
+ }
24
+ get vmlStream() {
25
+ if (!this._vmlStream) {
26
+ // eslint-disable-next-line no-underscore-dangle
27
+ this._vmlStream = this._workbook._openStream(`xl/drawings/vmlDrawing${this.id}.vml`);
28
+ }
29
+ return this._vmlStream;
30
+ }
31
+ _addRelationships() {
32
+ const commentRel = {
33
+ Type: RelType.Comments,
34
+ Target: `../comments${this.id}.xml`
35
+ };
36
+ this._sheetRelsWriter.addRelationship(commentRel);
37
+ const vmlDrawingRel = {
38
+ Type: RelType.VmlDrawing,
39
+ Target: `../drawings/vmlDrawing${this.id}.vml`
40
+ };
41
+ this.vmlRelId = this._sheetRelsWriter.addRelationship(vmlDrawingRel);
42
+ }
43
+ _addCommentRefs() {
44
+ this._workbook.commentRefs.push({
45
+ commentName: `comments${this.id}`,
46
+ vmlDrawing: `vmlDrawing${this.id}`
47
+ });
48
+ }
49
+ _writeOpen() {
50
+ this.commentsStream.write('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' + '<comments xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">' + '<authors><author>Author</author></authors>' + '<commentList>');
51
+ this.vmlStream.write('<?xml version="1.0" encoding="UTF-8"?>' + '<xml xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:x="urn:schemas-microsoft-com:office:excel">' + '<o:shapelayout v:ext="edit">' + '<o:idmap v:ext="edit" data="1" />' + '</o:shapelayout>' + '<v:shapetype id="_x0000_t202" coordsize="21600,21600" o:spt="202" path="m,l,21600r21600,l21600,xe">' + '<v:stroke joinstyle="miter" />' + '<v:path gradientshapeok="t" o:connecttype="rect" />' + '</v:shapetype>');
52
+ }
53
+ _writeComment(comment, index) {
54
+ const commentXform = new CommentXform();
55
+ const commentsXmlStream = new XmlStream();
56
+ commentXform.render(commentsXmlStream, comment);
57
+ this.commentsStream.write(commentsXmlStream.xml);
58
+ const vmlShapeXform = new VmlShapeXform();
59
+ const vmlXmlStream = new XmlStream();
60
+ vmlShapeXform.render(vmlXmlStream, comment, index);
61
+ this.vmlStream.write(vmlXmlStream.xml);
62
+ }
63
+ _writeClose() {
64
+ this.commentsStream.write('</commentList></comments>');
65
+ this.vmlStream.write('</xml>');
66
+ }
67
+ addComments(comments) {
68
+ if (comments && comments.length) {
69
+ if (!this.startedData) {
70
+ this._worksheet.comments = [];
71
+ this._writeOpen();
72
+ this._addRelationships();
73
+ this._addCommentRefs();
74
+ this.startedData = true;
75
+ }
76
+ comments.forEach(item => {
77
+ item.refAddress = colCache.decodeAddress(item.ref);
78
+ });
79
+ comments.forEach(comment => {
80
+ this._writeComment(comment, this.count);
81
+ this.count += 1;
82
+ });
83
+ }
84
+ }
85
+ commit() {
86
+ if (this.count) {
87
+ this._writeClose();
88
+ this.commentsStream.end();
89
+ this.vmlStream.end();
90
+ }
91
+ }
92
+ }
93
+ module.exports = SheetCommentsWriter;
94
+ //# sourceMappingURL=sheet-comments-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet-comments-writer.js","names":["XmlStream","require","RelType","colCache","CommentXform","VmlShapeXform","SheetCommentsWriter","constructor","worksheet","sheetRelsWriter","options","id","count","_worksheet","_workbook","workbook","_sheetRelsWriter","commentsStream","_commentsStream","_openStream","vmlStream","_vmlStream","_addRelationships","commentRel","Type","Comments","Target","addRelationship","vmlDrawingRel","VmlDrawing","vmlRelId","_addCommentRefs","commentRefs","push","commentName","vmlDrawing","_writeOpen","write","_writeComment","comment","index","commentXform","commentsXmlStream","render","xml","vmlShapeXform","vmlXmlStream","_writeClose","addComments","comments","length","startedData","forEach","item","refAddress","decodeAddress","ref","commit","end","module","exports"],"sources":["../../../../lib/stream/xlsx/sheet-comments-writer.js"],"sourcesContent":["const XmlStream = require('../../utils/xml-stream');\r\nconst RelType = require('../../xlsx/rel-type');\r\nconst colCache = require('../../utils/col-cache');\r\nconst CommentXform = require('../../xlsx/xform/comment/comment-xform');\r\nconst VmlShapeXform = require('../../xlsx/xform/comment/vml-shape-xform');\r\n\r\nclass SheetCommentsWriter {\r\n constructor(worksheet, sheetRelsWriter, options) {\r\n // in a workbook, each sheet will have a number\r\n this.id = options.id;\r\n this.count = 0;\r\n this._worksheet = worksheet;\r\n this._workbook = options.workbook;\r\n this._sheetRelsWriter = sheetRelsWriter;\r\n }\r\n\r\n get commentsStream() {\r\n if (!this._commentsStream) {\r\n // eslint-disable-next-line no-underscore-dangle\r\n this._commentsStream = this._workbook._openStream(`/xl/comments${this.id}.xml`);\r\n }\r\n return this._commentsStream;\r\n }\r\n\r\n get vmlStream() {\r\n if (!this._vmlStream) {\r\n // eslint-disable-next-line no-underscore-dangle\r\n this._vmlStream = this._workbook._openStream(`xl/drawings/vmlDrawing${this.id}.vml`);\r\n }\r\n return this._vmlStream;\r\n }\r\n\r\n _addRelationships() {\r\n const commentRel = {\r\n Type: RelType.Comments,\r\n Target: `../comments${this.id}.xml`,\r\n };\r\n this._sheetRelsWriter.addRelationship(commentRel);\r\n\r\n const vmlDrawingRel = {\r\n Type: RelType.VmlDrawing,\r\n Target: `../drawings/vmlDrawing${this.id}.vml`,\r\n };\r\n this.vmlRelId = this._sheetRelsWriter.addRelationship(vmlDrawingRel);\r\n }\r\n\r\n _addCommentRefs() {\r\n this._workbook.commentRefs.push({\r\n commentName: `comments${this.id}`,\r\n vmlDrawing: `vmlDrawing${this.id}`,\r\n });\r\n }\r\n\r\n _writeOpen() {\r\n this.commentsStream.write(\r\n '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>' +\r\n '<comments xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">' +\r\n '<authors><author>Author</author></authors>' +\r\n '<commentList>'\r\n );\r\n this.vmlStream.write(\r\n '<?xml version=\"1.0\" encoding=\"UTF-8\"?>' +\r\n '<xml xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:x=\"urn:schemas-microsoft-com:office:excel\">' +\r\n '<o:shapelayout v:ext=\"edit\">' +\r\n '<o:idmap v:ext=\"edit\" data=\"1\" />' +\r\n '</o:shapelayout>' +\r\n '<v:shapetype id=\"_x0000_t202\" coordsize=\"21600,21600\" o:spt=\"202\" path=\"m,l,21600r21600,l21600,xe\">' +\r\n '<v:stroke joinstyle=\"miter\" />' +\r\n '<v:path gradientshapeok=\"t\" o:connecttype=\"rect\" />' +\r\n '</v:shapetype>'\r\n );\r\n }\r\n\r\n _writeComment(comment, index) {\r\n const commentXform = new CommentXform();\r\n const commentsXmlStream = new XmlStream();\r\n commentXform.render(commentsXmlStream, comment);\r\n this.commentsStream.write(commentsXmlStream.xml);\r\n\r\n const vmlShapeXform = new VmlShapeXform();\r\n const vmlXmlStream = new XmlStream();\r\n vmlShapeXform.render(vmlXmlStream, comment, index);\r\n this.vmlStream.write(vmlXmlStream.xml);\r\n }\r\n\r\n _writeClose() {\r\n this.commentsStream.write('</commentList></comments>');\r\n this.vmlStream.write('</xml>');\r\n }\r\n\r\n addComments(comments) {\r\n if (comments && comments.length) {\r\n if (!this.startedData) {\r\n this._worksheet.comments = [];\r\n this._writeOpen();\r\n this._addRelationships();\r\n this._addCommentRefs();\r\n this.startedData = true;\r\n }\r\n\r\n comments.forEach(item => {\r\n item.refAddress = colCache.decodeAddress(item.ref);\r\n });\r\n\r\n comments.forEach(comment => {\r\n this._writeComment(comment, this.count);\r\n this.count += 1;\r\n });\r\n }\r\n }\r\n\r\n commit() {\r\n if (this.count) {\r\n this._writeClose();\r\n this.commentsStream.end();\r\n this.vmlStream.end();\r\n }\r\n }\r\n}\r\n\r\nmodule.exports = SheetCommentsWriter;\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ /* eslint-disable max-classes-per-file */
4
+ const utils = require('../../utils/utils');
5
+ const RelType = require('../../xlsx/rel-type');
6
+ class HyperlinksProxy {
7
+ constructor(sheetRelsWriter) {
8
+ this.writer = sheetRelsWriter;
9
+ }
10
+ push(hyperlink) {
11
+ this.writer.addHyperlink(hyperlink);
12
+ }
13
+ }
14
+ class SheetRelsWriter {
15
+ constructor(options) {
16
+ // in a workbook, each sheet will have a number
17
+ this.id = options.id;
18
+
19
+ // count of all relationships
20
+ this.count = 0;
21
+
22
+ // keep record of all hyperlinks
23
+ this._hyperlinks = [];
24
+ this._workbook = options.workbook;
25
+ }
26
+ get stream() {
27
+ if (!this._stream) {
28
+ // eslint-disable-next-line no-underscore-dangle
29
+ this._stream = this._workbook._openStream(`/xl/worksheets/_rels/sheet${this.id}.xml.rels`);
30
+ }
31
+ return this._stream;
32
+ }
33
+ get length() {
34
+ return this._hyperlinks.length;
35
+ }
36
+ each(fn) {
37
+ return this._hyperlinks.forEach(fn);
38
+ }
39
+ get hyperlinksProxy() {
40
+ return this._hyperlinksProxy || (this._hyperlinksProxy = new HyperlinksProxy(this));
41
+ }
42
+ addHyperlink(hyperlink) {
43
+ // Write to stream
44
+ const relationship = {
45
+ Target: hyperlink.target,
46
+ Type: RelType.Hyperlink,
47
+ TargetMode: 'External'
48
+ };
49
+ const rId = this._writeRelationship(relationship);
50
+
51
+ // store sheet stuff for later
52
+ this._hyperlinks.push({
53
+ rId,
54
+ address: hyperlink.address
55
+ });
56
+ }
57
+ addMedia(media) {
58
+ return this._writeRelationship(media);
59
+ }
60
+ addRelationship(rel) {
61
+ return this._writeRelationship(rel);
62
+ }
63
+ commit() {
64
+ if (this.count) {
65
+ // write xml utro
66
+ this._writeClose();
67
+ // and close stream
68
+ this.stream.end();
69
+ }
70
+ }
71
+
72
+ // ================================================================================
73
+ _writeOpen() {
74
+ this.stream.write(`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
75
+ <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">`);
76
+ }
77
+ _writeRelationship(relationship) {
78
+ if (!this.count) {
79
+ this._writeOpen();
80
+ }
81
+ const rId = `rId${++this.count}`;
82
+ if (relationship.TargetMode) {
83
+ this.stream.write(`<Relationship Id="${rId}"` + ` Type="${relationship.Type}"` + ` Target="${utils.xmlEncode(relationship.Target)}"` + ` TargetMode="${relationship.TargetMode}"` + '/>');
84
+ } else {
85
+ this.stream.write(`<Relationship Id="${rId}" Type="${relationship.Type}" Target="${relationship.Target}"/>`);
86
+ }
87
+ return rId;
88
+ }
89
+ _writeClose() {
90
+ this.stream.write('</Relationships>');
91
+ }
92
+ }
93
+ module.exports = SheetRelsWriter;
94
+ //# sourceMappingURL=sheet-rels-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet-rels-writer.js","names":["utils","require","RelType","HyperlinksProxy","constructor","sheetRelsWriter","writer","push","hyperlink","addHyperlink","SheetRelsWriter","options","id","count","_hyperlinks","_workbook","workbook","stream","_stream","_openStream","length","each","fn","forEach","hyperlinksProxy","_hyperlinksProxy","relationship","Target","target","Type","Hyperlink","TargetMode","rId","_writeRelationship","address","addMedia","media","addRelationship","rel","commit","_writeClose","end","_writeOpen","write","xmlEncode","module","exports"],"sources":["../../../../lib/stream/xlsx/sheet-rels-writer.js"],"sourcesContent":["/* eslint-disable max-classes-per-file */\r\nconst utils = require('../../utils/utils');\r\nconst RelType = require('../../xlsx/rel-type');\r\n\r\nclass HyperlinksProxy {\r\n constructor(sheetRelsWriter) {\r\n this.writer = sheetRelsWriter;\r\n }\r\n\r\n push(hyperlink) {\r\n this.writer.addHyperlink(hyperlink);\r\n }\r\n}\r\n\r\nclass SheetRelsWriter {\r\n constructor(options) {\r\n // in a workbook, each sheet will have a number\r\n this.id = options.id;\r\n\r\n // count of all relationships\r\n this.count = 0;\r\n\r\n // keep record of all hyperlinks\r\n this._hyperlinks = [];\r\n\r\n this._workbook = options.workbook;\r\n }\r\n\r\n get stream() {\r\n if (!this._stream) {\r\n // eslint-disable-next-line no-underscore-dangle\r\n this._stream = this._workbook._openStream(`/xl/worksheets/_rels/sheet${this.id}.xml.rels`);\r\n }\r\n return this._stream;\r\n }\r\n\r\n get length() {\r\n return this._hyperlinks.length;\r\n }\r\n\r\n each(fn) {\r\n return this._hyperlinks.forEach(fn);\r\n }\r\n\r\n get hyperlinksProxy() {\r\n return this._hyperlinksProxy || (this._hyperlinksProxy = new HyperlinksProxy(this));\r\n }\r\n\r\n addHyperlink(hyperlink) {\r\n // Write to stream\r\n const relationship = {\r\n Target: hyperlink.target,\r\n Type: RelType.Hyperlink,\r\n TargetMode: 'External',\r\n };\r\n const rId = this._writeRelationship(relationship);\r\n\r\n // store sheet stuff for later\r\n this._hyperlinks.push({\r\n rId,\r\n address: hyperlink.address,\r\n });\r\n }\r\n\r\n addMedia(media) {\r\n return this._writeRelationship(media);\r\n }\r\n\r\n addRelationship(rel) {\r\n return this._writeRelationship(rel);\r\n }\r\n\r\n commit() {\r\n if (this.count) {\r\n // write xml utro\r\n this._writeClose();\r\n // and close stream\r\n this.stream.end();\r\n }\r\n }\r\n\r\n // ================================================================================\r\n _writeOpen() {\r\n this.stream.write(\r\n `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n <Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">`\r\n );\r\n }\r\n\r\n _writeRelationship(relationship) {\r\n if (!this.count) {\r\n this._writeOpen();\r\n }\r\n\r\n const rId = `rId${++this.count}`;\r\n\r\n if (relationship.TargetMode) {\r\n this.stream.write(\r\n `<Relationship Id=\"${rId}\"` +\r\n ` Type=\"${relationship.Type}\"` +\r\n ` Target=\"${utils.xmlEncode(relationship.Target)}\"` +\r\n ` TargetMode=\"${relationship.TargetMode}\"` +\r\n '/>'\r\n );\r\n } else {\r\n this.stream.write(\r\n `<Relationship Id=\"${rId}\" Type=\"${relationship.Type}\" Target=\"${relationship.Target}\"/>`\r\n );\r\n }\r\n\r\n return rId;\r\n }\r\n\r\n _writeClose() {\r\n this.stream.write('</Relationships>');\r\n }\r\n}\r\n\r\nmodule.exports = SheetRelsWriter;\r\n"],"mappings":"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","ignoreList":[]}