@cj-tech-master/excelts 4.0.0 → 4.0.1-canary.20260104072032.0453bbe

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 (633) hide show
  1. package/README.md +2 -2
  2. package/README_zh.md +2 -2
  3. package/dist/browser/index.browser.d.ts +25 -0
  4. package/dist/browser/index.browser.js +40 -0
  5. package/dist/browser/index.d.ts +23 -0
  6. package/dist/browser/index.js +35 -0
  7. package/dist/browser/modules/archive/byte-queue.d.ts +18 -0
  8. package/dist/browser/modules/archive/byte-queue.js +125 -0
  9. package/dist/browser/modules/archive/compress.base.d.ts +98 -0
  10. package/dist/browser/modules/archive/compress.base.js +173 -0
  11. package/dist/browser/modules/archive/compress.browser.d.ts +57 -0
  12. package/dist/browser/modules/archive/compress.browser.js +93 -0
  13. package/dist/browser/modules/archive/compress.d.ts +44 -0
  14. package/dist/browser/modules/archive/compress.js +86 -0
  15. package/dist/browser/modules/archive/crc32.base.d.ts +25 -0
  16. package/dist/browser/modules/archive/crc32.base.js +51 -0
  17. package/dist/browser/modules/archive/crc32.browser.d.ts +30 -0
  18. package/dist/browser/modules/archive/crc32.browser.js +32 -0
  19. package/dist/browser/modules/archive/crc32.d.ts +59 -0
  20. package/dist/browser/modules/archive/crc32.js +97 -0
  21. package/dist/browser/modules/archive/defaults.d.ts +4 -0
  22. package/dist/browser/modules/archive/defaults.js +3 -0
  23. package/dist/browser/modules/archive/deflate-fallback.d.ts +39 -0
  24. package/dist/browser/modules/archive/deflate-fallback.js +564 -0
  25. package/dist/browser/modules/archive/extract.d.ts +94 -0
  26. package/dist/browser/modules/archive/extract.js +106 -0
  27. package/dist/browser/modules/archive/index.base.d.ts +11 -0
  28. package/dist/browser/modules/archive/index.base.js +13 -0
  29. package/dist/browser/modules/archive/index.browser.d.ts +11 -0
  30. package/dist/browser/modules/archive/index.browser.js +17 -0
  31. package/dist/browser/modules/archive/index.d.ts +11 -0
  32. package/dist/browser/modules/archive/index.js +15 -0
  33. package/dist/browser/modules/archive/parse.base.d.ts +198 -0
  34. package/dist/browser/modules/archive/parse.base.js +610 -0
  35. package/dist/browser/modules/archive/parse.browser.d.ts +22 -0
  36. package/dist/browser/modules/archive/parse.browser.js +564 -0
  37. package/dist/browser/modules/archive/parse.d.ts +16 -0
  38. package/dist/browser/modules/archive/parse.js +94 -0
  39. package/dist/browser/modules/archive/streaming-compress.base.d.ts +36 -0
  40. package/dist/browser/modules/archive/streaming-compress.base.js +9 -0
  41. package/dist/browser/modules/archive/streaming-compress.browser.d.ts +26 -0
  42. package/dist/browser/modules/archive/streaming-compress.browser.js +296 -0
  43. package/dist/browser/modules/archive/streaming-compress.d.ts +22 -0
  44. package/dist/browser/modules/archive/streaming-compress.js +68 -0
  45. package/dist/browser/modules/archive/streaming-zip.d.ts +120 -0
  46. package/dist/browser/modules/archive/streaming-zip.js +407 -0
  47. package/dist/browser/modules/archive/utils/binary.d.ts +24 -0
  48. package/dist/browser/modules/archive/utils/binary.js +69 -0
  49. package/dist/browser/modules/archive/utils/bytes.d.ts +7 -0
  50. package/dist/browser/modules/archive/utils/bytes.js +101 -0
  51. package/dist/browser/modules/archive/utils/parse-buffer.d.ts +18 -0
  52. package/dist/browser/modules/archive/utils/parse-buffer.js +55 -0
  53. package/dist/browser/modules/archive/utils/text.d.ts +20 -0
  54. package/dist/browser/modules/archive/utils/text.js +33 -0
  55. package/dist/browser/modules/archive/utils/timestamps.d.ts +28 -0
  56. package/dist/browser/modules/archive/utils/timestamps.js +48 -0
  57. package/dist/browser/modules/archive/utils/zip-extra-fields.d.ts +19 -0
  58. package/dist/browser/modules/archive/utils/zip-extra-fields.js +72 -0
  59. package/dist/browser/modules/archive/utils/zip-extra.d.ts +18 -0
  60. package/dist/browser/modules/archive/utils/zip-extra.js +68 -0
  61. package/dist/browser/modules/archive/zip-builder.d.ts +117 -0
  62. package/dist/browser/modules/archive/zip-builder.js +292 -0
  63. package/dist/browser/modules/archive/zip-constants.d.ts +18 -0
  64. package/dist/browser/modules/archive/zip-constants.js +23 -0
  65. package/dist/browser/modules/archive/zip-entry-info.d.ts +29 -0
  66. package/dist/browser/modules/archive/zip-entry-info.js +6 -0
  67. package/dist/browser/modules/archive/zip-entry-metadata.d.ts +23 -0
  68. package/dist/browser/modules/archive/zip-entry-metadata.js +24 -0
  69. package/dist/browser/modules/archive/zip-parser.d.ts +62 -0
  70. package/dist/browser/modules/archive/zip-parser.js +332 -0
  71. package/dist/browser/modules/archive/zip-records.d.ts +43 -0
  72. package/dist/browser/modules/archive/zip-records.js +84 -0
  73. package/dist/browser/modules/csv/csv-core.d.ts +215 -0
  74. package/dist/browser/modules/csv/csv-core.js +723 -0
  75. package/dist/browser/modules/csv/csv-number.d.ts +3 -0
  76. package/dist/browser/modules/csv/csv-number.js +20 -0
  77. package/dist/browser/modules/csv/csv-stream.d.ts +121 -0
  78. package/dist/browser/modules/csv/csv-stream.js +703 -0
  79. package/dist/browser/modules/csv/csv.browser.d.ts +60 -0
  80. package/dist/browser/modules/csv/csv.browser.js +265 -0
  81. package/dist/browser/modules/csv/csv.d.ts +14 -0
  82. package/dist/browser/modules/csv/csv.js +29 -0
  83. package/dist/browser/modules/excel/anchor.d.ts +33 -0
  84. package/dist/browser/modules/excel/anchor.js +97 -0
  85. package/dist/browser/modules/excel/cell.d.ts +138 -0
  86. package/dist/browser/modules/excel/cell.js +946 -0
  87. package/dist/browser/modules/excel/column.d.ts +122 -0
  88. package/dist/browser/modules/excel/column.js +358 -0
  89. package/dist/browser/modules/excel/data-validations.d.ts +11 -0
  90. package/dist/browser/modules/excel/data-validations.js +43 -0
  91. package/dist/browser/modules/excel/defined-names.d.ts +37 -0
  92. package/dist/browser/modules/excel/defined-names.js +214 -0
  93. package/dist/browser/modules/excel/enums.d.ts +62 -0
  94. package/dist/browser/modules/excel/enums.js +58 -0
  95. package/dist/browser/modules/excel/image.d.ts +64 -0
  96. package/dist/browser/modules/excel/image.js +60 -0
  97. package/dist/browser/modules/excel/note.d.ts +29 -0
  98. package/dist/browser/modules/excel/note.js +61 -0
  99. package/dist/browser/modules/excel/pivot-table.d.ts +152 -0
  100. package/dist/browser/modules/excel/pivot-table.js +237 -0
  101. package/dist/browser/modules/excel/range.d.ts +62 -0
  102. package/dist/browser/modules/excel/range.js +280 -0
  103. package/dist/browser/modules/excel/row.d.ts +127 -0
  104. package/dist/browser/modules/excel/row.js +441 -0
  105. package/dist/browser/modules/excel/stream/hyperlink-reader.d.ts +33 -0
  106. package/dist/browser/modules/excel/stream/hyperlink-reader.js +84 -0
  107. package/dist/browser/modules/excel/stream/sheet-comments-writer.d.ts +26 -0
  108. package/dist/browser/modules/excel/stream/sheet-comments-writer.js +101 -0
  109. package/dist/browser/modules/excel/stream/sheet-rels-writer.d.ts +45 -0
  110. package/dist/browser/modules/excel/stream/sheet-rels-writer.js +91 -0
  111. package/dist/browser/modules/excel/stream/workbook-reader.browser.d.ts +169 -0
  112. package/dist/browser/modules/excel/stream/workbook-reader.browser.js +443 -0
  113. package/dist/browser/modules/excel/stream/workbook-reader.d.ts +24 -0
  114. package/dist/browser/modules/excel/stream/workbook-reader.js +50 -0
  115. package/dist/browser/modules/excel/stream/workbook-writer.browser.d.ts +147 -0
  116. package/dist/browser/modules/excel/stream/workbook-writer.browser.js +356 -0
  117. package/dist/browser/modules/excel/stream/workbook-writer.d.ts +31 -0
  118. package/dist/browser/modules/excel/stream/workbook-writer.js +52 -0
  119. package/dist/browser/modules/excel/stream/worksheet-reader.d.ts +61 -0
  120. package/dist/browser/modules/excel/stream/worksheet-reader.js +367 -0
  121. package/dist/browser/modules/excel/stream/worksheet-writer.d.ts +140 -0
  122. package/dist/browser/modules/excel/stream/worksheet-writer.js +613 -0
  123. package/dist/browser/modules/excel/table.d.ts +81 -0
  124. package/dist/browser/modules/excel/table.js +412 -0
  125. package/dist/browser/modules/excel/types.d.ts +518 -0
  126. package/dist/browser/modules/excel/types.js +22 -0
  127. package/dist/browser/modules/excel/utils/cell-format.d.ts +32 -0
  128. package/dist/browser/modules/excel/utils/cell-format.js +814 -0
  129. package/dist/browser/modules/excel/utils/cell-matrix.d.ts +37 -0
  130. package/dist/browser/modules/excel/utils/cell-matrix.js +180 -0
  131. package/dist/browser/modules/excel/utils/col-cache.d.ts +36 -0
  132. package/dist/browser/modules/excel/utils/col-cache.js +278 -0
  133. package/dist/browser/modules/excel/utils/copy-style.d.ts +5 -0
  134. package/dist/browser/modules/excel/utils/copy-style.js +43 -0
  135. package/dist/browser/modules/excel/utils/encryptor.browser.d.ts +19 -0
  136. package/dist/browser/modules/excel/utils/encryptor.browser.js +46 -0
  137. package/dist/browser/modules/excel/utils/encryptor.d.ts +9 -0
  138. package/dist/browser/modules/excel/utils/encryptor.js +35 -0
  139. package/dist/browser/modules/excel/utils/iterate-stream.d.ts +14 -0
  140. package/dist/browser/modules/excel/utils/iterate-stream.js +55 -0
  141. package/dist/browser/modules/excel/utils/ooxml-paths.d.ts +64 -0
  142. package/dist/browser/modules/excel/utils/ooxml-paths.js +209 -0
  143. package/dist/browser/modules/excel/utils/parse-sax.d.ts +113 -0
  144. package/dist/browser/modules/excel/utils/parse-sax.js +1206 -0
  145. package/dist/browser/modules/excel/utils/shared-formula.d.ts +2 -0
  146. package/dist/browser/modules/excel/utils/shared-formula.js +36 -0
  147. package/dist/browser/modules/excel/utils/shared-strings.d.ts +12 -0
  148. package/dist/browser/modules/excel/utils/shared-strings.js +29 -0
  149. package/dist/browser/modules/excel/utils/sheet-utils.d.ts +190 -0
  150. package/dist/browser/modules/excel/utils/sheet-utils.js +674 -0
  151. package/dist/browser/modules/excel/utils/stream-buf.d.ts +126 -0
  152. package/dist/browser/modules/excel/utils/stream-buf.js +452 -0
  153. package/dist/browser/modules/excel/utils/string-buf.d.ts +29 -0
  154. package/dist/browser/modules/excel/utils/string-buf.js +75 -0
  155. package/dist/browser/modules/excel/utils/under-dash.d.ts +7 -0
  156. package/dist/browser/modules/excel/utils/under-dash.js +166 -0
  157. package/dist/browser/modules/excel/utils/xml-stream.d.ts +34 -0
  158. package/dist/browser/modules/excel/utils/xml-stream.js +179 -0
  159. package/dist/browser/modules/excel/workbook.d.ts +195 -0
  160. package/dist/browser/modules/excel/workbook.js +314 -0
  161. package/dist/browser/modules/excel/worksheet.d.ts +333 -0
  162. package/dist/browser/modules/excel/worksheet.js +924 -0
  163. package/dist/browser/modules/excel/xlsx/defaultnumformats.d.ts +12 -0
  164. package/dist/browser/modules/excel/xlsx/defaultnumformats.js +149 -0
  165. package/dist/browser/modules/excel/xlsx/rel-type.d.ts +19 -0
  166. package/dist/browser/modules/excel/xlsx/rel-type.js +19 -0
  167. package/dist/browser/modules/excel/xlsx/xform/base-xform.d.ts +33 -0
  168. package/dist/browser/modules/excel/xlsx/xform/base-xform.js +135 -0
  169. package/dist/browser/modules/excel/xlsx/xform/book/defined-name-xform.d.ts +17 -0
  170. package/dist/browser/modules/excel/xlsx/xform/book/defined-name-xform.js +124 -0
  171. package/dist/browser/modules/excel/xlsx/xform/book/sheet-xform.d.ts +14 -0
  172. package/dist/browser/modules/excel/xlsx/xform/book/sheet-xform.js +30 -0
  173. package/dist/browser/modules/excel/xlsx/xform/book/workbook-calc-properties-xform.d.ts +11 -0
  174. package/dist/browser/modules/excel/xlsx/xform/book/workbook-calc-properties-xform.js +21 -0
  175. package/dist/browser/modules/excel/xlsx/xform/book/workbook-pivot-cache-xform.d.ts +12 -0
  176. package/dist/browser/modules/excel/xlsx/xform/book/workbook-pivot-cache-xform.js +24 -0
  177. package/dist/browser/modules/excel/xlsx/xform/book/workbook-properties-xform.d.ts +11 -0
  178. package/dist/browser/modules/excel/xlsx/xform/book/workbook-properties-xform.js +24 -0
  179. package/dist/browser/modules/excel/xlsx/xform/book/workbook-view-xform.d.ts +17 -0
  180. package/dist/browser/modules/excel/xlsx/xform/book/workbook-view-xform.js +46 -0
  181. package/dist/browser/modules/excel/xlsx/xform/book/workbook-xform.d.ts +23 -0
  182. package/dist/browser/modules/excel/xlsx/xform/book/workbook-xform.js +234 -0
  183. package/dist/browser/modules/excel/xlsx/xform/comment/comment-xform.d.ts +28 -0
  184. package/dist/browser/modules/excel/xlsx/xform/comment/comment-xform.js +76 -0
  185. package/dist/browser/modules/excel/xlsx/xform/comment/comments-xform.d.ts +21 -0
  186. package/dist/browser/modules/excel/xlsx/xform/comment/comments-xform.js +72 -0
  187. package/dist/browser/modules/excel/xlsx/xform/comment/style/vml-position-xform.d.ts +16 -0
  188. package/dist/browser/modules/excel/xlsx/xform/comment/style/vml-position-xform.js +34 -0
  189. package/dist/browser/modules/excel/xlsx/xform/comment/style/vml-protection-xform.d.ts +14 -0
  190. package/dist/browser/modules/excel/xlsx/xform/comment/style/vml-protection-xform.js +30 -0
  191. package/dist/browser/modules/excel/xlsx/xform/comment/vml-anchor-xform.d.ts +27 -0
  192. package/dist/browser/modules/excel/xlsx/xform/comment/vml-anchor-xform.js +55 -0
  193. package/dist/browser/modules/excel/xlsx/xform/comment/vml-client-data-xform.d.ts +35 -0
  194. package/dist/browser/modules/excel/xlsx/xform/comment/vml-client-data-xform.js +82 -0
  195. package/dist/browser/modules/excel/xlsx/xform/comment/vml-notes-xform.d.ts +24 -0
  196. package/dist/browser/modules/excel/xlsx/xform/comment/vml-notes-xform.js +96 -0
  197. package/dist/browser/modules/excel/xlsx/xform/comment/vml-shape-xform.d.ts +25 -0
  198. package/dist/browser/modules/excel/xlsx/xform/comment/vml-shape-xform.js +83 -0
  199. package/dist/browser/modules/excel/xlsx/xform/comment/vml-textbox-xform.d.ts +23 -0
  200. package/dist/browser/modules/excel/xlsx/xform/comment/vml-textbox-xform.js +60 -0
  201. package/dist/browser/modules/excel/xlsx/xform/composite-xform.d.ts +11 -0
  202. package/dist/browser/modules/excel/xlsx/xform/composite-xform.js +48 -0
  203. package/dist/browser/modules/excel/xlsx/xform/core/app-heading-pairs-xform.d.ts +8 -0
  204. package/dist/browser/modules/excel/xlsx/xform/core/app-heading-pairs-xform.js +24 -0
  205. package/dist/browser/modules/excel/xlsx/xform/core/app-titles-of-parts-xform.d.ts +8 -0
  206. package/dist/browser/modules/excel/xlsx/xform/core/app-titles-of-parts-xform.js +21 -0
  207. package/dist/browser/modules/excel/xlsx/xform/core/app-xform.d.ts +26 -0
  208. package/dist/browser/modules/excel/xlsx/xform/core/app-xform.js +83 -0
  209. package/dist/browser/modules/excel/xlsx/xform/core/content-types-xform.d.ts +11 -0
  210. package/dist/browser/modules/excel/xlsx/xform/core/content-types-xform.js +122 -0
  211. package/dist/browser/modules/excel/xlsx/xform/core/core-xform.d.ts +42 -0
  212. package/dist/browser/modules/excel/xlsx/xform/core/core-xform.js +124 -0
  213. package/dist/browser/modules/excel/xlsx/xform/core/relationship-xform.d.ts +14 -0
  214. package/dist/browser/modules/excel/xlsx/xform/core/relationship-xform.js +20 -0
  215. package/dist/browser/modules/excel/xlsx/xform/core/relationships-xform.d.ts +14 -0
  216. package/dist/browser/modules/excel/xlsx/xform/core/relationships-xform.js +62 -0
  217. package/dist/browser/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.d.ts +13 -0
  218. package/dist/browser/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +44 -0
  219. package/dist/browser/modules/excel/xlsx/xform/drawing/blip-fill-xform.d.ts +16 -0
  220. package/dist/browser/modules/excel/xlsx/xform/drawing/blip-fill-xform.js +57 -0
  221. package/dist/browser/modules/excel/xlsx/xform/drawing/blip-xform.d.ts +14 -0
  222. package/dist/browser/modules/excel/xlsx/xform/drawing/blip-xform.js +40 -0
  223. package/dist/browser/modules/excel/xlsx/xform/drawing/c-nv-pic-pr-xform.d.ts +9 -0
  224. package/dist/browser/modules/excel/xlsx/xform/drawing/c-nv-pic-pr-xform.js +32 -0
  225. package/dist/browser/modules/excel/xlsx/xform/drawing/c-nv-pr-xform.d.ts +18 -0
  226. package/dist/browser/modules/excel/xlsx/xform/drawing/c-nv-pr-xform.js +59 -0
  227. package/dist/browser/modules/excel/xlsx/xform/drawing/cell-position-xform.d.ts +24 -0
  228. package/dist/browser/modules/excel/xlsx/xform/drawing/cell-position-xform.js +68 -0
  229. package/dist/browser/modules/excel/xlsx/xform/drawing/drawing-xform.d.ts +24 -0
  230. package/dist/browser/modules/excel/xlsx/xform/drawing/drawing-xform.js +96 -0
  231. package/dist/browser/modules/excel/xlsx/xform/drawing/ext-lst-xform.d.ts +9 -0
  232. package/dist/browser/modules/excel/xlsx/xform/drawing/ext-lst-xform.js +37 -0
  233. package/dist/browser/modules/excel/xlsx/xform/drawing/ext-xform.d.ts +20 -0
  234. package/dist/browser/modules/excel/xlsx/xform/drawing/ext-xform.js +34 -0
  235. package/dist/browser/modules/excel/xlsx/xform/drawing/hlink-click-xform.d.ts +11 -0
  236. package/dist/browser/modules/excel/xlsx/xform/drawing/hlink-click-xform.js +39 -0
  237. package/dist/browser/modules/excel/xlsx/xform/drawing/nv-pic-pr-xform.d.ts +15 -0
  238. package/dist/browser/modules/excel/xlsx/xform/drawing/nv-pic-pr-xform.js +56 -0
  239. package/dist/browser/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +20 -0
  240. package/dist/browser/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +52 -0
  241. package/dist/browser/modules/excel/xlsx/xform/drawing/pic-xform.d.ts +22 -0
  242. package/dist/browser/modules/excel/xlsx/xform/drawing/pic-xform.js +64 -0
  243. package/dist/browser/modules/excel/xlsx/xform/drawing/sp-pr.d.ts +32 -0
  244. package/dist/browser/modules/excel/xlsx/xform/drawing/sp-pr.js +17 -0
  245. package/dist/browser/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +20 -0
  246. package/dist/browser/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +51 -0
  247. package/dist/browser/modules/excel/xlsx/xform/list-xform.d.ts +32 -0
  248. package/dist/browser/modules/excel/xlsx/xform/list-xform.js +89 -0
  249. package/dist/browser/modules/excel/xlsx/xform/pivot-table/cache-field-xform.d.ts +42 -0
  250. package/dist/browser/modules/excel/xlsx/xform/pivot-table/cache-field-xform.js +128 -0
  251. package/dist/browser/modules/excel/xlsx/xform/pivot-table/cache-field.d.ts +15 -0
  252. package/dist/browser/modules/excel/xlsx/xform/pivot-table/cache-field.js +78 -0
  253. package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +60 -0
  254. package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +179 -0
  255. package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +73 -0
  256. package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.js +234 -0
  257. package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.d.ts +119 -0
  258. package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +624 -0
  259. package/dist/browser/modules/excel/xlsx/xform/sheet/auto-filter-xform.d.ts +8 -0
  260. package/dist/browser/modules/excel/xlsx/xform/sheet/auto-filter-xform.js +34 -0
  261. package/dist/browser/modules/excel/xlsx/xform/sheet/cell-xform.d.ts +17 -0
  262. package/dist/browser/modules/excel/xlsx/xform/sheet/cell-xform.js +460 -0
  263. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/cf-rule-xform.d.ts +41 -0
  264. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/cf-rule-xform.js +259 -0
  265. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/cfvo-xform.d.ts +8 -0
  266. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/cfvo-xform.js +22 -0
  267. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/color-scale-xform.d.ts +13 -0
  268. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/color-scale-xform.js +35 -0
  269. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/conditional-formatting-xform.d.ts +9 -0
  270. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/conditional-formatting-xform.js +37 -0
  271. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/conditional-formattings-xform.d.ts +16 -0
  272. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/conditional-formattings-xform.js +74 -0
  273. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/databar-xform.d.ts +13 -0
  274. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/databar-xform.js +39 -0
  275. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/ext-lst-ref-xform.d.ts +9 -0
  276. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +67 -0
  277. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/formula-xform.d.ts +9 -0
  278. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/formula-xform.js +19 -0
  279. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/icon-set-xform.d.ts +11 -0
  280. package/dist/browser/modules/excel/xlsx/xform/sheet/cf/icon-set-xform.js +37 -0
  281. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.d.ts +10 -0
  282. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +22 -0
  283. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.d.ts +23 -0
  284. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +80 -0
  285. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.d.ts +13 -0
  286. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +35 -0
  287. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.d.ts +16 -0
  288. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +48 -0
  289. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.d.ts +13 -0
  290. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +40 -0
  291. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/databar-ext-xform.d.ts +29 -0
  292. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +69 -0
  293. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/f-ext-xform.d.ts +9 -0
  294. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/f-ext-xform.js +19 -0
  295. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.d.ts +20 -0
  296. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +60 -0
  297. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/sqref-ext-xform.d.ts +9 -0
  298. package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +19 -0
  299. package/dist/browser/modules/excel/xlsx/xform/sheet/col-breaks-xform.d.ts +16 -0
  300. package/dist/browser/modules/excel/xlsx/xform/sheet/col-breaks-xform.js +35 -0
  301. package/dist/browser/modules/excel/xlsx/xform/sheet/col-xform.d.ts +22 -0
  302. package/dist/browser/modules/excel/xlsx/xform/sheet/col-xform.js +75 -0
  303. package/dist/browser/modules/excel/xlsx/xform/sheet/data-validations-xform.d.ts +12 -0
  304. package/dist/browser/modules/excel/xlsx/xform/sheet/data-validations-xform.js +269 -0
  305. package/dist/browser/modules/excel/xlsx/xform/sheet/dimension-xform.d.ts +10 -0
  306. package/dist/browser/modules/excel/xlsx/xform/sheet/dimension-xform.js +23 -0
  307. package/dist/browser/modules/excel/xlsx/xform/sheet/drawing-xform.d.ts +12 -0
  308. package/dist/browser/modules/excel/xlsx/xform/sheet/drawing-xform.js +27 -0
  309. package/dist/browser/modules/excel/xlsx/xform/sheet/ext-lst-xform.d.ts +16 -0
  310. package/dist/browser/modules/excel/xlsx/xform/sheet/ext-lst-xform.js +66 -0
  311. package/dist/browser/modules/excel/xlsx/xform/sheet/header-footer-xform.d.ts +20 -0
  312. package/dist/browser/modules/excel/xlsx/xform/sheet/header-footer-xform.js +124 -0
  313. package/dist/browser/modules/excel/xlsx/xform/sheet/hyperlink-xform.d.ts +16 -0
  314. package/dist/browser/modules/excel/xlsx/xform/sheet/hyperlink-xform.js +47 -0
  315. package/dist/browser/modules/excel/xlsx/xform/sheet/merge-cell-xform.d.ts +9 -0
  316. package/dist/browser/modules/excel/xlsx/xform/sheet/merge-cell-xform.js +21 -0
  317. package/dist/browser/modules/excel/xlsx/xform/sheet/merges.d.ts +14 -0
  318. package/dist/browser/modules/excel/xlsx/xform/sheet/merges.js +50 -0
  319. package/dist/browser/modules/excel/xlsx/xform/sheet/outline-properties-xform.d.ts +13 -0
  320. package/dist/browser/modules/excel/xlsx/xform/sheet/outline-properties-xform.js +36 -0
  321. package/dist/browser/modules/excel/xlsx/xform/sheet/page-breaks-xform.d.ts +14 -0
  322. package/dist/browser/modules/excel/xlsx/xform/sheet/page-breaks-xform.js +33 -0
  323. package/dist/browser/modules/excel/xlsx/xform/sheet/page-margins-xform.d.ts +17 -0
  324. package/dist/browser/modules/excel/xlsx/xform/sheet/page-margins-xform.js +42 -0
  325. package/dist/browser/modules/excel/xlsx/xform/sheet/page-setup-properties-xform.d.ts +12 -0
  326. package/dist/browser/modules/excel/xlsx/xform/sheet/page-setup-properties-xform.js +29 -0
  327. package/dist/browser/modules/excel/xlsx/xform/sheet/page-setup-xform.d.ts +27 -0
  328. package/dist/browser/modules/excel/xlsx/xform/sheet/page-setup-xform.js +96 -0
  329. package/dist/browser/modules/excel/xlsx/xform/sheet/picture-xform.d.ts +12 -0
  330. package/dist/browser/modules/excel/xlsx/xform/sheet/picture-xform.js +27 -0
  331. package/dist/browser/modules/excel/xlsx/xform/sheet/print-options-xform.d.ts +15 -0
  332. package/dist/browser/modules/excel/xlsx/xform/sheet/print-options-xform.js +41 -0
  333. package/dist/browser/modules/excel/xlsx/xform/sheet/row-breaks-xform.d.ts +10 -0
  334. package/dist/browser/modules/excel/xlsx/xform/sheet/row-breaks-xform.js +29 -0
  335. package/dist/browser/modules/excel/xlsx/xform/sheet/row-xform.d.ts +37 -0
  336. package/dist/browser/modules/excel/xlsx/xform/sheet/row-xform.js +152 -0
  337. package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-format-properties-xform.d.ts +16 -0
  338. package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-format-properties-xform.js +49 -0
  339. package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-properties-xform.d.ts +19 -0
  340. package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-properties-xform.js +82 -0
  341. package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-protection-xform.d.ts +31 -0
  342. package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-protection-xform.js +80 -0
  343. package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-view-xform.d.ts +32 -0
  344. package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-view-xform.js +193 -0
  345. package/dist/browser/modules/excel/xlsx/xform/sheet/table-part-xform.d.ts +12 -0
  346. package/dist/browser/modules/excel/xlsx/xform/sheet/table-part-xform.js +27 -0
  347. package/dist/browser/modules/excel/xlsx/xform/sheet/worksheet-xform.d.ts +21 -0
  348. package/dist/browser/modules/excel/xlsx/xform/sheet/worksheet-xform.js +518 -0
  349. package/dist/browser/modules/excel/xlsx/xform/simple/boolean-xform.d.ts +15 -0
  350. package/dist/browser/modules/excel/xlsx/xform/simple/boolean-xform.js +24 -0
  351. package/dist/browser/modules/excel/xlsx/xform/simple/date-xform.d.ts +22 -0
  352. package/dist/browser/modules/excel/xlsx/xform/simple/date-xform.js +65 -0
  353. package/dist/browser/modules/excel/xlsx/xform/simple/float-xform.d.ts +18 -0
  354. package/dist/browser/modules/excel/xlsx/xform/simple/float-xform.js +47 -0
  355. package/dist/browser/modules/excel/xlsx/xform/simple/integer-xform.d.ts +20 -0
  356. package/dist/browser/modules/excel/xlsx/xform/simple/integer-xform.js +52 -0
  357. package/dist/browser/modules/excel/xlsx/xform/simple/string-xform.d.ts +18 -0
  358. package/dist/browser/modules/excel/xlsx/xform/simple/string-xform.js +47 -0
  359. package/dist/browser/modules/excel/xlsx/xform/static-xform.d.ts +17 -0
  360. package/dist/browser/modules/excel/xlsx/xform/static-xform.js +55 -0
  361. package/dist/browser/modules/excel/xlsx/xform/strings/phonetic-text-xform.d.ts +20 -0
  362. package/dist/browser/modules/excel/xlsx/xform/strings/phonetic-text-xform.js +86 -0
  363. package/dist/browser/modules/excel/xlsx/xform/strings/rich-text-xform.d.ts +25 -0
  364. package/dist/browser/modules/excel/xlsx/xform/strings/rich-text-xform.js +77 -0
  365. package/dist/browser/modules/excel/xlsx/xform/strings/shared-string-xform.d.ts +17 -0
  366. package/dist/browser/modules/excel/xlsx/xform/strings/shared-string-xform.js +90 -0
  367. package/dist/browser/modules/excel/xlsx/xform/strings/shared-strings-xform.d.ts +27 -0
  368. package/dist/browser/modules/excel/xlsx/xform/strings/shared-strings-xform.js +109 -0
  369. package/dist/browser/modules/excel/xlsx/xform/strings/text-xform.d.ts +10 -0
  370. package/dist/browser/modules/excel/xlsx/xform/strings/text-xform.js +36 -0
  371. package/dist/browser/modules/excel/xlsx/xform/style/alignment-xform.d.ts +18 -0
  372. package/dist/browser/modules/excel/xlsx/xform/style/alignment-xform.js +152 -0
  373. package/dist/browser/modules/excel/xlsx/xform/style/border-xform.d.ts +49 -0
  374. package/dist/browser/modules/excel/xlsx/xform/style/border-xform.js +188 -0
  375. package/dist/browser/modules/excel/xlsx/xform/style/color-xform.d.ts +17 -0
  376. package/dist/browser/modules/excel/xlsx/xform/style/color-xform.js +61 -0
  377. package/dist/browser/modules/excel/xlsx/xform/style/dxf-xform.d.ts +23 -0
  378. package/dist/browser/modules/excel/xlsx/xform/style/dxf-xform.js +92 -0
  379. package/dist/browser/modules/excel/xlsx/xform/style/fill-xform.d.ts +85 -0
  380. package/dist/browser/modules/excel/xlsx/xform/style/fill-xform.js +312 -0
  381. package/dist/browser/modules/excel/xlsx/xform/style/font-xform.d.ts +35 -0
  382. package/dist/browser/modules/excel/xlsx/xform/style/font-xform.js +100 -0
  383. package/dist/browser/modules/excel/xlsx/xform/style/numfmt-xform.d.ts +18 -0
  384. package/dist/browser/modules/excel/xlsx/xform/style/numfmt-xform.js +50 -0
  385. package/dist/browser/modules/excel/xlsx/xform/style/protection-xform.d.ts +13 -0
  386. package/dist/browser/modules/excel/xlsx/xform/style/protection-xform.js +49 -0
  387. package/dist/browser/modules/excel/xlsx/xform/style/style-xform.d.ts +30 -0
  388. package/dist/browser/modules/excel/xlsx/xform/style/style-xform.js +108 -0
  389. package/dist/browser/modules/excel/xlsx/xform/style/styles-xform.d.ts +46 -0
  390. package/dist/browser/modules/excel/xlsx/xform/style/styles-xform.js +484 -0
  391. package/dist/browser/modules/excel/xlsx/xform/style/underline-xform.d.ts +14 -0
  392. package/dist/browser/modules/excel/xlsx/xform/style/underline-xform.js +38 -0
  393. package/dist/browser/modules/excel/xlsx/xform/table/auto-filter-xform.d.ts +21 -0
  394. package/dist/browser/modules/excel/xlsx/xform/table/auto-filter-xform.js +70 -0
  395. package/dist/browser/modules/excel/xlsx/xform/table/custom-filter-xform.d.ts +15 -0
  396. package/dist/browser/modules/excel/xlsx/xform/table/custom-filter-xform.js +31 -0
  397. package/dist/browser/modules/excel/xlsx/xform/table/filter-column-xform.d.ts +24 -0
  398. package/dist/browser/modules/excel/xlsx/xform/table/filter-column-xform.js +87 -0
  399. package/dist/browser/modules/excel/xlsx/xform/table/filter-xform.d.ts +14 -0
  400. package/dist/browser/modules/excel/xlsx/xform/table/filter-xform.js +29 -0
  401. package/dist/browser/modules/excel/xlsx/xform/table/table-column-xform.d.ts +21 -0
  402. package/dist/browser/modules/excel/xlsx/xform/table/table-column-xform.js +41 -0
  403. package/dist/browser/modules/excel/xlsx/xform/table/table-style-info-xform.d.ts +18 -0
  404. package/dist/browser/modules/excel/xlsx/xform/table/table-style-info-xform.js +44 -0
  405. package/dist/browser/modules/excel/xlsx/xform/table/table-xform.d.ts +33 -0
  406. package/dist/browser/modules/excel/xlsx/xform/table/table-xform.js +126 -0
  407. package/dist/browser/modules/excel/xlsx/xlsx.browser.d.ts +208 -0
  408. package/dist/browser/modules/excel/xlsx/xlsx.browser.js +1152 -0
  409. package/dist/browser/modules/excel/xlsx/xlsx.d.ts +24 -0
  410. package/dist/browser/modules/excel/xlsx/xlsx.js +239 -0
  411. package/dist/browser/modules/excel/xlsx/xml/theme1.d.ts +1 -0
  412. package/dist/browser/modules/excel/xlsx/xml/theme1.js +1 -0
  413. package/dist/browser/modules/stream/base-transform.d.ts +68 -0
  414. package/dist/browser/modules/stream/base-transform.js +160 -0
  415. package/dist/browser/modules/stream/buffered-stream.d.ts +94 -0
  416. package/dist/browser/modules/stream/buffered-stream.js +277 -0
  417. package/dist/browser/modules/stream/chunked-builder.d.ts +97 -0
  418. package/dist/browser/modules/stream/chunked-builder.js +165 -0
  419. package/dist/browser/modules/stream/event-emitter.d.ts +30 -0
  420. package/dist/browser/modules/stream/event-emitter.js +239 -0
  421. package/dist/browser/modules/stream/index.browser.d.ts +22 -0
  422. package/dist/browser/modules/stream/index.browser.js +25 -0
  423. package/dist/browser/modules/stream/index.d.ts +49 -0
  424. package/dist/browser/modules/stream/index.js +52 -0
  425. package/dist/browser/modules/stream/pull-stream.d.ts +67 -0
  426. package/dist/browser/modules/stream/pull-stream.js +204 -0
  427. package/dist/browser/modules/stream/shared.d.ts +54 -0
  428. package/dist/browser/modules/stream/shared.js +156 -0
  429. package/dist/browser/modules/stream/streams.browser.d.ts +936 -0
  430. package/dist/browser/modules/stream/streams.browser.js +3297 -0
  431. package/dist/browser/modules/stream/streams.d.ts +282 -0
  432. package/dist/browser/modules/stream/streams.js +940 -0
  433. package/dist/browser/modules/stream/types.d.ts +238 -0
  434. package/dist/browser/modules/stream/types.js +7 -0
  435. package/dist/browser/modules/stream/utils.d.ts +24 -0
  436. package/dist/browser/modules/stream/utils.js +85 -0
  437. package/dist/browser/utils/browser.d.ts +9 -0
  438. package/dist/browser/utils/browser.js +49 -0
  439. package/dist/browser/utils/datetime.d.ts +56 -0
  440. package/dist/browser/utils/datetime.js +493 -0
  441. package/dist/browser/utils/env.d.ts +14 -0
  442. package/dist/browser/utils/env.js +18 -0
  443. package/dist/browser/utils/utils.base.d.ts +49 -0
  444. package/dist/browser/utils/utils.base.js +275 -0
  445. package/dist/browser/utils/utils.browser.d.ts +6 -0
  446. package/dist/browser/utils/utils.browser.js +12 -0
  447. package/dist/browser/utils/utils.d.ts +6 -0
  448. package/dist/browser/utils/utils.js +19 -0
  449. package/dist/browser/utils/uuid.d.ts +11 -0
  450. package/dist/browser/utils/uuid.js +55 -0
  451. package/dist/cjs/modules/excel/table.js +8 -1
  452. package/dist/esm/modules/excel/table.js +8 -1
  453. package/dist/{browser → iife}/excelts.iife.js +6 -2
  454. package/dist/iife/excelts.iife.js.map +1 -0
  455. package/dist/{browser → iife}/excelts.iife.min.js +2 -2
  456. package/dist/types/index.browser.d.ts +20 -20
  457. package/dist/types/index.d.ts +23 -23
  458. package/dist/types/modules/archive/compress.browser.d.ts +1 -1
  459. package/dist/types/modules/archive/compress.d.ts +2 -2
  460. package/dist/types/modules/archive/crc32.browser.d.ts +1 -1
  461. package/dist/types/modules/archive/crc32.d.ts +1 -1
  462. package/dist/types/modules/archive/defaults.d.ts +1 -1
  463. package/dist/types/modules/archive/extract.d.ts +2 -2
  464. package/dist/types/modules/archive/index.base.d.ts +4 -4
  465. package/dist/types/modules/archive/index.browser.d.ts +5 -5
  466. package/dist/types/modules/archive/index.d.ts +5 -5
  467. package/dist/types/modules/archive/parse.base.d.ts +3 -3
  468. package/dist/types/modules/archive/parse.browser.d.ts +2 -2
  469. package/dist/types/modules/archive/parse.d.ts +3 -3
  470. package/dist/types/modules/archive/streaming-compress.browser.d.ts +2 -2
  471. package/dist/types/modules/archive/streaming-compress.d.ts +2 -2
  472. package/dist/types/modules/archive/streaming-zip.d.ts +2 -2
  473. package/dist/types/modules/archive/zip-builder.d.ts +2 -2
  474. package/dist/types/modules/archive/zip-entry-metadata.d.ts +1 -1
  475. package/dist/types/modules/archive/zip-parser.d.ts +1 -1
  476. package/dist/types/modules/csv/csv-stream.d.ts +3 -3
  477. package/dist/types/modules/csv/csv.browser.d.ts +9 -9
  478. package/dist/types/modules/csv/csv.d.ts +4 -4
  479. package/dist/types/modules/excel/anchor.d.ts +1 -1
  480. package/dist/types/modules/excel/cell.d.ts +7 -7
  481. package/dist/types/modules/excel/column.d.ts +3 -3
  482. package/dist/types/modules/excel/defined-names.d.ts +4 -4
  483. package/dist/types/modules/excel/image.d.ts +2 -2
  484. package/dist/types/modules/excel/pivot-table.d.ts +1 -1
  485. package/dist/types/modules/excel/range.d.ts +1 -1
  486. package/dist/types/modules/excel/row.d.ts +3 -3
  487. package/dist/types/modules/excel/stream/hyperlink-reader.d.ts +2 -2
  488. package/dist/types/modules/excel/stream/workbook-reader.browser.d.ts +6 -6
  489. package/dist/types/modules/excel/stream/workbook-reader.d.ts +5 -5
  490. package/dist/types/modules/excel/stream/workbook-writer.browser.d.ts +8 -8
  491. package/dist/types/modules/excel/stream/workbook-writer.d.ts +2 -2
  492. package/dist/types/modules/excel/stream/worksheet-reader.d.ts +6 -6
  493. package/dist/types/modules/excel/stream/worksheet-writer.d.ts +9 -9
  494. package/dist/types/modules/excel/table.d.ts +2 -2
  495. package/dist/types/modules/excel/utils/col-cache.d.ts +1 -1
  496. package/dist/types/modules/excel/utils/sheet-utils.d.ts +3 -3
  497. package/dist/types/modules/excel/utils/stream-buf.d.ts +2 -2
  498. package/dist/types/modules/excel/workbook.d.ts +9 -9
  499. package/dist/types/modules/excel/worksheet.d.ts +10 -10
  500. package/dist/types/modules/excel/xlsx/xform/base-xform.d.ts +1 -1
  501. package/dist/types/modules/excel/xlsx/xform/book/defined-name-xform.d.ts +1 -1
  502. package/dist/types/modules/excel/xlsx/xform/book/sheet-xform.d.ts +1 -1
  503. package/dist/types/modules/excel/xlsx/xform/book/workbook-calc-properties-xform.d.ts +1 -1
  504. package/dist/types/modules/excel/xlsx/xform/book/workbook-pivot-cache-xform.d.ts +1 -1
  505. package/dist/types/modules/excel/xlsx/xform/book/workbook-properties-xform.d.ts +1 -1
  506. package/dist/types/modules/excel/xlsx/xform/book/workbook-view-xform.d.ts +1 -1
  507. package/dist/types/modules/excel/xlsx/xform/book/workbook-xform.d.ts +2 -2
  508. package/dist/types/modules/excel/xlsx/xform/comment/comment-xform.d.ts +2 -2
  509. package/dist/types/modules/excel/xlsx/xform/comment/comments-xform.d.ts +2 -2
  510. package/dist/types/modules/excel/xlsx/xform/comment/style/vml-position-xform.d.ts +1 -1
  511. package/dist/types/modules/excel/xlsx/xform/comment/style/vml-protection-xform.d.ts +1 -1
  512. package/dist/types/modules/excel/xlsx/xform/comment/vml-anchor-xform.d.ts +1 -1
  513. package/dist/types/modules/excel/xlsx/xform/comment/vml-client-data-xform.d.ts +1 -1
  514. package/dist/types/modules/excel/xlsx/xform/comment/vml-notes-xform.d.ts +1 -1
  515. package/dist/types/modules/excel/xlsx/xform/comment/vml-shape-xform.d.ts +1 -1
  516. package/dist/types/modules/excel/xlsx/xform/comment/vml-textbox-xform.d.ts +1 -1
  517. package/dist/types/modules/excel/xlsx/xform/composite-xform.d.ts +1 -1
  518. package/dist/types/modules/excel/xlsx/xform/core/app-heading-pairs-xform.d.ts +1 -1
  519. package/dist/types/modules/excel/xlsx/xform/core/app-titles-of-parts-xform.d.ts +1 -1
  520. package/dist/types/modules/excel/xlsx/xform/core/app-xform.d.ts +1 -1
  521. package/dist/types/modules/excel/xlsx/xform/core/content-types-xform.d.ts +1 -1
  522. package/dist/types/modules/excel/xlsx/xform/core/core-xform.d.ts +1 -1
  523. package/dist/types/modules/excel/xlsx/xform/core/relationship-xform.d.ts +1 -1
  524. package/dist/types/modules/excel/xlsx/xform/core/relationships-xform.d.ts +1 -1
  525. package/dist/types/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.d.ts +1 -1
  526. package/dist/types/modules/excel/xlsx/xform/drawing/blip-fill-xform.d.ts +2 -2
  527. package/dist/types/modules/excel/xlsx/xform/drawing/blip-xform.d.ts +1 -1
  528. package/dist/types/modules/excel/xlsx/xform/drawing/c-nv-pic-pr-xform.d.ts +1 -1
  529. package/dist/types/modules/excel/xlsx/xform/drawing/c-nv-pr-xform.d.ts +1 -1
  530. package/dist/types/modules/excel/xlsx/xform/drawing/cell-position-xform.d.ts +2 -2
  531. package/dist/types/modules/excel/xlsx/xform/drawing/drawing-xform.d.ts +1 -1
  532. package/dist/types/modules/excel/xlsx/xform/drawing/ext-lst-xform.d.ts +1 -1
  533. package/dist/types/modules/excel/xlsx/xform/drawing/ext-xform.d.ts +1 -1
  534. package/dist/types/modules/excel/xlsx/xform/drawing/hlink-click-xform.d.ts +1 -1
  535. package/dist/types/modules/excel/xlsx/xform/drawing/nv-pic-pr-xform.d.ts +1 -1
  536. package/dist/types/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +1 -1
  537. package/dist/types/modules/excel/xlsx/xform/drawing/pic-xform.d.ts +1 -1
  538. package/dist/types/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +1 -1
  539. package/dist/types/modules/excel/xlsx/xform/list-xform.d.ts +1 -1
  540. package/dist/types/modules/excel/xlsx/xform/pivot-table/cache-field-xform.d.ts +1 -1
  541. package/dist/types/modules/excel/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +3 -3
  542. package/dist/types/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +2 -2
  543. package/dist/types/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.d.ts +1 -1
  544. package/dist/types/modules/excel/xlsx/xform/sheet/auto-filter-xform.d.ts +1 -1
  545. package/dist/types/modules/excel/xlsx/xform/sheet/cell-xform.d.ts +1 -1
  546. package/dist/types/modules/excel/xlsx/xform/sheet/cf/cf-rule-xform.d.ts +6 -6
  547. package/dist/types/modules/excel/xlsx/xform/sheet/cf/cfvo-xform.d.ts +1 -1
  548. package/dist/types/modules/excel/xlsx/xform/sheet/cf/color-scale-xform.d.ts +3 -3
  549. package/dist/types/modules/excel/xlsx/xform/sheet/cf/conditional-formatting-xform.d.ts +1 -1
  550. package/dist/types/modules/excel/xlsx/xform/sheet/cf/conditional-formattings-xform.d.ts +2 -2
  551. package/dist/types/modules/excel/xlsx/xform/sheet/cf/databar-xform.d.ts +3 -3
  552. package/dist/types/modules/excel/xlsx/xform/sheet/cf/ext-lst-ref-xform.d.ts +1 -1
  553. package/dist/types/modules/excel/xlsx/xform/sheet/cf/formula-xform.d.ts +1 -1
  554. package/dist/types/modules/excel/xlsx/xform/sheet/cf/icon-set-xform.d.ts +2 -2
  555. package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.d.ts +1 -1
  556. package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.d.ts +3 -3
  557. package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.d.ts +2 -2
  558. package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.d.ts +3 -3
  559. package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.d.ts +2 -2
  560. package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/databar-ext-xform.d.ts +3 -3
  561. package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/f-ext-xform.d.ts +1 -1
  562. package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.d.ts +3 -3
  563. package/dist/types/modules/excel/xlsx/xform/sheet/cf-ext/sqref-ext-xform.d.ts +1 -1
  564. package/dist/types/modules/excel/xlsx/xform/sheet/col-breaks-xform.d.ts +1 -1
  565. package/dist/types/modules/excel/xlsx/xform/sheet/col-xform.d.ts +1 -1
  566. package/dist/types/modules/excel/xlsx/xform/sheet/data-validations-xform.d.ts +1 -1
  567. package/dist/types/modules/excel/xlsx/xform/sheet/dimension-xform.d.ts +1 -1
  568. package/dist/types/modules/excel/xlsx/xform/sheet/drawing-xform.d.ts +1 -1
  569. package/dist/types/modules/excel/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -1
  570. package/dist/types/modules/excel/xlsx/xform/sheet/header-footer-xform.d.ts +1 -1
  571. package/dist/types/modules/excel/xlsx/xform/sheet/hyperlink-xform.d.ts +1 -1
  572. package/dist/types/modules/excel/xlsx/xform/sheet/merge-cell-xform.d.ts +1 -1
  573. package/dist/types/modules/excel/xlsx/xform/sheet/outline-properties-xform.d.ts +1 -1
  574. package/dist/types/modules/excel/xlsx/xform/sheet/page-breaks-xform.d.ts +1 -1
  575. package/dist/types/modules/excel/xlsx/xform/sheet/page-margins-xform.d.ts +1 -1
  576. package/dist/types/modules/excel/xlsx/xform/sheet/page-setup-properties-xform.d.ts +1 -1
  577. package/dist/types/modules/excel/xlsx/xform/sheet/page-setup-xform.d.ts +1 -1
  578. package/dist/types/modules/excel/xlsx/xform/sheet/picture-xform.d.ts +1 -1
  579. package/dist/types/modules/excel/xlsx/xform/sheet/print-options-xform.d.ts +1 -1
  580. package/dist/types/modules/excel/xlsx/xform/sheet/row-breaks-xform.d.ts +1 -1
  581. package/dist/types/modules/excel/xlsx/xform/sheet/row-xform.d.ts +1 -1
  582. package/dist/types/modules/excel/xlsx/xform/sheet/sheet-format-properties-xform.d.ts +1 -1
  583. package/dist/types/modules/excel/xlsx/xform/sheet/sheet-properties-xform.d.ts +1 -1
  584. package/dist/types/modules/excel/xlsx/xform/sheet/sheet-protection-xform.d.ts +1 -1
  585. package/dist/types/modules/excel/xlsx/xform/sheet/sheet-view-xform.d.ts +1 -1
  586. package/dist/types/modules/excel/xlsx/xform/sheet/table-part-xform.d.ts +1 -1
  587. package/dist/types/modules/excel/xlsx/xform/sheet/worksheet-xform.d.ts +1 -1
  588. package/dist/types/modules/excel/xlsx/xform/simple/boolean-xform.d.ts +1 -1
  589. package/dist/types/modules/excel/xlsx/xform/simple/date-xform.d.ts +1 -1
  590. package/dist/types/modules/excel/xlsx/xform/simple/float-xform.d.ts +1 -1
  591. package/dist/types/modules/excel/xlsx/xform/simple/integer-xform.d.ts +1 -1
  592. package/dist/types/modules/excel/xlsx/xform/simple/string-xform.d.ts +1 -1
  593. package/dist/types/modules/excel/xlsx/xform/static-xform.d.ts +1 -1
  594. package/dist/types/modules/excel/xlsx/xform/strings/phonetic-text-xform.d.ts +1 -1
  595. package/dist/types/modules/excel/xlsx/xform/strings/rich-text-xform.d.ts +3 -3
  596. package/dist/types/modules/excel/xlsx/xform/strings/shared-string-xform.d.ts +1 -1
  597. package/dist/types/modules/excel/xlsx/xform/strings/shared-strings-xform.d.ts +2 -2
  598. package/dist/types/modules/excel/xlsx/xform/strings/text-xform.d.ts +1 -1
  599. package/dist/types/modules/excel/xlsx/xform/style/alignment-xform.d.ts +1 -1
  600. package/dist/types/modules/excel/xlsx/xform/style/border-xform.d.ts +2 -2
  601. package/dist/types/modules/excel/xlsx/xform/style/color-xform.d.ts +1 -1
  602. package/dist/types/modules/excel/xlsx/xform/style/dxf-xform.d.ts +1 -1
  603. package/dist/types/modules/excel/xlsx/xform/style/fill-xform.d.ts +2 -2
  604. package/dist/types/modules/excel/xlsx/xform/style/font-xform.d.ts +1 -1
  605. package/dist/types/modules/excel/xlsx/xform/style/numfmt-xform.d.ts +1 -1
  606. package/dist/types/modules/excel/xlsx/xform/style/protection-xform.d.ts +1 -1
  607. package/dist/types/modules/excel/xlsx/xform/style/style-xform.d.ts +3 -3
  608. package/dist/types/modules/excel/xlsx/xform/style/styles-xform.d.ts +2 -2
  609. package/dist/types/modules/excel/xlsx/xform/style/underline-xform.d.ts +1 -1
  610. package/dist/types/modules/excel/xlsx/xform/table/auto-filter-xform.d.ts +2 -2
  611. package/dist/types/modules/excel/xlsx/xform/table/custom-filter-xform.d.ts +1 -1
  612. package/dist/types/modules/excel/xlsx/xform/table/filter-column-xform.d.ts +2 -2
  613. package/dist/types/modules/excel/xlsx/xform/table/filter-xform.d.ts +1 -1
  614. package/dist/types/modules/excel/xlsx/xform/table/table-column-xform.d.ts +1 -1
  615. package/dist/types/modules/excel/xlsx/xform/table/table-style-info-xform.d.ts +1 -1
  616. package/dist/types/modules/excel/xlsx/xform/table/table-xform.d.ts +1 -1
  617. package/dist/types/modules/excel/xlsx/xlsx.browser.d.ts +3 -3
  618. package/dist/types/modules/excel/xlsx/xlsx.d.ts +1 -1
  619. package/dist/types/modules/stream/base-transform.d.ts +1 -1
  620. package/dist/types/modules/stream/buffered-stream.d.ts +1 -1
  621. package/dist/types/modules/stream/index.browser.d.ts +8 -8
  622. package/dist/types/modules/stream/index.d.ts +8 -8
  623. package/dist/types/modules/stream/pull-stream.d.ts +1 -1
  624. package/dist/types/modules/stream/streams.browser.d.ts +4 -4
  625. package/dist/types/modules/stream/streams.d.ts +3 -3
  626. package/dist/types/modules/stream/utils.d.ts +1 -1
  627. package/dist/types/utils/utils.browser.d.ts +1 -1
  628. package/dist/types/utils/utils.d.ts +1 -1
  629. package/package.json +10 -6
  630. package/dist/browser/excelts.esm.js +0 -24621
  631. package/dist/browser/excelts.esm.js.map +0 -1
  632. package/dist/browser/excelts.esm.min.js +0 -148
  633. package/dist/browser/excelts.iife.js.map +0 -1
@@ -0,0 +1,924 @@
1
+ import { colCache } from "./utils/col-cache.js";
2
+ import { Range } from "./range.js";
3
+ import { Row } from "./row.js";
4
+ import { Column } from "./column.js";
5
+ import { Enums } from "./enums.js";
6
+ import { Image } from "./image.js";
7
+ import { Table } from "./table.js";
8
+ import { DataValidations } from "./data-validations.js";
9
+ import { Encryptor } from "./utils/encryptor.browser.js";
10
+ import { uint8ArrayToBase64 } from "../../utils/utils.browser.js";
11
+ import { makePivotTable } from "./pivot-table.js";
12
+ import { copyStyle } from "./utils/copy-style.js";
13
+ // Worksheet requirements
14
+ // Operate as sheet inside workbook or standalone
15
+ // Load and Save from file and stream
16
+ // Access/Add/Delete individual cells
17
+ // Manage column widths and row heights
18
+ class Worksheet {
19
+ constructor(options) {
20
+ options = options || {};
21
+ this._workbook = options.workbook;
22
+ // in a workbook, each sheet will have a number
23
+ this.id = options.id || 0;
24
+ this.orderNo = options.orderNo || 0;
25
+ // and a name - use the setter to ensure validation and truncation
26
+ this.name = options.name || `sheet${this.id}`;
27
+ // add a state
28
+ this.state = options.state || "visible";
29
+ // rows allows access organised by row. Sparse array of arrays indexed by row-1, col
30
+ // Note: _rows is zero based. Must subtract 1 to go from cell.row to index
31
+ this._rows = [];
32
+ // column definitions
33
+ this._columns = null;
34
+ // column keys (addRow convenience): key ==> this._collumns index
35
+ this._keys = {};
36
+ // keep record of all merges
37
+ this._merges = {};
38
+ // record of all row and column pageBreaks
39
+ this.rowBreaks = [];
40
+ this.colBreaks = [];
41
+ // for tabColor, default row height, outline levels, etc
42
+ this.properties = Object.assign({}, {
43
+ defaultRowHeight: 15,
44
+ outlineLevelCol: 0,
45
+ outlineLevelRow: 0
46
+ }, options.properties);
47
+ // for all things printing
48
+ this.pageSetup = Object.assign({}, {
49
+ margins: { left: 0.7, right: 0.7, top: 0.75, bottom: 0.75, header: 0.3, footer: 0.3 },
50
+ orientation: "portrait",
51
+ horizontalDpi: 4294967295,
52
+ verticalDpi: 4294967295,
53
+ fitToPage: !!(options.pageSetup &&
54
+ (options.pageSetup.fitToWidth || options.pageSetup.fitToHeight) &&
55
+ !options.pageSetup.scale),
56
+ pageOrder: "downThenOver",
57
+ blackAndWhite: false,
58
+ draft: false,
59
+ cellComments: "None",
60
+ errors: "displayed",
61
+ scale: 100,
62
+ fitToWidth: 1,
63
+ fitToHeight: 1,
64
+ paperSize: undefined,
65
+ showRowColHeaders: false,
66
+ showGridLines: false,
67
+ firstPageNumber: undefined,
68
+ horizontalCentered: false,
69
+ verticalCentered: false,
70
+ rowBreaks: null,
71
+ colBreaks: null
72
+ }, options.pageSetup);
73
+ this.headerFooter = Object.assign({}, {
74
+ differentFirst: false,
75
+ differentOddEven: false,
76
+ oddHeader: null,
77
+ oddFooter: null,
78
+ evenHeader: null,
79
+ evenFooter: null,
80
+ firstHeader: null,
81
+ firstFooter: null
82
+ }, options.headerFooter);
83
+ this.dataValidations = new DataValidations();
84
+ // for freezepanes, split, zoom, gridlines, etc
85
+ this.views = options.views || [];
86
+ this.autoFilter = options.autoFilter || null;
87
+ // for images, etc
88
+ this._media = [];
89
+ // worksheet protection
90
+ this.sheetProtection = null;
91
+ // for tables
92
+ this.tables = {};
93
+ this.pivotTables = [];
94
+ this.conditionalFormattings = [];
95
+ }
96
+ get name() {
97
+ return this._name;
98
+ }
99
+ set name(name) {
100
+ if (name === undefined) {
101
+ name = `sheet${this.id}`;
102
+ }
103
+ if (this._name === name) {
104
+ return;
105
+ }
106
+ if (typeof name !== "string") {
107
+ throw new Error("The name has to be a string.");
108
+ }
109
+ if (name === "") {
110
+ throw new Error("The name can't be empty.");
111
+ }
112
+ if (name === "History") {
113
+ throw new Error('The name "History" is protected. Please use a different name.');
114
+ }
115
+ // Illegal character in worksheet name: asterisk (*), question mark (?),
116
+ // colon (:), forward slash (/ \), or bracket ([])
117
+ if (/[*?:/\\[\]]/.test(name)) {
118
+ throw new Error(`Worksheet name ${name} cannot include any of the following characters: * ? : \\ / [ ]`);
119
+ }
120
+ if (/(^')|('$)/.test(name)) {
121
+ throw new Error(`The first or last character of worksheet name cannot be a single quotation mark: ${name}`);
122
+ }
123
+ if (name && name.length > 31) {
124
+ if (process.env.NODE_ENV !== "production") {
125
+ console.warn(`Worksheet name ${name} exceeds 31 chars. This will be truncated`);
126
+ }
127
+ name = name.substring(0, 31);
128
+ }
129
+ if (this._workbook.worksheets.find(ws => ws && ws.name.toLowerCase() === name.toLowerCase())) {
130
+ throw new Error(`Worksheet name already exists: ${name}`);
131
+ }
132
+ this._name = name;
133
+ }
134
+ /**
135
+ * The workbook that contains this worksheet
136
+ */
137
+ get workbook() {
138
+ return this._workbook;
139
+ }
140
+ /**
141
+ * When you're done with this worksheet, call this to remove from workbook
142
+ */
143
+ destroy() {
144
+ this._workbook.removeWorksheetEx(this);
145
+ }
146
+ /**
147
+ * Get the bounding range of the cells in this worksheet
148
+ */
149
+ get dimensions() {
150
+ const dimensions = new Range();
151
+ this._rows.forEach(row => {
152
+ if (row) {
153
+ const rowDims = row.dimensions;
154
+ if (rowDims) {
155
+ dimensions.expand(row.number, rowDims.min, row.number, rowDims.max);
156
+ }
157
+ }
158
+ });
159
+ return dimensions;
160
+ }
161
+ // =========================================================================
162
+ // Columns
163
+ /**
164
+ * Get the current columns array
165
+ */
166
+ get columns() {
167
+ return this._columns;
168
+ }
169
+ /**
170
+ * Add column headers and define column keys and widths.
171
+ *
172
+ * Note: these column structures are a workbook-building convenience only,
173
+ * apart from the column width, they will not be fully persisted.
174
+ */
175
+ set columns(value) {
176
+ // calculate max header row count
177
+ this._headerRowCount = value.reduce((pv, cv) => {
178
+ const headerCount = Array.isArray(cv.header) ? cv.header.length : cv.header ? 1 : 0;
179
+ return Math.max(pv, headerCount);
180
+ }, 0);
181
+ // construct Column objects
182
+ let count = 1;
183
+ const columns = (this._columns = []);
184
+ value.forEach(defn => {
185
+ const column = new Column(this, count++, false);
186
+ columns.push(column);
187
+ column.defn = defn;
188
+ });
189
+ }
190
+ getColumnKey(key) {
191
+ return this._keys[key];
192
+ }
193
+ setColumnKey(key, value) {
194
+ this._keys[key] = value;
195
+ }
196
+ deleteColumnKey(key) {
197
+ delete this._keys[key];
198
+ }
199
+ eachColumnKey(f) {
200
+ Object.keys(this._keys).forEach(key => f(this._keys[key], key));
201
+ }
202
+ /**
203
+ * Access an individual column by key, letter and 1-based column number
204
+ */
205
+ getColumn(c) {
206
+ let colNum;
207
+ if (typeof c === "string") {
208
+ // if it matches a key'd column, return that
209
+ const col = this._keys[c];
210
+ if (col) {
211
+ return col;
212
+ }
213
+ // otherwise, assume letter
214
+ colNum = colCache.l2n(c);
215
+ }
216
+ else {
217
+ colNum = c;
218
+ }
219
+ if (!this._columns) {
220
+ this._columns = [];
221
+ }
222
+ if (colNum > this._columns.length) {
223
+ let n = this._columns.length + 1;
224
+ while (n <= colNum) {
225
+ this._columns.push(new Column(this, n++));
226
+ }
227
+ }
228
+ return this._columns[colNum - 1];
229
+ }
230
+ /**
231
+ * Cut one or more columns (columns to the right are shifted left)
232
+ * and optionally insert more
233
+ *
234
+ * If column properties have been defined, they will be cut or moved accordingly
235
+ *
236
+ * Known limitation: If a splice causes any merged cells to move, the results may be unpredictable
237
+ *
238
+ * Also: If the worksheet has more rows than values in the column inserts,
239
+ * the rows will still be shifted as if the values existed
240
+ */
241
+ spliceColumns(start, count, ...inserts) {
242
+ const rows = this._rows;
243
+ const nRows = rows.length;
244
+ if (inserts.length > 0) {
245
+ // must iterate over all rows whether they exist yet or not
246
+ for (let i = 0; i < nRows; i++) {
247
+ const insertValues = inserts.map(insert => insert[i] || null);
248
+ const row = this.getRow(i + 1);
249
+ row.splice(start, count, ...insertValues);
250
+ }
251
+ }
252
+ else {
253
+ // nothing to insert, so just splice all rows
254
+ this._rows.forEach(r => {
255
+ if (r) {
256
+ r.splice(start, count);
257
+ }
258
+ });
259
+ }
260
+ // splice column definitions
261
+ const nExpand = inserts.length - count;
262
+ const nKeep = start + count;
263
+ const nEnd = this._columns ? this._columns.length : 0;
264
+ if (nExpand < 0) {
265
+ for (let i = start + inserts.length; i <= nEnd; i++) {
266
+ this.getColumn(i).defn = this.getColumn(i - nExpand).defn;
267
+ }
268
+ }
269
+ else if (nExpand > 0) {
270
+ for (let i = nEnd; i >= nKeep; i--) {
271
+ this.getColumn(i + nExpand).defn = this.getColumn(i).defn;
272
+ }
273
+ }
274
+ for (let i = start; i < start + inserts.length; i++) {
275
+ this.getColumn(i).defn = undefined;
276
+ }
277
+ // account for defined names
278
+ this.workbook.definedNames.spliceColumns(this.name, start, count, inserts.length);
279
+ }
280
+ /**
281
+ * Get the last column in a worksheet
282
+ */
283
+ get lastColumn() {
284
+ return this.getColumn(this.columnCount);
285
+ }
286
+ /**
287
+ * The total column size of the document. Equal to the maximum cell count from all of the rows
288
+ */
289
+ get columnCount() {
290
+ let maxCount = 0;
291
+ this.eachRow(row => {
292
+ maxCount = Math.max(maxCount, row.cellCount);
293
+ });
294
+ return maxCount;
295
+ }
296
+ /**
297
+ * A count of the number of columns that have values
298
+ */
299
+ get actualColumnCount() {
300
+ // performance nightmare - for each row, counts all the columns used
301
+ const counts = [];
302
+ let count = 0;
303
+ this.eachRow(row => {
304
+ row.eachCell(({ col }) => {
305
+ if (!counts[col]) {
306
+ counts[col] = true;
307
+ count++;
308
+ }
309
+ });
310
+ });
311
+ return count;
312
+ }
313
+ // =========================================================================
314
+ // Rows
315
+ _commitRow(row) {
316
+ // nop - allows streaming reader to fill a document
317
+ }
318
+ get _lastRowNumber() {
319
+ // need to cope with results of splice
320
+ const rows = this._rows;
321
+ let n = rows.length;
322
+ while (n > 0 && rows[n - 1] === undefined) {
323
+ n--;
324
+ }
325
+ return n;
326
+ }
327
+ get _nextRow() {
328
+ return this._lastRowNumber + 1;
329
+ }
330
+ /**
331
+ * Get the last editable row in a worksheet (or undefined if there are none)
332
+ */
333
+ get lastRow() {
334
+ if (this._rows.length) {
335
+ return this._rows[this._rows.length - 1];
336
+ }
337
+ return undefined;
338
+ }
339
+ /**
340
+ * Tries to find and return row for row number, else undefined
341
+ *
342
+ * @param r - The 1-indexed row number
343
+ */
344
+ findRow(r) {
345
+ return this._rows[r - 1];
346
+ }
347
+ /**
348
+ * Tries to find and return rows for row number start and length, else undefined
349
+ *
350
+ * @param start - The 1-indexed starting row number
351
+ * @param length - The length of the expected array
352
+ */
353
+ findRows(start, length) {
354
+ return this._rows.slice(start - 1, start - 1 + length);
355
+ }
356
+ /**
357
+ * The total row size of the document. Equal to the row number of the last row that has values.
358
+ */
359
+ get rowCount() {
360
+ return this._lastRowNumber;
361
+ }
362
+ /**
363
+ * 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.
364
+ */
365
+ get actualRowCount() {
366
+ // counts actual rows that have actual data
367
+ let count = 0;
368
+ this.eachRow(() => {
369
+ count++;
370
+ });
371
+ return count;
372
+ }
373
+ // get a row by row number.
374
+ getRow(r) {
375
+ let row = this._rows[r - 1];
376
+ if (!row) {
377
+ row = this._rows[r - 1] = new Row(this, r);
378
+ }
379
+ return row;
380
+ }
381
+ // get multiple rows by row number.
382
+ getRows(start, length) {
383
+ if (length < 1) {
384
+ return undefined;
385
+ }
386
+ const rows = [];
387
+ for (let i = start; i < start + length; i++) {
388
+ rows.push(this.getRow(i));
389
+ }
390
+ return rows;
391
+ }
392
+ addRow(value, style = "n") {
393
+ const rowNo = this._nextRow;
394
+ const row = this.getRow(rowNo);
395
+ row.values = value;
396
+ this._setStyleOption(rowNo, style[0] === "i" ? style : "n");
397
+ return row;
398
+ }
399
+ addRows(value, style = "n") {
400
+ const rows = [];
401
+ value.forEach(row => {
402
+ rows.push(this.addRow(row, style));
403
+ });
404
+ return rows;
405
+ }
406
+ insertRow(pos, value, style = "n") {
407
+ this.spliceRows(pos, 0, value);
408
+ this._setStyleOption(pos, style);
409
+ return this.getRow(pos);
410
+ }
411
+ insertRows(pos, values, style = "n") {
412
+ this.spliceRows(pos, 0, ...values);
413
+ if (style !== "n") {
414
+ // copy over the styles
415
+ for (let i = 0; i < values.length; i++) {
416
+ if (style[0] === "o" && this.findRow(values.length + pos + i) !== undefined) {
417
+ this._copyStyle(values.length + pos + i, pos + i, style[1] === "+");
418
+ }
419
+ else if (style[0] === "i" && this.findRow(pos - 1) !== undefined) {
420
+ this._copyStyle(pos - 1, pos + i, style[1] === "+");
421
+ }
422
+ }
423
+ }
424
+ return this.getRows(pos, values.length);
425
+ }
426
+ // set row at position to same style as of either pervious row (option 'i') or next row (option 'o')
427
+ _setStyleOption(pos, style = "n") {
428
+ if (style[0] === "o" && this.findRow(pos + 1) !== undefined) {
429
+ this._copyStyle(pos + 1, pos, style[1] === "+");
430
+ }
431
+ else if (style[0] === "i" && this.findRow(pos - 1) !== undefined) {
432
+ this._copyStyle(pos - 1, pos, style[1] === "+");
433
+ }
434
+ }
435
+ _copyStyle(src, dest, styleEmpty = false) {
436
+ const rSrc = this.getRow(src);
437
+ const rDst = this.getRow(dest);
438
+ rDst.style = copyStyle(rSrc.style);
439
+ rSrc.eachCell({ includeEmpty: styleEmpty }, (cell, colNumber) => {
440
+ rDst.getCell(colNumber).style = copyStyle(cell.style);
441
+ });
442
+ rDst.height = rSrc.height;
443
+ }
444
+ /**
445
+ * Duplicate rows and insert new rows
446
+ */
447
+ duplicateRow(rowNum, count, insert = false) {
448
+ // create count duplicates of rowNum
449
+ // either inserting new or overwriting existing rows
450
+ const rSrc = this._rows[rowNum - 1];
451
+ const inserts = Array.from({ length: count }).fill(rSrc.values);
452
+ this.spliceRows(rowNum + 1, insert ? 0 : count, ...inserts);
453
+ // now copy styles...
454
+ for (let i = 0; i < count; i++) {
455
+ const rDst = this._rows[rowNum + i];
456
+ rDst.style = rSrc.style;
457
+ rDst.height = rSrc.height;
458
+ rSrc.eachCell({ includeEmpty: true }, (cell, colNumber) => {
459
+ rDst.getCell(colNumber).style = cell.style;
460
+ });
461
+ }
462
+ }
463
+ /**
464
+ * Cut one or more rows (rows below are shifted up)
465
+ * and optionally insert more
466
+ *
467
+ * Known limitation: If a splice causes any merged cells to move, the results may be unpredictable
468
+ */
469
+ spliceRows(start, count, ...inserts) {
470
+ // same problem as row.splice, except worse.
471
+ const nKeep = start + count;
472
+ const nInserts = inserts.length;
473
+ const nExpand = nInserts - count;
474
+ const nEnd = this._rows.length;
475
+ let i;
476
+ let rSrc;
477
+ if (nExpand < 0) {
478
+ // remove rows
479
+ if (start === nEnd) {
480
+ this._rows[nEnd - 1] = undefined;
481
+ }
482
+ for (i = nKeep; i <= nEnd; i++) {
483
+ rSrc = this._rows[i - 1];
484
+ if (rSrc) {
485
+ const rDst = this.getRow(i + nExpand);
486
+ rDst.values = rSrc.values;
487
+ rDst.style = rSrc.style;
488
+ rDst.height = rSrc.height;
489
+ rSrc.eachCell({ includeEmpty: true }, (cell, colNumber) => {
490
+ rDst.getCell(colNumber).style = cell.style;
491
+ });
492
+ this._rows[i - 1] = undefined;
493
+ }
494
+ else {
495
+ this._rows[i + nExpand - 1] = undefined;
496
+ }
497
+ }
498
+ }
499
+ else if (nExpand > 0) {
500
+ // insert new cells
501
+ for (i = nEnd; i >= nKeep; i--) {
502
+ rSrc = this._rows[i - 1];
503
+ if (rSrc) {
504
+ const rDst = this.getRow(i + nExpand);
505
+ rDst.values = rSrc.values;
506
+ rDst.style = rSrc.style;
507
+ rDst.height = rSrc.height;
508
+ rSrc.eachCell({ includeEmpty: true }, (cell, colNumber) => {
509
+ rDst.getCell(colNumber).style = cell.style;
510
+ // remerge cells accounting for insert offset
511
+ if (cell.type === Enums.ValueType.Merge) {
512
+ const cellToBeMerged = this.getRow(cell.row + nInserts).getCell(colNumber);
513
+ const prevMaster = cell.master;
514
+ const newMaster = this.getRow(prevMaster.row + nInserts).getCell(prevMaster.col);
515
+ cellToBeMerged.merge(newMaster);
516
+ }
517
+ });
518
+ }
519
+ else {
520
+ this._rows[i + nExpand - 1] = undefined;
521
+ }
522
+ }
523
+ }
524
+ // now copy over the new values
525
+ for (i = 0; i < nInserts; i++) {
526
+ const rDst = this.getRow(start + i);
527
+ rDst.style = {};
528
+ rDst.values = inserts[i];
529
+ }
530
+ // account for defined names
531
+ this.workbook.definedNames.spliceRows(this.name, start, count, nInserts);
532
+ }
533
+ eachRow(optOrCallback, maybeCallback) {
534
+ let options;
535
+ let callback;
536
+ if (typeof optOrCallback === "function") {
537
+ callback = optOrCallback;
538
+ }
539
+ else {
540
+ options = optOrCallback;
541
+ callback = maybeCallback;
542
+ }
543
+ if (options && options.includeEmpty) {
544
+ const n = this._rows.length;
545
+ for (let i = 1; i <= n; i++) {
546
+ callback(this.getRow(i), i);
547
+ }
548
+ }
549
+ else {
550
+ this._rows.forEach(row => {
551
+ if (row && row.hasValues) {
552
+ callback(row, row.number);
553
+ }
554
+ });
555
+ }
556
+ }
557
+ /**
558
+ * Return all rows as sparse array
559
+ */
560
+ getSheetValues() {
561
+ const rows = [];
562
+ this._rows.forEach(row => {
563
+ if (row) {
564
+ rows[row.number] = row.values;
565
+ }
566
+ });
567
+ return rows;
568
+ }
569
+ // =========================================================================
570
+ // Cells
571
+ /**
572
+ * Returns the cell at [r,c] or address given by r. If not found, return undefined
573
+ */
574
+ findCell(r, c) {
575
+ const address = colCache.getAddress(r, c);
576
+ const row = this._rows[address.row - 1];
577
+ return row ? row.findCell(address.col) : undefined;
578
+ }
579
+ /**
580
+ * Get or create cell at [r,c] or address given by r
581
+ */
582
+ getCell(r, c) {
583
+ const address = colCache.getAddress(r, c);
584
+ const row = this.getRow(address.row);
585
+ return row.getCellEx(address);
586
+ }
587
+ // =========================================================================
588
+ // Merge
589
+ /**
590
+ * Merge cells, either:
591
+ *
592
+ * tlbr string, e.g. `'A4:B5'`
593
+ *
594
+ * tl string, br string, e.g. `'G10', 'H11'`
595
+ *
596
+ * t, l, b, r numbers, e.g. `10,11,12,13`
597
+ */
598
+ mergeCells(...cells) {
599
+ const dimensions = new Range(cells);
600
+ this._mergeCellsInternal(dimensions);
601
+ }
602
+ mergeCellsWithoutStyle(...cells) {
603
+ const dimensions = new Range(cells);
604
+ this._mergeCellsInternal(dimensions, true);
605
+ }
606
+ _mergeCellsInternal(dimensions, ignoreStyle) {
607
+ // check cells aren't already merged
608
+ Object.values(this._merges).forEach((merge) => {
609
+ if (merge.intersects(dimensions)) {
610
+ throw new Error("Cannot merge already merged cells");
611
+ }
612
+ });
613
+ // apply merge
614
+ const master = this.getCell(dimensions.top, dimensions.left);
615
+ for (let i = dimensions.top; i <= dimensions.bottom; i++) {
616
+ for (let j = dimensions.left; j <= dimensions.right; j++) {
617
+ // merge all but the master cell
618
+ if (i > dimensions.top || j > dimensions.left) {
619
+ this.getCell(i, j).merge(master, ignoreStyle);
620
+ }
621
+ }
622
+ }
623
+ // index merge
624
+ this._merges[master.address] = dimensions;
625
+ }
626
+ _unMergeMaster(master) {
627
+ // master is always top left of a rectangle
628
+ const merge = this._merges[master.address];
629
+ if (merge) {
630
+ for (let i = merge.top; i <= merge.bottom; i++) {
631
+ for (let j = merge.left; j <= merge.right; j++) {
632
+ this.getCell(i, j).unmerge();
633
+ }
634
+ }
635
+ delete this._merges[master.address];
636
+ }
637
+ }
638
+ get hasMerges() {
639
+ // return true if this._merges has a merge object
640
+ return Object.values(this._merges).some(Boolean);
641
+ }
642
+ /**
643
+ * Scan the range and if any cell is part of a merge, un-merge the group.
644
+ * Note this function can affect multiple merges and merge-blocks are
645
+ * atomic - either they're all merged or all un-merged.
646
+ */
647
+ unMergeCells(...cells) {
648
+ const dimensions = new Range(cells);
649
+ // find any cells in that range and unmerge them
650
+ for (let i = dimensions.top; i <= dimensions.bottom; i++) {
651
+ for (let j = dimensions.left; j <= dimensions.right; j++) {
652
+ const cell = this.findCell(i, j);
653
+ if (cell) {
654
+ if (cell.type === Enums.ValueType.Merge) {
655
+ // this cell merges to another master
656
+ this._unMergeMaster(cell.master);
657
+ }
658
+ else if (this._merges[cell.address]) {
659
+ // this cell is a master
660
+ this._unMergeMaster(cell);
661
+ }
662
+ }
663
+ }
664
+ }
665
+ }
666
+ // ===========================================================================
667
+ // Shared/Array Formula
668
+ fillFormula(range, formula, results, shareType = "shared") {
669
+ // Define formula for top-left cell and share to rest
670
+ const decoded = colCache.decode(range);
671
+ const { top, left, bottom, right } = decoded;
672
+ const width = right - left + 1;
673
+ const masterAddress = colCache.encodeAddress(top, left);
674
+ const isShared = shareType === "shared";
675
+ // work out result accessor
676
+ let getResult;
677
+ if (typeof results === "function") {
678
+ getResult = results;
679
+ }
680
+ else if (Array.isArray(results)) {
681
+ if (Array.isArray(results[0])) {
682
+ getResult = (row, col) => results[row - top][col - left];
683
+ }
684
+ else {
685
+ getResult = (row, col) => results[(row - top) * width + (col - left)];
686
+ }
687
+ }
688
+ else {
689
+ getResult = () => undefined;
690
+ }
691
+ let first = true;
692
+ for (let r = top; r <= bottom; r++) {
693
+ for (let c = left; c <= right; c++) {
694
+ if (first) {
695
+ const cell = this.getCell(r, c);
696
+ const formulaValue = {
697
+ shareType,
698
+ formula,
699
+ ref: range,
700
+ result: getResult(r, c)
701
+ };
702
+ cell.value = formulaValue;
703
+ first = false;
704
+ }
705
+ else {
706
+ this.getCell(r, c).value = isShared
707
+ ? {
708
+ sharedFormula: masterAddress,
709
+ result: getResult(r, c)
710
+ }
711
+ : getResult(r, c);
712
+ }
713
+ }
714
+ }
715
+ }
716
+ // =========================================================================
717
+ // Images
718
+ /**
719
+ * Using the image id from `Workbook.addImage`,
720
+ * embed an image within the worksheet to cover a range
721
+ */
722
+ addImage(imageId, range) {
723
+ const model = {
724
+ type: "image",
725
+ imageId: String(imageId),
726
+ range
727
+ };
728
+ this._media.push(new Image(this, model));
729
+ }
730
+ getImages() {
731
+ return this._media.filter(m => m.type === "image");
732
+ }
733
+ /**
734
+ * Using the image id from `Workbook.addImage`, set the background to the worksheet
735
+ */
736
+ addBackgroundImage(imageId) {
737
+ const model = {
738
+ type: "background",
739
+ imageId: String(imageId)
740
+ };
741
+ this._media.push(new Image(this, model));
742
+ }
743
+ getBackgroundImageId() {
744
+ const image = this._media.find(m => m.type === "background");
745
+ return image && image.imageId;
746
+ }
747
+ // =========================================================================
748
+ // Worksheet Protection
749
+ /**
750
+ * Protect the worksheet with optional password and options
751
+ */
752
+ async protect(password, options) {
753
+ this.sheetProtection = {
754
+ sheet: true
755
+ };
756
+ if (options && "spinCount" in options) {
757
+ // force spinCount to be integer >= 0
758
+ options.spinCount = Number.isFinite(options.spinCount)
759
+ ? Math.round(Math.max(0, options.spinCount))
760
+ : 100000;
761
+ }
762
+ if (password) {
763
+ this.sheetProtection.algorithmName = "SHA-512";
764
+ this.sheetProtection.saltValue = uint8ArrayToBase64(Encryptor.randomBytes(16));
765
+ this.sheetProtection.spinCount =
766
+ options && "spinCount" in options ? options.spinCount : 100000; // allow user specified spinCount
767
+ this.sheetProtection.hashValue = await Encryptor.convertPasswordToHash(password, "SHA-512", this.sheetProtection.saltValue, this.sheetProtection.spinCount);
768
+ }
769
+ if (options) {
770
+ this.sheetProtection = Object.assign(this.sheetProtection, options);
771
+ if (!password && "spinCount" in options) {
772
+ delete this.sheetProtection.spinCount;
773
+ }
774
+ }
775
+ }
776
+ unprotect() {
777
+ this.sheetProtection = null;
778
+ }
779
+ // =========================================================================
780
+ // Tables
781
+ /**
782
+ * Add a new table and return a reference to it
783
+ */
784
+ addTable(model) {
785
+ const table = new Table(this, model);
786
+ this.tables[model.name] = table;
787
+ return table;
788
+ }
789
+ /**
790
+ * Fetch table by name
791
+ */
792
+ getTable(name) {
793
+ return this.tables[name];
794
+ }
795
+ /**
796
+ * Delete table by name
797
+ */
798
+ removeTable(name) {
799
+ delete this.tables[name];
800
+ }
801
+ /**
802
+ * Fetch all tables in the worksheet
803
+ */
804
+ getTables() {
805
+ return Object.values(this.tables);
806
+ }
807
+ // =========================================================================
808
+ // Pivot Tables
809
+ addPivotTable(model) {
810
+ const pivotTable = makePivotTable(this, model);
811
+ this.pivotTables.push(pivotTable);
812
+ this.workbook.pivotTables.push(pivotTable);
813
+ return pivotTable;
814
+ }
815
+ // ===========================================================================
816
+ // Conditional Formatting
817
+ /**
818
+ * Add conditional formatting rules
819
+ */
820
+ addConditionalFormatting(cf) {
821
+ this.conditionalFormattings.push(cf);
822
+ }
823
+ /**
824
+ * Delete conditional formatting rules
825
+ */
826
+ removeConditionalFormatting(filter) {
827
+ if (typeof filter === "number") {
828
+ this.conditionalFormattings.splice(filter, 1);
829
+ }
830
+ else if (filter instanceof Function) {
831
+ this.conditionalFormattings = this.conditionalFormattings.filter(filter);
832
+ }
833
+ else {
834
+ this.conditionalFormattings = [];
835
+ }
836
+ }
837
+ // ===========================================================================
838
+ // Model
839
+ get model() {
840
+ const model = {
841
+ id: this.id,
842
+ name: this.name,
843
+ dataValidations: this.dataValidations.model,
844
+ properties: this.properties,
845
+ state: this.state,
846
+ pageSetup: this.pageSetup,
847
+ headerFooter: this.headerFooter,
848
+ rowBreaks: this.rowBreaks,
849
+ colBreaks: this.colBreaks,
850
+ views: this.views,
851
+ autoFilter: this.autoFilter,
852
+ media: this._media.map(medium => medium.model),
853
+ sheetProtection: this.sheetProtection,
854
+ tables: Object.values(this.tables).map(table => table.model),
855
+ pivotTables: this.pivotTables,
856
+ conditionalFormattings: this.conditionalFormattings
857
+ };
858
+ // =================================================
859
+ // columns
860
+ model.cols = Column.toModel(this.columns || []);
861
+ // ==========================================================
862
+ // Rows
863
+ const rows = (model.rows = []);
864
+ const dimensions = (model.dimensions = new Range());
865
+ this._rows.forEach(row => {
866
+ const rowModel = row && row.model;
867
+ if (rowModel) {
868
+ dimensions.expand(rowModel.number, rowModel.min, rowModel.number, rowModel.max);
869
+ rows.push(rowModel);
870
+ }
871
+ });
872
+ // ==========================================================
873
+ // Merges
874
+ model.merges = [];
875
+ Object.values(this._merges).forEach((merge) => {
876
+ model.merges.push(merge.range);
877
+ });
878
+ return model;
879
+ }
880
+ _parseRows(model) {
881
+ this._rows = [];
882
+ if (model.rows) {
883
+ model.rows.forEach(rowModel => {
884
+ const row = new Row(this, rowModel.number);
885
+ this._rows[row.number - 1] = row;
886
+ row.model = rowModel;
887
+ });
888
+ }
889
+ }
890
+ _parseMergeCells(model) {
891
+ if (model.mergeCells) {
892
+ model.mergeCells.forEach((merge) => {
893
+ // Do not merge styles when importing an Excel file
894
+ // since each cell may have different styles intentionally.
895
+ this.mergeCellsWithoutStyle(merge);
896
+ });
897
+ }
898
+ }
899
+ set model(value) {
900
+ this.name = value.name;
901
+ this._columns = Column.fromModel(this, value.cols);
902
+ this._parseRows(value);
903
+ this._parseMergeCells(value);
904
+ this.dataValidations = new DataValidations(value.dataValidations);
905
+ this.properties = value.properties;
906
+ this.pageSetup = value.pageSetup;
907
+ this.headerFooter = value.headerFooter;
908
+ this.rowBreaks = value.rowBreaks || [];
909
+ this.colBreaks = value.colBreaks || [];
910
+ this.views = value.views;
911
+ this.autoFilter = value.autoFilter;
912
+ this._media = value.media.map(medium => new Image(this, medium));
913
+ this.sheetProtection = value.sheetProtection;
914
+ this.tables = value.tables.reduce((tables, table) => {
915
+ const t = new Table(this, table);
916
+ t.model = table;
917
+ tables[table.name] = t;
918
+ return tables;
919
+ }, {});
920
+ this.pivotTables = value.pivotTables;
921
+ this.conditionalFormattings = value.conditionalFormattings;
922
+ }
923
+ }
924
+ export { Worksheet };