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