@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,382 @@
1
+ 'use strict';
2
+
3
+ const _ = require('../utils/under-dash');
4
+ const Enums = require('./enums');
5
+ const colCache = require('../utils/col-cache');
6
+ const Cell = require('./cell');
7
+ class Row {
8
+ constructor(worksheet, number) {
9
+ this._worksheet = worksheet;
10
+ this._number = number;
11
+ this._cells = [];
12
+ this.style = {};
13
+ this.outlineLevel = 0;
14
+ }
15
+
16
+ // return the row number
17
+ get number() {
18
+ return this._number;
19
+ }
20
+ get worksheet() {
21
+ return this._worksheet;
22
+ }
23
+
24
+ // Inform Streaming Writer that this row (and all rows before it) are complete
25
+ // and ready to write. Has no effect on Worksheet document
26
+ commit() {
27
+ this._worksheet._commitRow(this); // eslint-disable-line no-underscore-dangle
28
+ }
29
+
30
+ // helps GC by breaking cyclic references
31
+ destroy() {
32
+ delete this._worksheet;
33
+ delete this._cells;
34
+ delete this.style;
35
+ }
36
+ findCell(colNumber) {
37
+ return this._cells[colNumber - 1];
38
+ }
39
+
40
+ // given {address, row, col}, find or create new cell
41
+ getCellEx(address) {
42
+ let cell = this._cells[address.col - 1];
43
+ if (!cell) {
44
+ const column = this._worksheet.getColumn(address.col);
45
+ cell = new Cell(this, column, address.address);
46
+ this._cells[address.col - 1] = cell;
47
+ }
48
+ return cell;
49
+ }
50
+
51
+ // get cell by key, letter or column number
52
+ getCell(col) {
53
+ if (typeof col === 'string') {
54
+ // is it a key?
55
+ const column = this._worksheet.getColumnKey(col);
56
+ if (column) {
57
+ col = column.number;
58
+ } else {
59
+ col = colCache.l2n(col);
60
+ }
61
+ }
62
+ return this._cells[col - 1] || this.getCellEx({
63
+ address: colCache.encodeAddress(this._number, col),
64
+ row: this._number,
65
+ col
66
+ });
67
+ }
68
+
69
+ // remove cell(s) and shift all higher cells down by count
70
+ splice(start, count) {
71
+ const nKeep = start + count;
72
+ for (var _len = arguments.length, inserts = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
73
+ inserts[_key - 2] = arguments[_key];
74
+ }
75
+ const nExpand = inserts.length - count;
76
+ const nEnd = this._cells.length;
77
+ let i;
78
+ let cSrc;
79
+ let cDst;
80
+ if (nExpand < 0) {
81
+ // remove cells
82
+ for (i = start + inserts.length; i <= nEnd; i++) {
83
+ cDst = this._cells[i - 1];
84
+ cSrc = this._cells[i - nExpand - 1];
85
+ if (cSrc) {
86
+ cDst = this.getCell(i);
87
+ cDst.value = cSrc.value;
88
+ cDst.style = cSrc.style;
89
+ // eslint-disable-next-line no-underscore-dangle
90
+ cDst._comment = cSrc._comment;
91
+ } else if (cDst) {
92
+ cDst.value = null;
93
+ cDst.style = {};
94
+ // eslint-disable-next-line no-underscore-dangle
95
+ cDst._comment = undefined;
96
+ }
97
+ }
98
+ } else if (nExpand > 0) {
99
+ // insert new cells
100
+ for (i = nEnd; i >= nKeep; i--) {
101
+ cSrc = this._cells[i - 1];
102
+ if (cSrc) {
103
+ cDst = this.getCell(i + nExpand);
104
+ cDst.value = cSrc.value;
105
+ cDst.style = cSrc.style;
106
+ // eslint-disable-next-line no-underscore-dangle
107
+ cDst._comment = cSrc._comment;
108
+ } else {
109
+ this._cells[i + nExpand - 1] = undefined;
110
+ }
111
+ }
112
+ }
113
+
114
+ // now add the new values
115
+ for (i = 0; i < inserts.length; i++) {
116
+ cDst = this.getCell(start + i);
117
+ cDst.value = inserts[i];
118
+ cDst.style = {};
119
+ // eslint-disable-next-line no-underscore-dangle
120
+ cDst._comment = undefined;
121
+ }
122
+ }
123
+
124
+ // Iterate over all non-null cells in this row
125
+ eachCell(options, iteratee) {
126
+ if (!iteratee) {
127
+ iteratee = options;
128
+ options = null;
129
+ }
130
+ if (options && options.includeEmpty) {
131
+ const n = this._cells.length;
132
+ for (let i = 1; i <= n; i++) {
133
+ iteratee(this.getCell(i), i);
134
+ }
135
+ } else {
136
+ this._cells.forEach((cell, index) => {
137
+ if (cell && cell.type !== Enums.ValueType.Null) {
138
+ iteratee(cell, index + 1);
139
+ }
140
+ });
141
+ }
142
+ }
143
+
144
+ // ===========================================================================
145
+ // Page Breaks
146
+ addPageBreak(lft, rght) {
147
+ const ws = this._worksheet;
148
+ const left = Math.max(0, lft - 1) || 0;
149
+ const right = Math.max(0, rght - 1) || 16838;
150
+ const pb = {
151
+ id: this._number,
152
+ max: right,
153
+ man: 1
154
+ };
155
+ if (left) pb.min = left;
156
+ ws.rowBreaks.push(pb);
157
+ }
158
+
159
+ // return a sparse array of cell values
160
+ get values() {
161
+ const values = [];
162
+ this._cells.forEach(cell => {
163
+ if (cell && cell.type !== Enums.ValueType.Null) {
164
+ values[cell.col] = cell.value;
165
+ }
166
+ });
167
+ return values;
168
+ }
169
+
170
+ // set the values by contiguous or sparse array, or by key'd object literal
171
+ set values(value) {
172
+ // this operation is not additive - any prior cells are removed
173
+ this._cells = [];
174
+ if (!value) {
175
+ // empty row
176
+ } else if (value instanceof Array) {
177
+ let offset = 0;
178
+ if (value.hasOwnProperty('0')) {
179
+ // contiguous array - start at column 1
180
+ offset = 1;
181
+ }
182
+ value.forEach((item, index) => {
183
+ if (item !== undefined) {
184
+ this.getCellEx({
185
+ address: colCache.encodeAddress(this._number, index + offset),
186
+ row: this._number,
187
+ col: index + offset
188
+ }).value = item;
189
+ }
190
+ });
191
+ } else {
192
+ // assume object with column keys
193
+ this._worksheet.eachColumnKey((column, key) => {
194
+ if (value[key] !== undefined) {
195
+ this.getCellEx({
196
+ address: colCache.encodeAddress(this._number, column.number),
197
+ row: this._number,
198
+ col: column.number
199
+ }).value = value[key];
200
+ }
201
+ });
202
+ }
203
+ }
204
+
205
+ // returns true if the row includes at least one cell with a value
206
+ get hasValues() {
207
+ return _.some(this._cells, cell => cell && cell.type !== Enums.ValueType.Null);
208
+ }
209
+ get cellCount() {
210
+ return this._cells.length;
211
+ }
212
+ get actualCellCount() {
213
+ let count = 0;
214
+ this.eachCell(() => {
215
+ count++;
216
+ });
217
+ return count;
218
+ }
219
+
220
+ // get the min and max column number for the non-null cells in this row or null
221
+ get dimensions() {
222
+ let min = 0;
223
+ let max = 0;
224
+ this._cells.forEach(cell => {
225
+ if (cell && cell.type !== Enums.ValueType.Null) {
226
+ if (!min || min > cell.col) {
227
+ min = cell.col;
228
+ }
229
+ if (max < cell.col) {
230
+ max = cell.col;
231
+ }
232
+ }
233
+ });
234
+ return min > 0 ? {
235
+ min,
236
+ max
237
+ } : null;
238
+ }
239
+
240
+ // =========================================================================
241
+ // styles
242
+ _applyStyle(name, value) {
243
+ this.style[name] = value;
244
+ this._cells.forEach(cell => {
245
+ if (cell) {
246
+ cell[name] = value;
247
+ }
248
+ });
249
+ return value;
250
+ }
251
+ get numFmt() {
252
+ return this.style.numFmt;
253
+ }
254
+ set numFmt(value) {
255
+ this._applyStyle('numFmt', value);
256
+ }
257
+ get font() {
258
+ return this.style.font;
259
+ }
260
+ set font(value) {
261
+ this._applyStyle('font', value);
262
+ }
263
+ get alignment() {
264
+ return this.style.alignment;
265
+ }
266
+ set alignment(value) {
267
+ this._applyStyle('alignment', value);
268
+ }
269
+ get protection() {
270
+ return this.style.protection;
271
+ }
272
+ set protection(value) {
273
+ this._applyStyle('protection', value);
274
+ }
275
+ get border() {
276
+ return this.style.border;
277
+ }
278
+ set border(value) {
279
+ this._applyStyle('border', value);
280
+ }
281
+ get fill() {
282
+ return this.style.fill;
283
+ }
284
+ set fill(value) {
285
+ this._applyStyle('fill', value);
286
+ }
287
+ get hidden() {
288
+ return !!this._hidden;
289
+ }
290
+ set hidden(value) {
291
+ this._hidden = value;
292
+ }
293
+ get outlineLevel() {
294
+ return this._outlineLevel || 0;
295
+ }
296
+ set outlineLevel(value) {
297
+ this._outlineLevel = value;
298
+ }
299
+ get collapsed() {
300
+ return !!(this._outlineLevel && this._outlineLevel >= this._worksheet.properties.outlineLevelRow);
301
+ }
302
+
303
+ // =========================================================================
304
+ get model() {
305
+ const cells = [];
306
+ let min = 0;
307
+ let max = 0;
308
+ this._cells.forEach(cell => {
309
+ if (cell) {
310
+ const cellModel = cell.model;
311
+ if (cellModel) {
312
+ if (!min || min > cell.col) {
313
+ min = cell.col;
314
+ }
315
+ if (max < cell.col) {
316
+ max = cell.col;
317
+ }
318
+ cells.push(cellModel);
319
+ }
320
+ }
321
+ });
322
+ return this.height || cells.length ? {
323
+ cells,
324
+ number: this.number,
325
+ min,
326
+ max,
327
+ height: this.height,
328
+ style: this.style,
329
+ hidden: this.hidden,
330
+ outlineLevel: this.outlineLevel,
331
+ collapsed: this.collapsed
332
+ } : null;
333
+ }
334
+ set model(value) {
335
+ if (value.number !== this._number) {
336
+ throw new Error('Invalid row number in model');
337
+ }
338
+ this._cells = [];
339
+ let previousAddress;
340
+ value.cells.forEach(cellModel => {
341
+ switch (cellModel.type) {
342
+ case Cell.Types.Merge:
343
+ // special case - don't add this types
344
+ break;
345
+ default:
346
+ {
347
+ let address;
348
+ if (cellModel.address) {
349
+ address = colCache.decodeAddress(cellModel.address);
350
+ } else if (previousAddress) {
351
+ // This is a <c> element without an r attribute
352
+ // Assume that it's the cell for the next column
353
+ const {
354
+ row
355
+ } = previousAddress;
356
+ const col = previousAddress.col + 1;
357
+ address = {
358
+ row,
359
+ col,
360
+ address: colCache.encodeAddress(row, col),
361
+ $col$row: `$${colCache.n2l(col)}$${row}`
362
+ };
363
+ }
364
+ previousAddress = address;
365
+ const cell = this.getCellEx(address);
366
+ cell.model = cellModel;
367
+ break;
368
+ }
369
+ }
370
+ });
371
+ if (value.height) {
372
+ this.height = value.height;
373
+ } else {
374
+ delete this.height;
375
+ }
376
+ this.hidden = value.hidden;
377
+ this.outlineLevel = value.outlineLevel || 0;
378
+ this.style = value.style && JSON.parse(JSON.stringify(value.style)) || {};
379
+ }
380
+ }
381
+ module.exports = Row;
382
+ //# sourceMappingURL=row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row.js","names":["_","require","Enums","colCache","Cell","Row","constructor","worksheet","number","_worksheet","_number","_cells","style","outlineLevel","commit","_commitRow","destroy","findCell","colNumber","getCellEx","address","cell","col","column","getColumn","getCell","getColumnKey","l2n","encodeAddress","row","splice","start","count","nKeep","_len","arguments","length","inserts","Array","_key","nExpand","nEnd","i","cSrc","cDst","value","_comment","undefined","eachCell","options","iteratee","includeEmpty","n","forEach","index","type","ValueType","Null","addPageBreak","lft","rght","ws","left","Math","max","right","pb","id","man","min","rowBreaks","push","values","offset","hasOwnProperty","item","eachColumnKey","key","hasValues","some","cellCount","actualCellCount","dimensions","_applyStyle","name","numFmt","font","alignment","protection","border","fill","hidden","_hidden","_outlineLevel","collapsed","properties","outlineLevelRow","model","cells","cellModel","height","Error","previousAddress","Types","Merge","decodeAddress","$col$row","n2l","JSON","parse","stringify","module","exports"],"sources":["../../../lib/doc/row.js"],"sourcesContent":["'use strict';\r\n\r\nconst _ = require('../utils/under-dash');\r\n\r\nconst Enums = require('./enums');\r\nconst colCache = require('../utils/col-cache');\r\nconst Cell = require('./cell');\r\n\r\nclass Row {\r\n constructor(worksheet, number) {\r\n this._worksheet = worksheet;\r\n this._number = number;\r\n this._cells = [];\r\n this.style = {};\r\n this.outlineLevel = 0;\r\n }\r\n\r\n // return the row number\r\n get number() {\r\n return this._number;\r\n }\r\n\r\n get worksheet() {\r\n return this._worksheet;\r\n }\r\n\r\n // Inform Streaming Writer that this row (and all rows before it) are complete\r\n // and ready to write. Has no effect on Worksheet document\r\n commit() {\r\n this._worksheet._commitRow(this); // eslint-disable-line no-underscore-dangle\r\n }\r\n\r\n // helps GC by breaking cyclic references\r\n destroy() {\r\n delete this._worksheet;\r\n delete this._cells;\r\n delete this.style;\r\n }\r\n\r\n findCell(colNumber) {\r\n return this._cells[colNumber - 1];\r\n }\r\n\r\n // given {address, row, col}, find or create new cell\r\n getCellEx(address) {\r\n let cell = this._cells[address.col - 1];\r\n if (!cell) {\r\n const column = this._worksheet.getColumn(address.col);\r\n cell = new Cell(this, column, address.address);\r\n this._cells[address.col - 1] = cell;\r\n }\r\n return cell;\r\n }\r\n\r\n // get cell by key, letter or column number\r\n getCell(col) {\r\n if (typeof col === 'string') {\r\n // is it a key?\r\n const column = this._worksheet.getColumnKey(col);\r\n if (column) {\r\n col = column.number;\r\n } else {\r\n col = colCache.l2n(col);\r\n }\r\n }\r\n return (\r\n this._cells[col - 1] ||\r\n this.getCellEx({\r\n address: colCache.encodeAddress(this._number, col),\r\n row: this._number,\r\n col,\r\n })\r\n );\r\n }\r\n\r\n // remove cell(s) and shift all higher cells down by count\r\n splice(start, count, ...inserts) {\r\n const nKeep = start + count;\r\n const nExpand = inserts.length - count;\r\n const nEnd = this._cells.length;\r\n let i;\r\n let cSrc;\r\n let cDst;\r\n\r\n if (nExpand < 0) {\r\n // remove cells\r\n for (i = start + inserts.length; i <= nEnd; i++) {\r\n cDst = this._cells[i - 1];\r\n cSrc = this._cells[i - nExpand - 1];\r\n if (cSrc) {\r\n cDst = this.getCell(i);\r\n cDst.value = cSrc.value;\r\n cDst.style = cSrc.style;\r\n // eslint-disable-next-line no-underscore-dangle\r\n cDst._comment = cSrc._comment;\r\n } else if (cDst) {\r\n cDst.value = null;\r\n cDst.style = {};\r\n // eslint-disable-next-line no-underscore-dangle\r\n cDst._comment = 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 cSrc = this._cells[i - 1];\r\n if (cSrc) {\r\n cDst = this.getCell(i + nExpand);\r\n cDst.value = cSrc.value;\r\n cDst.style = cSrc.style;\r\n // eslint-disable-next-line no-underscore-dangle\r\n cDst._comment = cSrc._comment;\r\n } else {\r\n this._cells[i + nExpand - 1] = undefined;\r\n }\r\n }\r\n }\r\n\r\n // now add the new values\r\n for (i = 0; i < inserts.length; i++) {\r\n cDst = this.getCell(start + i);\r\n cDst.value = inserts[i];\r\n cDst.style = {};\r\n // eslint-disable-next-line no-underscore-dangle\r\n cDst._comment = undefined;\r\n }\r\n }\r\n\r\n // Iterate over all non-null cells in this row\r\n eachCell(options, iteratee) {\r\n if (!iteratee) {\r\n iteratee = options;\r\n options = null;\r\n }\r\n if (options && options.includeEmpty) {\r\n const n = this._cells.length;\r\n for (let i = 1; i <= n; i++) {\r\n iteratee(this.getCell(i), i);\r\n }\r\n } else {\r\n this._cells.forEach((cell, index) => {\r\n if (cell && cell.type !== Enums.ValueType.Null) {\r\n iteratee(cell, index + 1);\r\n }\r\n });\r\n }\r\n }\r\n\r\n // ===========================================================================\r\n // Page Breaks\r\n addPageBreak(lft, rght) {\r\n const ws = this._worksheet;\r\n const left = Math.max(0, lft - 1) || 0;\r\n const right = Math.max(0, rght - 1) || 16838;\r\n const pb = {\r\n id: this._number,\r\n max: right,\r\n man: 1,\r\n };\r\n if (left) pb.min = left;\r\n\r\n ws.rowBreaks.push(pb);\r\n }\r\n\r\n // return a sparse array of cell values\r\n get values() {\r\n const values = [];\r\n this._cells.forEach(cell => {\r\n if (cell && cell.type !== Enums.ValueType.Null) {\r\n values[cell.col] = cell.value;\r\n }\r\n });\r\n return values;\r\n }\r\n\r\n // set the values by contiguous or sparse array, or by key'd object literal\r\n set values(value) {\r\n // this operation is not additive - any prior cells are removed\r\n this._cells = [];\r\n if (!value) {\r\n // empty row\r\n } else if (value instanceof Array) {\r\n let offset = 0;\r\n if (value.hasOwnProperty('0')) {\r\n // contiguous array - start at column 1\r\n offset = 1;\r\n }\r\n value.forEach((item, index) => {\r\n if (item !== undefined) {\r\n this.getCellEx({\r\n address: colCache.encodeAddress(this._number, index + offset),\r\n row: this._number,\r\n col: index + offset,\r\n }).value = item;\r\n }\r\n });\r\n } else {\r\n // assume object with column keys\r\n this._worksheet.eachColumnKey((column, key) => {\r\n if (value[key] !== undefined) {\r\n this.getCellEx({\r\n address: colCache.encodeAddress(this._number, column.number),\r\n row: this._number,\r\n col: column.number,\r\n }).value = value[key];\r\n }\r\n });\r\n }\r\n }\r\n\r\n // returns true if the row includes at least one cell with a value\r\n get hasValues() {\r\n return _.some(this._cells, cell => cell && cell.type !== Enums.ValueType.Null);\r\n }\r\n\r\n get cellCount() {\r\n return this._cells.length;\r\n }\r\n\r\n get actualCellCount() {\r\n let count = 0;\r\n this.eachCell(() => {\r\n count++;\r\n });\r\n return count;\r\n }\r\n\r\n // get the min and max column number for the non-null cells in this row or null\r\n get dimensions() {\r\n let min = 0;\r\n let max = 0;\r\n this._cells.forEach(cell => {\r\n if (cell && cell.type !== Enums.ValueType.Null) {\r\n if (!min || min > cell.col) {\r\n min = cell.col;\r\n }\r\n if (max < cell.col) {\r\n max = cell.col;\r\n }\r\n }\r\n });\r\n return min > 0\r\n ? {\r\n min,\r\n max,\r\n }\r\n : null;\r\n }\r\n\r\n // =========================================================================\r\n // styles\r\n _applyStyle(name, value) {\r\n this.style[name] = value;\r\n this._cells.forEach(cell => {\r\n if (cell) {\r\n cell[name] = value;\r\n }\r\n });\r\n return value;\r\n }\r\n\r\n get numFmt() {\r\n return this.style.numFmt;\r\n }\r\n\r\n set numFmt(value) {\r\n this._applyStyle('numFmt', value);\r\n }\r\n\r\n get font() {\r\n return this.style.font;\r\n }\r\n\r\n set font(value) {\r\n this._applyStyle('font', value);\r\n }\r\n\r\n get alignment() {\r\n return this.style.alignment;\r\n }\r\n\r\n set alignment(value) {\r\n this._applyStyle('alignment', value);\r\n }\r\n\r\n get protection() {\r\n return this.style.protection;\r\n }\r\n\r\n set protection(value) {\r\n this._applyStyle('protection', value);\r\n }\r\n\r\n get border() {\r\n return this.style.border;\r\n }\r\n\r\n set border(value) {\r\n this._applyStyle('border', value);\r\n }\r\n\r\n get fill() {\r\n return this.style.fill;\r\n }\r\n\r\n set fill(value) {\r\n this._applyStyle('fill', value);\r\n }\r\n\r\n get hidden() {\r\n return !!this._hidden;\r\n }\r\n\r\n set hidden(value) {\r\n this._hidden = value;\r\n }\r\n\r\n get outlineLevel() {\r\n return this._outlineLevel || 0;\r\n }\r\n\r\n set outlineLevel(value) {\r\n this._outlineLevel = value;\r\n }\r\n\r\n get collapsed() {\r\n return !!(\r\n this._outlineLevel && this._outlineLevel >= this._worksheet.properties.outlineLevelRow\r\n );\r\n }\r\n\r\n // =========================================================================\r\n get model() {\r\n const cells = [];\r\n let min = 0;\r\n let max = 0;\r\n this._cells.forEach(cell => {\r\n if (cell) {\r\n const cellModel = cell.model;\r\n if (cellModel) {\r\n if (!min || min > cell.col) {\r\n min = cell.col;\r\n }\r\n if (max < cell.col) {\r\n max = cell.col;\r\n }\r\n cells.push(cellModel);\r\n }\r\n }\r\n });\r\n\r\n return this.height || cells.length\r\n ? {\r\n cells,\r\n number: this.number,\r\n min,\r\n max,\r\n height: this.height,\r\n style: this.style,\r\n hidden: this.hidden,\r\n outlineLevel: this.outlineLevel,\r\n collapsed: this.collapsed,\r\n }\r\n : null;\r\n }\r\n\r\n set model(value) {\r\n if (value.number !== this._number) {\r\n throw new Error('Invalid row number in model');\r\n }\r\n this._cells = [];\r\n let previousAddress;\r\n value.cells.forEach(cellModel => {\r\n switch (cellModel.type) {\r\n case Cell.Types.Merge:\r\n // special case - don't add this types\r\n break;\r\n default: {\r\n let address;\r\n if (cellModel.address) {\r\n address = colCache.decodeAddress(cellModel.address);\r\n } else if (previousAddress) {\r\n // This is a <c> element without an r attribute\r\n // Assume that it's the cell for the next column\r\n const {row} = previousAddress;\r\n const col = previousAddress.col + 1;\r\n address = {\r\n row,\r\n col,\r\n address: colCache.encodeAddress(row, col),\r\n $col$row: `$${colCache.n2l(col)}$${row}`,\r\n };\r\n }\r\n previousAddress = address;\r\n const cell = this.getCellEx(address);\r\n cell.model = cellModel;\r\n break;\r\n }\r\n }\r\n });\r\n\r\n if (value.height) {\r\n this.height = value.height;\r\n } else {\r\n delete this.height;\r\n }\r\n\r\n this.hidden = value.hidden;\r\n this.outlineLevel = value.outlineLevel || 0;\r\n\r\n this.style = (value.style && JSON.parse(JSON.stringify(value.style))) || {};\r\n }\r\n}\r\n\r\nmodule.exports = Row;\r\n"],"mappings":"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","ignoreList":[]}