@alienkarma/exceljs 4.4.0-fork.11 → 4.4.0-fork.13

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 (536) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +3024 -3024
  3. package/README_zh.md +2878 -2878
  4. package/excel.js +13 -13
  5. package/index.d.ts +2040 -2040
  6. package/lib/csv/csv.js +191 -191
  7. package/lib/csv/line-buffer.js +74 -74
  8. package/lib/csv/stream-converter.js +135 -135
  9. package/lib/doc/anchor.js +91 -91
  10. package/lib/doc/cell.js +1124 -1124
  11. package/lib/doc/column.js +320 -320
  12. package/lib/doc/data/theme1.json +234 -234
  13. package/lib/doc/data-validations.js +19 -19
  14. package/lib/doc/defined-names.js +196 -196
  15. package/lib/doc/enums.js +48 -48
  16. package/lib/doc/image.js +59 -59
  17. package/lib/doc/modelcontainer.js +18 -18
  18. package/lib/doc/note.js +65 -65
  19. package/lib/doc/pivot-table.js +132 -132
  20. package/lib/doc/range.js +257 -257
  21. package/lib/doc/row.js +415 -415
  22. package/lib/doc/table.js +465 -465
  23. package/lib/doc/workbook.js +224 -224
  24. package/lib/doc/worksheet.js +949 -949
  25. package/lib/exceljs.bare.js +13 -13
  26. package/lib/exceljs.browser.js +36 -36
  27. package/lib/exceljs.nodejs.js +14 -14
  28. package/lib/stream/xlsx/hyperlink-reader.js +83 -83
  29. package/lib/stream/xlsx/sheet-comments-writer.js +121 -121
  30. package/lib/stream/xlsx/sheet-rels-writer.js +119 -119
  31. package/lib/stream/xlsx/workbook-reader.js +337 -337
  32. package/lib/stream/xlsx/workbook-writer.js +372 -367
  33. package/lib/stream/xlsx/worksheet-reader.js +374 -374
  34. package/lib/stream/xlsx/worksheet-writer.js +717 -717
  35. package/lib/utils/auto-drain.js +15 -15
  36. package/lib/utils/browser-buffer-decode.js +14 -14
  37. package/lib/utils/browser-buffer-encode.js +15 -15
  38. package/lib/utils/cell-matrix.js +165 -165
  39. package/lib/utils/col-cache.js +287 -287
  40. package/lib/utils/copy-style.js +43 -43
  41. package/lib/utils/encryptor.js +55 -55
  42. package/lib/utils/iterate-stream.js +48 -48
  43. package/lib/utils/parse-sax.js +30 -30
  44. package/lib/utils/shared-formula.js +44 -44
  45. package/lib/utils/shared-strings.js +35 -35
  46. package/lib/utils/stream-base64.js +72 -72
  47. package/lib/utils/stream-buf.js +364 -364
  48. package/lib/utils/string-buf.js +82 -82
  49. package/lib/utils/string-builder.js +35 -35
  50. package/lib/utils/stuttered-pipe.js +67 -67
  51. package/lib/utils/typed-stack.js +24 -24
  52. package/lib/utils/under-dash.js +184 -184
  53. package/lib/utils/utils.js +205 -205
  54. package/lib/utils/xml-stream.js +169 -169
  55. package/lib/utils/zip-stream.js +87 -87
  56. package/lib/xlsx/.rels +10 -10
  57. package/lib/xlsx/calcChain.xml +5 -5
  58. package/lib/xlsx/core.xml +6 -6
  59. package/lib/xlsx/defaultnumformats.js +153 -153
  60. package/lib/xlsx/rel-type.js +20 -20
  61. package/lib/xlsx/styles.xml +40 -40
  62. package/lib/xlsx/workbook.xml +16 -16
  63. package/lib/xlsx/xform/base-xform.js +145 -145
  64. package/lib/xlsx/xform/book/defined-name-xform.js +91 -91
  65. package/lib/xlsx/xform/book/sheet-xform.js +34 -34
  66. package/lib/xlsx/xform/book/workbook-calc-properties-xform.js +26 -26
  67. package/lib/xlsx/xform/book/workbook-pivot-cache-xform.js +29 -29
  68. package/lib/xlsx/xform/book/workbook-properties-xform.js +29 -29
  69. package/lib/xlsx/xform/book/workbook-view-xform.js +53 -53
  70. package/lib/xlsx/xform/book/workbook-xform.js +259 -259
  71. package/lib/xlsx/xform/comment/comment-xform.js +105 -105
  72. package/lib/xlsx/xform/comment/comments-xform.js +82 -82
  73. package/lib/xlsx/xform/comment/style/vml-position-xform.js +39 -39
  74. package/lib/xlsx/xform/comment/style/vml-protection-xform.js +36 -36
  75. package/lib/xlsx/xform/comment/vml-anchor-xform.js +60 -60
  76. package/lib/xlsx/xform/comment/vml-client-data-xform.js +95 -95
  77. package/lib/xlsx/xform/comment/vml-notes-xform.js +107 -107
  78. package/lib/xlsx/xform/comment/vml-shape-xform.js +95 -95
  79. package/lib/xlsx/xform/comment/vml-textbox-xform.js +64 -64
  80. package/lib/xlsx/xform/composite-xform.js +56 -56
  81. package/lib/xlsx/xform/core/app-heading-pairs-xform.js +32 -32
  82. package/lib/xlsx/xform/core/app-titles-of-parts-xform.js +28 -28
  83. package/lib/xlsx/xform/core/app-xform.js +100 -100
  84. package/lib/xlsx/xform/core/content-types-xform.js +135 -135
  85. package/lib/xlsx/xform/core/core-xform.js +136 -136
  86. package/lib/xlsx/xform/core/relationship-xform.js +25 -25
  87. package/lib/xlsx/xform/core/relationships-xform.js +73 -73
  88. package/lib/xlsx/xform/drawing/base-cell-anchor-xform.js +48 -48
  89. package/lib/xlsx/xform/drawing/blip-fill-xform.js +71 -71
  90. package/lib/xlsx/xform/drawing/blip-xform.js +42 -42
  91. package/lib/xlsx/xform/drawing/c-nv-pic-pr-xform.js +38 -38
  92. package/lib/xlsx/xform/drawing/c-nv-pr-xform.js +68 -68
  93. package/lib/xlsx/xform/drawing/cell-position-xform.js +77 -77
  94. package/lib/xlsx/xform/drawing/drawing-xform.js +109 -109
  95. package/lib/xlsx/xform/drawing/ext-lst-xform.js +43 -43
  96. package/lib/xlsx/xform/drawing/ext-xform.js +44 -44
  97. package/lib/xlsx/xform/drawing/hlink-click-xform.js +41 -41
  98. package/lib/xlsx/xform/drawing/nv-pic-pr-xform.js +65 -65
  99. package/lib/xlsx/xform/drawing/one-cell-anchor-xform.js +63 -63
  100. package/lib/xlsx/xform/drawing/pic-xform.js +77 -77
  101. package/lib/xlsx/xform/drawing/sp-pr.js +17 -17
  102. package/lib/xlsx/xform/drawing/two-cell-anchor-xform.js +62 -62
  103. package/lib/xlsx/xform/list-xform.js +95 -95
  104. package/lib/xlsx/xform/pivot-table/cache-field.js +43 -43
  105. package/lib/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +77 -77
  106. package/lib/xlsx/xform/pivot-table/pivot-cache-records-xform.js +103 -103
  107. package/lib/xlsx/xform/pivot-table/pivot-table-xform.js +189 -189
  108. package/lib/xlsx/xform/sheet/auto-filter-xform.js +38 -38
  109. package/lib/xlsx/xform/sheet/cell-xform.js +498 -498
  110. package/lib/xlsx/xform/sheet/cf/cf-rule-xform.js +301 -301
  111. package/lib/xlsx/xform/sheet/cf/cfvo-xform.js +27 -27
  112. package/lib/xlsx/xform/sheet/cf/color-scale-xform.js +45 -45
  113. package/lib/xlsx/xform/sheet/cf/conditional-formatting-xform.js +48 -48
  114. package/lib/xlsx/xform/sheet/cf/conditional-formattings-xform.js +92 -92
  115. package/lib/xlsx/xform/sheet/cf/databar-xform.js +49 -49
  116. package/lib/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +87 -87
  117. package/lib/xlsx/xform/sheet/cf/formula-xform.js +25 -25
  118. package/lib/xlsx/xform/sheet/cf/icon-set-xform.js +47 -47
  119. package/lib/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +27 -27
  120. package/lib/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +98 -98
  121. package/lib/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +43 -43
  122. package/lib/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +62 -62
  123. package/lib/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +50 -50
  124. package/lib/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +98 -98
  125. package/lib/xlsx/xform/sheet/cf-ext/f-ext-xform.js +25 -25
  126. package/lib/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +73 -73
  127. package/lib/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +25 -25
  128. package/lib/xlsx/xform/sheet/col-xform.js +86 -86
  129. package/lib/xlsx/xform/sheet/data-validations-xform.js +257 -257
  130. package/lib/xlsx/xform/sheet/dimension-xform.js +29 -29
  131. package/lib/xlsx/xform/sheet/drawing-xform.js +33 -33
  132. package/lib/xlsx/xform/sheet/ext-lst-xform.js +86 -86
  133. package/lib/xlsx/xform/sheet/header-footer-xform.js +146 -146
  134. package/lib/xlsx/xform/sheet/hyperlink-xform.js +54 -54
  135. package/lib/xlsx/xform/sheet/merge-cell-xform.js +27 -27
  136. package/lib/xlsx/xform/sheet/merges.js +56 -56
  137. package/lib/xlsx/xform/sheet/outline-properties-xform.js +43 -43
  138. package/lib/xlsx/xform/sheet/page-breaks-xform.js +27 -27
  139. package/lib/xlsx/xform/sheet/page-margins-xform.js +49 -49
  140. package/lib/xlsx/xform/sheet/page-setup-properties-xform.js +35 -35
  141. package/lib/xlsx/xform/sheet/page-setup-xform.js +103 -103
  142. package/lib/xlsx/xform/sheet/picture-xform.js +33 -33
  143. package/lib/xlsx/xform/sheet/print-options-xform.js +49 -49
  144. package/lib/xlsx/xform/sheet/row-breaks-xform.js +39 -39
  145. package/lib/xlsx/xform/sheet/row-xform.js +142 -142
  146. package/lib/xlsx/xform/sheet/sheet-format-properties-xform.js +55 -55
  147. package/lib/xlsx/xform/sheet/sheet-properties-xform.js +90 -90
  148. package/lib/xlsx/xform/sheet/sheet-protection-xform.js +89 -89
  149. package/lib/xlsx/xform/sheet/sheet-view-xform.js +202 -202
  150. package/lib/xlsx/xform/sheet/table-part-xform.js +33 -33
  151. package/lib/xlsx/xform/sheet/worksheet-xform.js +548 -548
  152. package/lib/xlsx/xform/simple/boolean-xform.js +31 -31
  153. package/lib/xlsx/xform/simple/date-xform.js +66 -66
  154. package/lib/xlsx/xform/simple/float-xform.js +51 -51
  155. package/lib/xlsx/xform/simple/integer-xform.js +57 -57
  156. package/lib/xlsx/xform/simple/string-xform.js +51 -51
  157. package/lib/xlsx/xform/static-xform.js +64 -64
  158. package/lib/xlsx/xform/strings/phonetic-text-xform.js +98 -98
  159. package/lib/xlsx/xform/strings/rich-text-xform.js +101 -101
  160. package/lib/xlsx/xform/strings/shared-string-xform.js +102 -102
  161. package/lib/xlsx/xform/strings/shared-strings-xform.js +127 -127
  162. package/lib/xlsx/xform/strings/text-xform.js +44 -44
  163. package/lib/xlsx/xform/style/alignment-xform.js +172 -172
  164. package/lib/xlsx/xform/style/border-xform.js +207 -207
  165. package/lib/xlsx/xform/style/color-xform.js +63 -63
  166. package/lib/xlsx/xform/style/dxf-xform.js +111 -111
  167. package/lib/xlsx/xform/style/fill-xform.js +364 -364
  168. package/lib/xlsx/xform/style/font-xform.js +102 -102
  169. package/lib/xlsx/xform/style/numfmt-xform.js +63 -63
  170. package/lib/xlsx/xform/style/protection-xform.js +60 -60
  171. package/lib/xlsx/xform/style/style-xform.js +125 -125
  172. package/lib/xlsx/xform/style/styles-xform.js +527 -527
  173. package/lib/xlsx/xform/style/underline-xform.js +47 -47
  174. package/lib/xlsx/xform/table/auto-filter-xform.js +81 -81
  175. package/lib/xlsx/xform/table/custom-filter-xform.js +33 -33
  176. package/lib/xlsx/xform/table/filter-column-xform.js +96 -96
  177. package/lib/xlsx/xform/table/filter-xform.js +31 -31
  178. package/lib/xlsx/xform/table/table-column-xform.js +44 -44
  179. package/lib/xlsx/xform/table/table-style-info-xform.js +41 -41
  180. package/lib/xlsx/xform/table/table-xform.js +131 -131
  181. package/lib/xlsx/xlsx.js +774 -774
  182. package/lib/xlsx/xml/theme1.js +3 -3
  183. package/lib/xlsx/xml/theme1.xml +317 -317
  184. package/package.json +1 -2
  185. package/dist/LICENSE +0 -22
  186. package/dist/es5/csv/csv.js +0 -182
  187. package/dist/es5/csv/csv.js.map +0 -1
  188. package/dist/es5/csv/line-buffer.js +0 -68
  189. package/dist/es5/csv/line-buffer.js.map +0 -1
  190. package/dist/es5/csv/stream-converter.js +0 -110
  191. package/dist/es5/csv/stream-converter.js.map +0 -1
  192. package/dist/es5/doc/anchor.js +0 -73
  193. package/dist/es5/doc/anchor.js.map +0 -1
  194. package/dist/es5/doc/cell.js +0 -960
  195. package/dist/es5/doc/cell.js.map +0 -1
  196. package/dist/es5/doc/column.js +0 -274
  197. package/dist/es5/doc/column.js.map +0 -1
  198. package/dist/es5/doc/data-validations.js +0 -18
  199. package/dist/es5/doc/data-validations.js.map +0 -1
  200. package/dist/es5/doc/defined-names.js +0 -173
  201. package/dist/es5/doc/defined-names.js.map +0 -1
  202. package/dist/es5/doc/enums.js +0 -49
  203. package/dist/es5/doc/enums.js.map +0 -1
  204. package/dist/es5/doc/image.js +0 -69
  205. package/dist/es5/doc/image.js.map +0 -1
  206. package/dist/es5/doc/modelcontainer.js +0 -16
  207. package/dist/es5/doc/modelcontainer.js.map +0 -1
  208. package/dist/es5/doc/note.js +0 -64
  209. package/dist/es5/doc/note.js.map +0 -1
  210. package/dist/es5/doc/pivot-table.js +0 -137
  211. package/dist/es5/doc/pivot-table.js.map +0 -1
  212. package/dist/es5/doc/range.js +0 -229
  213. package/dist/es5/doc/range.js.map +0 -1
  214. package/dist/es5/doc/row.js +0 -382
  215. package/dist/es5/doc/row.js.map +0 -1
  216. package/dist/es5/doc/table.js +0 -441
  217. package/dist/es5/doc/table.js.map +0 -1
  218. package/dist/es5/doc/workbook.js +0 -205
  219. package/dist/es5/doc/workbook.js.map +0 -1
  220. package/dist/es5/doc/worksheet.js +0 -918
  221. package/dist/es5/doc/worksheet.js.map +0 -1
  222. package/dist/es5/exceljs.bare.js +0 -14
  223. package/dist/es5/exceljs.bare.js.map +0 -1
  224. package/dist/es5/exceljs.browser.js +0 -36
  225. package/dist/es5/exceljs.browser.js.map +0 -1
  226. package/dist/es5/exceljs.nodejs.js +0 -15
  227. package/dist/es5/exceljs.nodejs.js.map +0 -1
  228. package/dist/es5/index.js +0 -15
  229. package/dist/es5/stream/xlsx/hyperlink-reader.js +0 -90
  230. package/dist/es5/stream/xlsx/hyperlink-reader.js.map +0 -1
  231. package/dist/es5/stream/xlsx/sheet-comments-writer.js +0 -94
  232. package/dist/es5/stream/xlsx/sheet-comments-writer.js.map +0 -1
  233. package/dist/es5/stream/xlsx/sheet-rels-writer.js +0 -94
  234. package/dist/es5/stream/xlsx/sheet-rels-writer.js.map +0 -1
  235. package/dist/es5/stream/xlsx/workbook-reader.js +0 -362
  236. package/dist/es5/stream/xlsx/workbook-reader.js.map +0 -1
  237. package/dist/es5/stream/xlsx/workbook-writer.js +0 -347
  238. package/dist/es5/stream/xlsx/workbook-writer.js.map +0 -1
  239. package/dist/es5/stream/xlsx/worksheet-reader.js +0 -392
  240. package/dist/es5/stream/xlsx/worksheet-reader.js.map +0 -1
  241. package/dist/es5/stream/xlsx/worksheet-writer.js +0 -652
  242. package/dist/es5/stream/xlsx/worksheet-writer.js.map +0 -1
  243. package/dist/es5/utils/auto-drain.js +0 -18
  244. package/dist/es5/utils/auto-drain.js.map +0 -1
  245. package/dist/es5/utils/browser-buffer-decode.js +0 -15
  246. package/dist/es5/utils/browser-buffer-decode.js.map +0 -1
  247. package/dist/es5/utils/browser-buffer-encode.js +0 -18
  248. package/dist/es5/utils/browser-buffer-encode.js.map +0 -1
  249. package/dist/es5/utils/cell-matrix.js +0 -149
  250. package/dist/es5/utils/cell-matrix.js.map +0 -1
  251. package/dist/es5/utils/col-cache.js +0 -258
  252. package/dist/es5/utils/col-cache.js.map +0 -1
  253. package/dist/es5/utils/copy-style.js +0 -43
  254. package/dist/es5/utils/copy-style.js.map +0 -1
  255. package/dist/es5/utils/encryptor.js +0 -58
  256. package/dist/es5/utils/encryptor.js.map +0 -1
  257. package/dist/es5/utils/iterate-stream.js +0 -46
  258. package/dist/es5/utils/iterate-stream.js.map +0 -1
  259. package/dist/es5/utils/parse-sax.js +0 -47
  260. package/dist/es5/utils/parse-sax.js.map +0 -1
  261. package/dist/es5/utils/shared-formula.js +0 -42
  262. package/dist/es5/utils/shared-formula.js.map +0 -1
  263. package/dist/es5/utils/shared-strings.js +0 -32
  264. package/dist/es5/utils/shared-strings.js.map +0 -1
  265. package/dist/es5/utils/stream-base64.js +0 -66
  266. package/dist/es5/utils/stream-base64.js.map +0 -1
  267. package/dist/es5/utils/stream-buf.js +0 -343
  268. package/dist/es5/utils/stream-buf.js.map +0 -1
  269. package/dist/es5/utils/string-buf.js +0 -73
  270. package/dist/es5/utils/string-buf.js.map +0 -1
  271. package/dist/es5/utils/string-builder.js +0 -32
  272. package/dist/es5/utils/string-builder.js.map +0 -1
  273. package/dist/es5/utils/stuttered-pipe.js +0 -61
  274. package/dist/es5/utils/stuttered-pipe.js.map +0 -1
  275. package/dist/es5/utils/typed-stack.js +0 -23
  276. package/dist/es5/utils/typed-stack.js.map +0 -1
  277. package/dist/es5/utils/under-dash.js +0 -168
  278. package/dist/es5/utils/under-dash.js.map +0 -1
  279. package/dist/es5/utils/utils.js +0 -204
  280. package/dist/es5/utils/utils.js.map +0 -1
  281. package/dist/es5/utils/xml-stream.js +0 -151
  282. package/dist/es5/utils/xml-stream.js.map +0 -1
  283. package/dist/es5/utils/zip-stream.js +0 -79
  284. package/dist/es5/utils/zip-stream.js.map +0 -1
  285. package/dist/es5/xlsx/defaultnumformats.js +0 -230
  286. package/dist/es5/xlsx/defaultnumformats.js.map +0 -1
  287. package/dist/es5/xlsx/rel-type.js +0 -21
  288. package/dist/es5/xlsx/rel-type.js.map +0 -1
  289. package/dist/es5/xlsx/xform/base-xform.js +0 -139
  290. package/dist/es5/xlsx/xform/base-xform.js.map +0 -1
  291. package/dist/es5/xlsx/xform/book/defined-name-xform.js +0 -85
  292. package/dist/es5/xlsx/xform/book/defined-name-xform.js.map +0 -1
  293. package/dist/es5/xlsx/xform/book/sheet-xform.js +0 -32
  294. package/dist/es5/xlsx/xform/book/sheet-xform.js.map +0 -1
  295. package/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js +0 -24
  296. package/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js.map +0 -1
  297. package/dist/es5/xlsx/xform/book/workbook-pivot-cache-xform.js +0 -27
  298. package/dist/es5/xlsx/xform/book/workbook-pivot-cache-xform.js.map +0 -1
  299. package/dist/es5/xlsx/xform/book/workbook-properties-xform.js +0 -27
  300. package/dist/es5/xlsx/xform/book/workbook-properties-xform.js.map +0 -1
  301. package/dist/es5/xlsx/xform/book/workbook-view-xform.js +0 -51
  302. package/dist/es5/xlsx/xform/book/workbook-view-xform.js.map +0 -1
  303. package/dist/es5/xlsx/xform/book/workbook-xform.js +0 -241
  304. package/dist/es5/xlsx/xform/book/workbook-xform.js.map +0 -1
  305. package/dist/es5/xlsx/xform/comment/comment-xform.js +0 -103
  306. package/dist/es5/xlsx/xform/comment/comment-xform.js.map +0 -1
  307. package/dist/es5/xlsx/xform/comment/comments-xform.js +0 -76
  308. package/dist/es5/xlsx/xform/comment/comments-xform.js.map +0 -1
  309. package/dist/es5/xlsx/xform/comment/style/vml-position-xform.js +0 -35
  310. package/dist/es5/xlsx/xform/comment/style/vml-position-xform.js.map +0 -1
  311. package/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js +0 -32
  312. package/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js.map +0 -1
  313. package/dist/es5/xlsx/xform/comment/vml-anchor-xform.js +0 -53
  314. package/dist/es5/xlsx/xform/comment/vml-anchor-xform.js.map +0 -1
  315. package/dist/es5/xlsx/xform/comment/vml-client-data-xform.js +0 -97
  316. package/dist/es5/xlsx/xform/comment/vml-client-data-xform.js.map +0 -1
  317. package/dist/es5/xlsx/xform/comment/vml-notes-xform.js +0 -107
  318. package/dist/es5/xlsx/xform/comment/vml-notes-xform.js.map +0 -1
  319. package/dist/es5/xlsx/xform/comment/vml-shape-xform.js +0 -92
  320. package/dist/es5/xlsx/xform/comment/vml-shape-xform.js.map +0 -1
  321. package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js +0 -61
  322. package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js.map +0 -1
  323. package/dist/es5/xlsx/xform/composite-xform.js +0 -51
  324. package/dist/es5/xlsx/xform/composite-xform.js.map +0 -1
  325. package/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js +0 -30
  326. package/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js.map +0 -1
  327. package/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js +0 -27
  328. package/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js.map +0 -1
  329. package/dist/es5/xlsx/xform/core/app-xform.js +0 -93
  330. package/dist/es5/xlsx/xform/core/app-xform.js.map +0 -1
  331. package/dist/es5/xlsx/xform/core/content-types-xform.js +0 -127
  332. package/dist/es5/xlsx/xform/core/content-types-xform.js.map +0 -1
  333. package/dist/es5/xlsx/xform/core/core-xform.js +0 -158
  334. package/dist/es5/xlsx/xform/core/core-xform.js.map +0 -1
  335. package/dist/es5/xlsx/xform/core/relationship-xform.js +0 -23
  336. package/dist/es5/xlsx/xform/core/relationship-xform.js.map +0 -1
  337. package/dist/es5/xlsx/xform/core/relationships-xform.js +0 -65
  338. package/dist/es5/xlsx/xform/core/relationships-xform.js.map +0 -1
  339. package/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js +0 -47
  340. package/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js.map +0 -1
  341. package/dist/es5/xlsx/xform/drawing/blip-fill-xform.js +0 -61
  342. package/dist/es5/xlsx/xform/drawing/blip-fill-xform.js.map +0 -1
  343. package/dist/es5/xlsx/xform/drawing/blip-xform.js +0 -39
  344. package/dist/es5/xlsx/xform/drawing/blip-xform.js.map +0 -1
  345. package/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js +0 -35
  346. package/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js.map +0 -1
  347. package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js +0 -62
  348. package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js.map +0 -1
  349. package/dist/es5/xlsx/xform/drawing/cell-position-xform.js +0 -82
  350. package/dist/es5/xlsx/xform/drawing/cell-position-xform.js.map +0 -1
  351. package/dist/es5/xlsx/xform/drawing/drawing-xform.js +0 -98
  352. package/dist/es5/xlsx/xform/drawing/drawing-xform.js.map +0 -1
  353. package/dist/es5/xlsx/xform/drawing/ext-lst-xform.js +0 -40
  354. package/dist/es5/xlsx/xform/drawing/ext-lst-xform.js.map +0 -1
  355. package/dist/es5/xlsx/xform/drawing/ext-xform.js +0 -38
  356. package/dist/es5/xlsx/xform/drawing/ext-xform.js.map +0 -1
  357. package/dist/es5/xlsx/xform/drawing/hlink-click-xform.js +0 -38
  358. package/dist/es5/xlsx/xform/drawing/hlink-click-xform.js.map +0 -1
  359. package/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js +0 -59
  360. package/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js.map +0 -1
  361. package/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js +0 -63
  362. package/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js.map +0 -1
  363. package/dist/es5/xlsx/xform/drawing/pic-xform.js +0 -67
  364. package/dist/es5/xlsx/xform/drawing/pic-xform.js.map +0 -1
  365. package/dist/es5/xlsx/xform/drawing/sp-pr.js +0 -30
  366. package/dist/es5/xlsx/xform/drawing/sp-pr.js.map +0 -1
  367. package/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js +0 -62
  368. package/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js.map +0 -1
  369. package/dist/es5/xlsx/xform/list-xform.js +0 -91
  370. package/dist/es5/xlsx/xform/list-xform.js.map +0 -1
  371. package/dist/es5/xlsx/xform/pivot-table/cache-field.js +0 -48
  372. package/dist/es5/xlsx/xform/pivot-table/cache-field.js.map +0 -1
  373. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +0 -73
  374. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js.map +0 -1
  375. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js +0 -93
  376. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js.map +0 -1
  377. package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js +0 -176
  378. package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js.map +0 -1
  379. package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js +0 -40
  380. package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js.map +0 -1
  381. package/dist/es5/xlsx/xform/sheet/cell-xform.js +0 -450
  382. package/dist/es5/xlsx/xform/sheet/cell-xform.js.map +0 -1
  383. package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js +0 -275
  384. package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js.map +0 -1
  385. package/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js +0 -25
  386. package/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js.map +0 -1
  387. package/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js +0 -38
  388. package/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js.map +0 -1
  389. package/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js +0 -45
  390. package/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js.map +0 -1
  391. package/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js +0 -77
  392. package/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js.map +0 -1
  393. package/dist/es5/xlsx/xform/sheet/cf/databar-xform.js +0 -42
  394. package/dist/es5/xlsx/xform/sheet/cf/databar-xform.js.map +0 -1
  395. package/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +0 -71
  396. package/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js.map +0 -1
  397. package/dist/es5/xlsx/xform/sheet/cf/formula-xform.js +0 -22
  398. package/dist/es5/xlsx/xform/sheet/cf/formula-xform.js.map +0 -1
  399. package/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js +0 -43
  400. package/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js.map +0 -1
  401. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +0 -28
  402. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js.map +0 -1
  403. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +0 -88
  404. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js.map +0 -1
  405. package/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +0 -38
  406. package/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js.map +0 -1
  407. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +0 -52
  408. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js.map +0 -1
  409. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +0 -43
  410. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js.map +0 -1
  411. package/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +0 -75
  412. package/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js.map +0 -1
  413. package/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js +0 -22
  414. package/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js.map +0 -1
  415. package/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +0 -66
  416. package/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js.map +0 -1
  417. package/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +0 -22
  418. package/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js.map +0 -1
  419. package/dist/es5/xlsx/xform/sheet/col-xform.js +0 -78
  420. package/dist/es5/xlsx/xform/sheet/col-xform.js.map +0 -1
  421. package/dist/es5/xlsx/xform/sheet/data-validations-xform.js +0 -247
  422. package/dist/es5/xlsx/xform/sheet/data-validations-xform.js.map +0 -1
  423. package/dist/es5/xlsx/xform/sheet/dimension-xform.js +0 -28
  424. package/dist/es5/xlsx/xform/sheet/dimension-xform.js.map +0 -1
  425. package/dist/es5/xlsx/xform/sheet/drawing-xform.js +0 -32
  426. package/dist/es5/xlsx/xform/sheet/drawing-xform.js.map +0 -1
  427. package/dist/es5/xlsx/xform/sheet/ext-lst-xform.js +0 -69
  428. package/dist/es5/xlsx/xform/sheet/ext-lst-xform.js.map +0 -1
  429. package/dist/es5/xlsx/xform/sheet/header-footer-xform.js +0 -126
  430. package/dist/es5/xlsx/xform/sheet/header-footer-xform.js.map +0 -1
  431. package/dist/es5/xlsx/xform/sheet/hyperlink-xform.js +0 -50
  432. package/dist/es5/xlsx/xform/sheet/hyperlink-xform.js.map +0 -1
  433. package/dist/es5/xlsx/xform/sheet/merge-cell-xform.js +0 -26
  434. package/dist/es5/xlsx/xform/sheet/merge-cell-xform.js.map +0 -1
  435. package/dist/es5/xlsx/xform/sheet/merges.js +0 -52
  436. package/dist/es5/xlsx/xform/sheet/merges.js.map +0 -1
  437. package/dist/es5/xlsx/xform/sheet/outline-properties-xform.js +0 -35
  438. package/dist/es5/xlsx/xform/sheet/outline-properties-xform.js.map +0 -1
  439. package/dist/es5/xlsx/xform/sheet/page-breaks-xform.js +0 -24
  440. package/dist/es5/xlsx/xform/sheet/page-breaks-xform.js.map +0 -1
  441. package/dist/es5/xlsx/xform/sheet/page-margins-xform.js +0 -46
  442. package/dist/es5/xlsx/xform/sheet/page-margins-xform.js.map +0 -1
  443. package/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js +0 -32
  444. package/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js.map +0 -1
  445. package/dist/es5/xlsx/xform/sheet/page-setup-xform.js +0 -99
  446. package/dist/es5/xlsx/xform/sheet/page-setup-xform.js.map +0 -1
  447. package/dist/es5/xlsx/xform/sheet/picture-xform.js +0 -32
  448. package/dist/es5/xlsx/xform/sheet/picture-xform.js.map +0 -1
  449. package/dist/es5/xlsx/xform/sheet/print-options-xform.js +0 -45
  450. package/dist/es5/xlsx/xform/sheet/print-options-xform.js.map +0 -1
  451. package/dist/es5/xlsx/xform/sheet/row-breaks-xform.js +0 -37
  452. package/dist/es5/xlsx/xform/sheet/row-breaks-xform.js.map +0 -1
  453. package/dist/es5/xlsx/xform/sheet/row-xform.js +0 -128
  454. package/dist/es5/xlsx/xform/sheet/row-xform.js.map +0 -1
  455. package/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js +0 -51
  456. package/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js.map +0 -1
  457. package/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js +0 -83
  458. package/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js.map +0 -1
  459. package/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js +0 -84
  460. package/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js.map +0 -1
  461. package/dist/es5/xlsx/xform/sheet/sheet-view-xform.js +0 -190
  462. package/dist/es5/xlsx/xform/sheet/sheet-view-xform.js.map +0 -1
  463. package/dist/es5/xlsx/xform/sheet/table-part-xform.js +0 -32
  464. package/dist/es5/xlsx/xform/sheet/table-part-xform.js.map +0 -1
  465. package/dist/es5/xlsx/xform/sheet/worksheet-xform.js +0 -522
  466. package/dist/es5/xlsx/xform/sheet/worksheet-xform.js.map +0 -1
  467. package/dist/es5/xlsx/xform/simple/boolean-xform.js +0 -27
  468. package/dist/es5/xlsx/xform/simple/boolean-xform.js.map +0 -1
  469. package/dist/es5/xlsx/xform/simple/date-xform.js +0 -58
  470. package/dist/es5/xlsx/xform/simple/date-xform.js.map +0 -1
  471. package/dist/es5/xlsx/xform/simple/float-xform.js +0 -47
  472. package/dist/es5/xlsx/xform/simple/float-xform.js.map +0 -1
  473. package/dist/es5/xlsx/xform/simple/integer-xform.js +0 -53
  474. package/dist/es5/xlsx/xform/simple/integer-xform.js.map +0 -1
  475. package/dist/es5/xlsx/xform/simple/string-xform.js +0 -47
  476. package/dist/es5/xlsx/xform/simple/string-xform.js.map +0 -1
  477. package/dist/es5/xlsx/xform/static-xform.js +0 -61
  478. package/dist/es5/xlsx/xform/static-xform.js.map +0 -1
  479. package/dist/es5/xlsx/xform/strings/phonetic-text-xform.js +0 -98
  480. package/dist/es5/xlsx/xform/strings/phonetic-text-xform.js.map +0 -1
  481. package/dist/es5/xlsx/xform/strings/rich-text-xform.js +0 -92
  482. package/dist/es5/xlsx/xform/strings/rich-text-xform.js.map +0 -1
  483. package/dist/es5/xlsx/xform/strings/shared-string-xform.js +0 -99
  484. package/dist/es5/xlsx/xform/strings/shared-string-xform.js.map +0 -1
  485. package/dist/es5/xlsx/xform/strings/shared-strings-xform.js +0 -114
  486. package/dist/es5/xlsx/xform/strings/shared-strings-xform.js.map +0 -1
  487. package/dist/es5/xlsx/xform/strings/text-xform.js +0 -39
  488. package/dist/es5/xlsx/xform/strings/text-xform.js.map +0 -1
  489. package/dist/es5/xlsx/xform/style/alignment-xform.js +0 -139
  490. package/dist/es5/xlsx/xform/style/alignment-xform.js.map +0 -1
  491. package/dist/es5/xlsx/xform/style/border-xform.js +0 -185
  492. package/dist/es5/xlsx/xform/style/border-xform.js.map +0 -1
  493. package/dist/es5/xlsx/xform/style/color-xform.js +0 -66
  494. package/dist/es5/xlsx/xform/style/color-xform.js.map +0 -1
  495. package/dist/es5/xlsx/xform/style/dxf-xform.js +0 -106
  496. package/dist/es5/xlsx/xform/style/dxf-xform.js.map +0 -1
  497. package/dist/es5/xlsx/xform/style/fill-xform.js +0 -307
  498. package/dist/es5/xlsx/xform/style/fill-xform.js.map +0 -1
  499. package/dist/es5/xlsx/xform/style/font-xform.js +0 -175
  500. package/dist/es5/xlsx/xform/style/font-xform.js.map +0 -1
  501. package/dist/es5/xlsx/xform/style/numfmt-xform.js +0 -58
  502. package/dist/es5/xlsx/xform/style/numfmt-xform.js.map +0 -1
  503. package/dist/es5/xlsx/xform/style/protection-xform.js +0 -53
  504. package/dist/es5/xlsx/xform/style/protection-xform.js.map +0 -1
  505. package/dist/es5/xlsx/xform/style/style-xform.js +0 -118
  506. package/dist/es5/xlsx/xform/style/style-xform.js.map +0 -1
  507. package/dist/es5/xlsx/xform/style/styles-xform.js +0 -611
  508. package/dist/es5/xlsx/xform/style/styles-xform.js.map +0 -1
  509. package/dist/es5/xlsx/xform/style/underline-xform.js +0 -46
  510. package/dist/es5/xlsx/xform/style/underline-xform.js.map +0 -1
  511. package/dist/es5/xlsx/xform/table/auto-filter-xform.js +0 -75
  512. package/dist/es5/xlsx/xform/table/auto-filter-xform.js.map +0 -1
  513. package/dist/es5/xlsx/xform/table/custom-filter-xform.js +0 -30
  514. package/dist/es5/xlsx/xform/table/custom-filter-xform.js.map +0 -1
  515. package/dist/es5/xlsx/xform/table/filter-column-xform.js +0 -89
  516. package/dist/es5/xlsx/xform/table/filter-column-xform.js.map +0 -1
  517. package/dist/es5/xlsx/xform/table/filter-xform.js +0 -28
  518. package/dist/es5/xlsx/xform/table/filter-xform.js.map +0 -1
  519. package/dist/es5/xlsx/xform/table/table-column-xform.js +0 -42
  520. package/dist/es5/xlsx/xform/table/table-column-xform.js.map +0 -1
  521. package/dist/es5/xlsx/xform/table/table-style-info-xform.js +0 -40
  522. package/dist/es5/xlsx/xform/table/table-style-info-xform.js.map +0 -1
  523. package/dist/es5/xlsx/xform/table/table-xform.js +0 -122
  524. package/dist/es5/xlsx/xform/table/table-xform.js.map +0 -1
  525. package/dist/es5/xlsx/xlsx.js +0 -775
  526. package/dist/es5/xlsx/xlsx.js.map +0 -1
  527. package/dist/es5/xlsx/xml/theme1.js +0 -5
  528. package/dist/es5/xlsx/xml/theme1.js.map +0 -1
  529. package/dist/exceljs.bare.js +0 -57759
  530. package/dist/exceljs.bare.js.map +0 -777
  531. package/dist/exceljs.bare.min.js +0 -45
  532. package/dist/exceljs.bare.min.js.map +0 -1
  533. package/dist/exceljs.js +0 -62398
  534. package/dist/exceljs.js.map +0 -1095
  535. package/dist/exceljs.min.js +0 -45
  536. package/dist/exceljs.min.js.map +0 -1
package/lib/doc/row.js CHANGED
@@ -1,415 +1,415 @@
1
- 'use strict';
2
-
3
- const _ = require('../utils/under-dash');
4
-
5
- const Enums = require('./enums');
6
- const colCache = require('../utils/col-cache');
7
- const Cell = require('./cell');
8
-
9
- class Row {
10
- constructor(worksheet, number) {
11
- this._worksheet = worksheet;
12
- this._number = number;
13
- this._cells = [];
14
- this.style = {};
15
- this.outlineLevel = 0;
16
- }
17
-
18
- // return the row number
19
- get number() {
20
- return this._number;
21
- }
22
-
23
- get worksheet() {
24
- return this._worksheet;
25
- }
26
-
27
- // Inform Streaming Writer that this row (and all rows before it) are complete
28
- // and ready to write. Has no effect on Worksheet document
29
- commit() {
30
- this._worksheet._commitRow(this); // eslint-disable-line no-underscore-dangle
31
- }
32
-
33
- // helps GC by breaking cyclic references
34
- destroy() {
35
- delete this._worksheet;
36
- delete this._cells;
37
- delete this.style;
38
- }
39
-
40
- findCell(colNumber) {
41
- return this._cells[colNumber - 1];
42
- }
43
-
44
- // given {address, row, col}, find or create new cell
45
- getCellEx(address) {
46
- let cell = this._cells[address.col - 1];
47
- if (!cell) {
48
- const column = this._worksheet.getColumn(address.col);
49
- cell = new Cell(this, column, address.address);
50
- this._cells[address.col - 1] = cell;
51
- }
52
- return cell;
53
- }
54
-
55
- // get cell by key, letter or column number
56
- getCell(col) {
57
- if (typeof col === 'string') {
58
- // is it a key?
59
- const column = this._worksheet.getColumnKey(col);
60
- if (column) {
61
- col = column.number;
62
- } else {
63
- col = colCache.l2n(col);
64
- }
65
- }
66
- return (
67
- this._cells[col - 1] ||
68
- this.getCellEx({
69
- address: colCache.encodeAddress(this._number, col),
70
- row: this._number,
71
- col,
72
- })
73
- );
74
- }
75
-
76
- // remove cell(s) and shift all higher cells down by count
77
- splice(start, count, ...inserts) {
78
- const nKeep = start + count;
79
- const nExpand = inserts.length - count;
80
- const nEnd = this._cells.length;
81
- let i;
82
- let cSrc;
83
- let cDst;
84
-
85
- if (nExpand < 0) {
86
- // remove cells
87
- for (i = start + inserts.length; i <= nEnd; i++) {
88
- cDst = this._cells[i - 1];
89
- cSrc = this._cells[i - nExpand - 1];
90
- if (cSrc) {
91
- cDst = this.getCell(i);
92
- cDst.value = cSrc.value;
93
- cDst.style = cSrc.style;
94
- // eslint-disable-next-line no-underscore-dangle
95
- cDst._comment = cSrc._comment;
96
- } else if (cDst) {
97
- cDst.value = null;
98
- cDst.style = {};
99
- // eslint-disable-next-line no-underscore-dangle
100
- cDst._comment = undefined;
101
- }
102
- }
103
- } else if (nExpand > 0) {
104
- // insert new cells
105
- for (i = nEnd; i >= nKeep; i--) {
106
- cSrc = this._cells[i - 1];
107
- if (cSrc) {
108
- cDst = this.getCell(i + nExpand);
109
- cDst.value = cSrc.value;
110
- cDst.style = cSrc.style;
111
- // eslint-disable-next-line no-underscore-dangle
112
- cDst._comment = cSrc._comment;
113
- } else {
114
- this._cells[i + nExpand - 1] = undefined;
115
- }
116
- }
117
- }
118
-
119
- // now add the new values
120
- for (i = 0; i < inserts.length; i++) {
121
- cDst = this.getCell(start + i);
122
- cDst.value = inserts[i];
123
- cDst.style = {};
124
- // eslint-disable-next-line no-underscore-dangle
125
- cDst._comment = undefined;
126
- }
127
- }
128
-
129
- // Iterate over all non-null cells in this row
130
- eachCell(options, iteratee) {
131
- if (!iteratee) {
132
- iteratee = options;
133
- options = null;
134
- }
135
- if (options && options.includeEmpty) {
136
- const n = this._cells.length;
137
- for (let i = 1; i <= n; i++) {
138
- iteratee(this.getCell(i), i);
139
- }
140
- } else {
141
- this._cells.forEach((cell, index) => {
142
- if (cell && cell.type !== Enums.ValueType.Null) {
143
- iteratee(cell, index + 1);
144
- }
145
- });
146
- }
147
- }
148
-
149
- // ===========================================================================
150
- // Page Breaks
151
- addPageBreak(lft, rght) {
152
- const ws = this._worksheet;
153
- const left = Math.max(0, lft - 1) || 0;
154
- const right = Math.max(0, rght - 1) || 16838;
155
- const pb = {
156
- id: this._number,
157
- max: right,
158
- man: 1,
159
- };
160
- if (left) pb.min = left;
161
-
162
- ws.rowBreaks.push(pb);
163
- }
164
-
165
- // return a sparse array of cell values
166
- get values() {
167
- const values = [];
168
- this._cells.forEach(cell => {
169
- if (cell && cell.type !== Enums.ValueType.Null) {
170
- values[cell.col] = cell.value;
171
- }
172
- });
173
- return values;
174
- }
175
-
176
- // set the values by contiguous or sparse array, or by key'd object literal
177
- set values(value) {
178
- // this operation is not additive - any prior cells are removed
179
- this._cells = [];
180
- if (!value) {
181
- // empty row
182
- } else if (value instanceof Array) {
183
- let offset = 0;
184
- if (value.hasOwnProperty('0')) {
185
- // contiguous array - start at column 1
186
- offset = 1;
187
- }
188
- value.forEach((item, index) => {
189
- if (item !== undefined) {
190
- this.getCellEx({
191
- address: colCache.encodeAddress(this._number, index + offset),
192
- row: this._number,
193
- col: index + offset,
194
- }).value = item;
195
- }
196
- });
197
- } else {
198
- // assume object with column keys
199
- this._worksheet.eachColumnKey((column, key) => {
200
- if (value[key] !== undefined) {
201
- this.getCellEx({
202
- address: colCache.encodeAddress(this._number, column.number),
203
- row: this._number,
204
- col: column.number,
205
- }).value = value[key];
206
- }
207
- });
208
- }
209
- }
210
-
211
- // returns true if the row includes at least one cell with a value
212
- get hasValues() {
213
- return _.some(this._cells, cell => cell && cell.type !== Enums.ValueType.Null);
214
- }
215
-
216
- get cellCount() {
217
- return this._cells.length;
218
- }
219
-
220
- get actualCellCount() {
221
- let count = 0;
222
- this.eachCell(() => {
223
- count++;
224
- });
225
- return count;
226
- }
227
-
228
- // get the min and max column number for the non-null cells in this row or null
229
- get dimensions() {
230
- let min = 0;
231
- let max = 0;
232
- this._cells.forEach(cell => {
233
- if (cell && cell.type !== Enums.ValueType.Null) {
234
- if (!min || min > cell.col) {
235
- min = cell.col;
236
- }
237
- if (max < cell.col) {
238
- max = cell.col;
239
- }
240
- }
241
- });
242
- return min > 0
243
- ? {
244
- min,
245
- max,
246
- }
247
- : null;
248
- }
249
-
250
- // =========================================================================
251
- // styles
252
- _applyStyle(name, value) {
253
- this.style[name] = value;
254
- this._cells.forEach(cell => {
255
- if (cell) {
256
- cell[name] = value;
257
- }
258
- });
259
- return value;
260
- }
261
-
262
- get numFmt() {
263
- return this.style.numFmt;
264
- }
265
-
266
- set numFmt(value) {
267
- this._applyStyle('numFmt', value);
268
- }
269
-
270
- get font() {
271
- return this.style.font;
272
- }
273
-
274
- set font(value) {
275
- this._applyStyle('font', value);
276
- }
277
-
278
- get alignment() {
279
- return this.style.alignment;
280
- }
281
-
282
- set alignment(value) {
283
- this._applyStyle('alignment', value);
284
- }
285
-
286
- get protection() {
287
- return this.style.protection;
288
- }
289
-
290
- set protection(value) {
291
- this._applyStyle('protection', value);
292
- }
293
-
294
- get border() {
295
- return this.style.border;
296
- }
297
-
298
- set border(value) {
299
- this._applyStyle('border', value);
300
- }
301
-
302
- get fill() {
303
- return this.style.fill;
304
- }
305
-
306
- set fill(value) {
307
- this._applyStyle('fill', value);
308
- }
309
-
310
- get hidden() {
311
- return !!this._hidden;
312
- }
313
-
314
- set hidden(value) {
315
- this._hidden = value;
316
- }
317
-
318
- get outlineLevel() {
319
- return this._outlineLevel || 0;
320
- }
321
-
322
- set outlineLevel(value) {
323
- this._outlineLevel = value;
324
- }
325
-
326
- get collapsed() {
327
- return !!(
328
- this._outlineLevel && this._outlineLevel >= this._worksheet.properties.outlineLevelRow
329
- );
330
- }
331
-
332
- // =========================================================================
333
- get model() {
334
- const cells = [];
335
- let min = 0;
336
- let max = 0;
337
- this._cells.forEach(cell => {
338
- if (cell) {
339
- const cellModel = cell.model;
340
- if (cellModel) {
341
- if (!min || min > cell.col) {
342
- min = cell.col;
343
- }
344
- if (max < cell.col) {
345
- max = cell.col;
346
- }
347
- cells.push(cellModel);
348
- }
349
- }
350
- });
351
-
352
- return this.height || cells.length
353
- ? {
354
- cells,
355
- number: this.number,
356
- min,
357
- max,
358
- height: this.height,
359
- style: this.style,
360
- hidden: this.hidden,
361
- outlineLevel: this.outlineLevel,
362
- collapsed: this.collapsed,
363
- }
364
- : null;
365
- }
366
-
367
- set model(value) {
368
- if (value.number !== this._number) {
369
- throw new Error('Invalid row number in model');
370
- }
371
- this._cells = [];
372
- let previousAddress;
373
- value.cells.forEach(cellModel => {
374
- switch (cellModel.type) {
375
- case Cell.Types.Merge:
376
- // special case - don't add this types
377
- break;
378
- default: {
379
- let address;
380
- if (cellModel.address) {
381
- address = colCache.decodeAddress(cellModel.address);
382
- } else if (previousAddress) {
383
- // This is a <c> element without an r attribute
384
- // Assume that it's the cell for the next column
385
- const {row} = previousAddress;
386
- const col = previousAddress.col + 1;
387
- address = {
388
- row,
389
- col,
390
- address: colCache.encodeAddress(row, col),
391
- $col$row: `$${colCache.n2l(col)}$${row}`,
392
- };
393
- }
394
- previousAddress = address;
395
- const cell = this.getCellEx(address);
396
- cell.model = cellModel;
397
- break;
398
- }
399
- }
400
- });
401
-
402
- if (value.height) {
403
- this.height = value.height;
404
- } else {
405
- delete this.height;
406
- }
407
-
408
- this.hidden = value.hidden;
409
- this.outlineLevel = value.outlineLevel || 0;
410
-
411
- this.style = (value.style && JSON.parse(JSON.stringify(value.style))) || {};
412
- }
413
- }
414
-
415
- module.exports = Row;
1
+ 'use strict';
2
+
3
+ const _ = require('../utils/under-dash');
4
+
5
+ const Enums = require('./enums');
6
+ const colCache = require('../utils/col-cache');
7
+ const Cell = require('./cell');
8
+
9
+ class Row {
10
+ constructor(worksheet, number) {
11
+ this._worksheet = worksheet;
12
+ this._number = number;
13
+ this._cells = [];
14
+ this.style = {};
15
+ this.outlineLevel = 0;
16
+ }
17
+
18
+ // return the row number
19
+ get number() {
20
+ return this._number;
21
+ }
22
+
23
+ get worksheet() {
24
+ return this._worksheet;
25
+ }
26
+
27
+ // Inform Streaming Writer that this row (and all rows before it) are complete
28
+ // and ready to write. Has no effect on Worksheet document
29
+ commit() {
30
+ this._worksheet._commitRow(this); // eslint-disable-line no-underscore-dangle
31
+ }
32
+
33
+ // helps GC by breaking cyclic references
34
+ destroy() {
35
+ delete this._worksheet;
36
+ delete this._cells;
37
+ delete this.style;
38
+ }
39
+
40
+ findCell(colNumber) {
41
+ return this._cells[colNumber - 1];
42
+ }
43
+
44
+ // given {address, row, col}, find or create new cell
45
+ getCellEx(address) {
46
+ let cell = this._cells[address.col - 1];
47
+ if (!cell) {
48
+ const column = this._worksheet.getColumn(address.col);
49
+ cell = new Cell(this, column, address.address);
50
+ this._cells[address.col - 1] = cell;
51
+ }
52
+ return cell;
53
+ }
54
+
55
+ // get cell by key, letter or column number
56
+ getCell(col) {
57
+ if (typeof col === 'string') {
58
+ // is it a key?
59
+ const column = this._worksheet.getColumnKey(col);
60
+ if (column) {
61
+ col = column.number;
62
+ } else {
63
+ col = colCache.l2n(col);
64
+ }
65
+ }
66
+ return (
67
+ this._cells[col - 1] ||
68
+ this.getCellEx({
69
+ address: colCache.encodeAddress(this._number, col),
70
+ row: this._number,
71
+ col,
72
+ })
73
+ );
74
+ }
75
+
76
+ // remove cell(s) and shift all higher cells down by count
77
+ splice(start, count, ...inserts) {
78
+ const nKeep = start + count;
79
+ const nExpand = inserts.length - count;
80
+ const nEnd = this._cells.length;
81
+ let i;
82
+ let cSrc;
83
+ let cDst;
84
+
85
+ if (nExpand < 0) {
86
+ // remove cells
87
+ for (i = start + inserts.length; i <= nEnd; i++) {
88
+ cDst = this._cells[i - 1];
89
+ cSrc = this._cells[i - nExpand - 1];
90
+ if (cSrc) {
91
+ cDst = this.getCell(i);
92
+ cDst.value = cSrc.value;
93
+ cDst.style = cSrc.style;
94
+ // eslint-disable-next-line no-underscore-dangle
95
+ cDst._comment = cSrc._comment;
96
+ } else if (cDst) {
97
+ cDst.value = null;
98
+ cDst.style = {};
99
+ // eslint-disable-next-line no-underscore-dangle
100
+ cDst._comment = undefined;
101
+ }
102
+ }
103
+ } else if (nExpand > 0) {
104
+ // insert new cells
105
+ for (i = nEnd; i >= nKeep; i--) {
106
+ cSrc = this._cells[i - 1];
107
+ if (cSrc) {
108
+ cDst = this.getCell(i + nExpand);
109
+ cDst.value = cSrc.value;
110
+ cDst.style = cSrc.style;
111
+ // eslint-disable-next-line no-underscore-dangle
112
+ cDst._comment = cSrc._comment;
113
+ } else {
114
+ this._cells[i + nExpand - 1] = undefined;
115
+ }
116
+ }
117
+ }
118
+
119
+ // now add the new values
120
+ for (i = 0; i < inserts.length; i++) {
121
+ cDst = this.getCell(start + i);
122
+ cDst.value = inserts[i];
123
+ cDst.style = {};
124
+ // eslint-disable-next-line no-underscore-dangle
125
+ cDst._comment = undefined;
126
+ }
127
+ }
128
+
129
+ // Iterate over all non-null cells in this row
130
+ eachCell(options, iteratee) {
131
+ if (!iteratee) {
132
+ iteratee = options;
133
+ options = null;
134
+ }
135
+ if (options && options.includeEmpty) {
136
+ const n = this._cells.length;
137
+ for (let i = 1; i <= n; i++) {
138
+ iteratee(this.getCell(i), i);
139
+ }
140
+ } else {
141
+ this._cells.forEach((cell, index) => {
142
+ if (cell && cell.type !== Enums.ValueType.Null) {
143
+ iteratee(cell, index + 1);
144
+ }
145
+ });
146
+ }
147
+ }
148
+
149
+ // ===========================================================================
150
+ // Page Breaks
151
+ addPageBreak(lft, rght) {
152
+ const ws = this._worksheet;
153
+ const left = Math.max(0, lft - 1) || 0;
154
+ const right = Math.max(0, rght - 1) || 16838;
155
+ const pb = {
156
+ id: this._number,
157
+ max: right,
158
+ man: 1,
159
+ };
160
+ if (left) pb.min = left;
161
+
162
+ ws.rowBreaks.push(pb);
163
+ }
164
+
165
+ // return a sparse array of cell values
166
+ get values() {
167
+ const values = [];
168
+ this._cells.forEach(cell => {
169
+ if (cell && cell.type !== Enums.ValueType.Null) {
170
+ values[cell.col] = cell.value;
171
+ }
172
+ });
173
+ return values;
174
+ }
175
+
176
+ // set the values by contiguous or sparse array, or by key'd object literal
177
+ set values(value) {
178
+ // this operation is not additive - any prior cells are removed
179
+ this._cells = [];
180
+ if (!value) {
181
+ // empty row
182
+ } else if (value instanceof Array) {
183
+ let offset = 0;
184
+ if (value.hasOwnProperty('0')) {
185
+ // contiguous array - start at column 1
186
+ offset = 1;
187
+ }
188
+ value.forEach((item, index) => {
189
+ if (item !== undefined) {
190
+ this.getCellEx({
191
+ address: colCache.encodeAddress(this._number, index + offset),
192
+ row: this._number,
193
+ col: index + offset,
194
+ }).value = item;
195
+ }
196
+ });
197
+ } else {
198
+ // assume object with column keys
199
+ this._worksheet.eachColumnKey((column, key) => {
200
+ if (value[key] !== undefined) {
201
+ this.getCellEx({
202
+ address: colCache.encodeAddress(this._number, column.number),
203
+ row: this._number,
204
+ col: column.number,
205
+ }).value = value[key];
206
+ }
207
+ });
208
+ }
209
+ }
210
+
211
+ // returns true if the row includes at least one cell with a value
212
+ get hasValues() {
213
+ return _.some(this._cells, cell => cell && cell.type !== Enums.ValueType.Null);
214
+ }
215
+
216
+ get cellCount() {
217
+ return this._cells.length;
218
+ }
219
+
220
+ get actualCellCount() {
221
+ let count = 0;
222
+ this.eachCell(() => {
223
+ count++;
224
+ });
225
+ return count;
226
+ }
227
+
228
+ // get the min and max column number for the non-null cells in this row or null
229
+ get dimensions() {
230
+ let min = 0;
231
+ let max = 0;
232
+ this._cells.forEach(cell => {
233
+ if (cell && cell.type !== Enums.ValueType.Null) {
234
+ if (!min || min > cell.col) {
235
+ min = cell.col;
236
+ }
237
+ if (max < cell.col) {
238
+ max = cell.col;
239
+ }
240
+ }
241
+ });
242
+ return min > 0
243
+ ? {
244
+ min,
245
+ max,
246
+ }
247
+ : null;
248
+ }
249
+
250
+ // =========================================================================
251
+ // styles
252
+ _applyStyle(name, value) {
253
+ this.style[name] = value;
254
+ this._cells.forEach(cell => {
255
+ if (cell) {
256
+ cell[name] = value;
257
+ }
258
+ });
259
+ return value;
260
+ }
261
+
262
+ get numFmt() {
263
+ return this.style.numFmt;
264
+ }
265
+
266
+ set numFmt(value) {
267
+ this._applyStyle('numFmt', value);
268
+ }
269
+
270
+ get font() {
271
+ return this.style.font;
272
+ }
273
+
274
+ set font(value) {
275
+ this._applyStyle('font', value);
276
+ }
277
+
278
+ get alignment() {
279
+ return this.style.alignment;
280
+ }
281
+
282
+ set alignment(value) {
283
+ this._applyStyle('alignment', value);
284
+ }
285
+
286
+ get protection() {
287
+ return this.style.protection;
288
+ }
289
+
290
+ set protection(value) {
291
+ this._applyStyle('protection', value);
292
+ }
293
+
294
+ get border() {
295
+ return this.style.border;
296
+ }
297
+
298
+ set border(value) {
299
+ this._applyStyle('border', value);
300
+ }
301
+
302
+ get fill() {
303
+ return this.style.fill;
304
+ }
305
+
306
+ set fill(value) {
307
+ this._applyStyle('fill', value);
308
+ }
309
+
310
+ get hidden() {
311
+ return !!this._hidden;
312
+ }
313
+
314
+ set hidden(value) {
315
+ this._hidden = value;
316
+ }
317
+
318
+ get outlineLevel() {
319
+ return this._outlineLevel || 0;
320
+ }
321
+
322
+ set outlineLevel(value) {
323
+ this._outlineLevel = value;
324
+ }
325
+
326
+ get collapsed() {
327
+ return !!(
328
+ this._outlineLevel && this._outlineLevel >= this._worksheet.properties.outlineLevelRow
329
+ );
330
+ }
331
+
332
+ // =========================================================================
333
+ get model() {
334
+ const cells = [];
335
+ let min = 0;
336
+ let max = 0;
337
+ this._cells.forEach(cell => {
338
+ if (cell) {
339
+ const cellModel = cell.model;
340
+ if (cellModel) {
341
+ if (!min || min > cell.col) {
342
+ min = cell.col;
343
+ }
344
+ if (max < cell.col) {
345
+ max = cell.col;
346
+ }
347
+ cells.push(cellModel);
348
+ }
349
+ }
350
+ });
351
+
352
+ return this.height || cells.length
353
+ ? {
354
+ cells,
355
+ number: this.number,
356
+ min,
357
+ max,
358
+ height: this.height,
359
+ style: this.style,
360
+ hidden: this.hidden,
361
+ outlineLevel: this.outlineLevel,
362
+ collapsed: this.collapsed,
363
+ }
364
+ : null;
365
+ }
366
+
367
+ set model(value) {
368
+ if (value.number !== this._number) {
369
+ throw new Error('Invalid row number in model');
370
+ }
371
+ this._cells = [];
372
+ let previousAddress;
373
+ value.cells.forEach(cellModel => {
374
+ switch (cellModel.type) {
375
+ case Cell.Types.Merge:
376
+ // special case - don't add this types
377
+ break;
378
+ default: {
379
+ let address;
380
+ if (cellModel.address) {
381
+ address = colCache.decodeAddress(cellModel.address);
382
+ } else if (previousAddress) {
383
+ // This is a <c> element without an r attribute
384
+ // Assume that it's the cell for the next column
385
+ const {row} = previousAddress;
386
+ const col = previousAddress.col + 1;
387
+ address = {
388
+ row,
389
+ col,
390
+ address: colCache.encodeAddress(row, col),
391
+ $col$row: `$${colCache.n2l(col)}$${row}`,
392
+ };
393
+ }
394
+ previousAddress = address;
395
+ const cell = this.getCellEx(address);
396
+ cell.model = cellModel;
397
+ break;
398
+ }
399
+ }
400
+ });
401
+
402
+ if (value.height) {
403
+ this.height = value.height;
404
+ } else {
405
+ delete this.height;
406
+ }
407
+
408
+ this.hidden = value.hidden;
409
+ this.outlineLevel = value.outlineLevel || 0;
410
+
411
+ this.style = (value.style && JSON.parse(JSON.stringify(value.style))) || {};
412
+ }
413
+ }
414
+
415
+ module.exports = Row;