@cj-tech-master/excelts 1.6.2 → 1.6.3-canary.20251224124621.73c5d94

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 (382) hide show
  1. package/README.md +36 -4
  2. package/README_zh.md +37 -6
  3. package/dist/browser/excelts.esm.js +19115 -0
  4. package/dist/browser/excelts.esm.js.map +1 -0
  5. package/dist/browser/excelts.esm.min.js +127 -0
  6. package/dist/browser/excelts.iife.js +13576 -46968
  7. package/dist/browser/excelts.iife.js.map +1 -1
  8. package/dist/browser/excelts.iife.min.js +25 -105
  9. package/dist/cjs/csv/csv-core.js +701 -0
  10. package/dist/cjs/csv/csv-stream.js +646 -0
  11. package/dist/cjs/csv/csv.base.js +154 -0
  12. package/dist/cjs/csv/csv.browser.js +68 -0
  13. package/dist/cjs/csv/csv.js +226 -162
  14. package/dist/cjs/doc/anchor.js +2 -2
  15. package/dist/cjs/doc/cell.js +22 -22
  16. package/dist/cjs/doc/column.js +7 -7
  17. package/dist/cjs/doc/data-validations.js +3 -3
  18. package/dist/cjs/doc/defined-names.js +13 -13
  19. package/dist/cjs/doc/image.js +7 -7
  20. package/dist/cjs/doc/modelcontainer.js +2 -2
  21. package/dist/cjs/doc/note.js +2 -2
  22. package/dist/cjs/doc/pivot-table.js +5 -5
  23. package/dist/cjs/doc/range.js +11 -11
  24. package/dist/cjs/doc/row.js +16 -16
  25. package/dist/cjs/doc/table.js +5 -5
  26. package/dist/cjs/doc/workbook.base.js +211 -0
  27. package/dist/cjs/doc/workbook.browser.js +62 -0
  28. package/dist/cjs/doc/workbook.js +68 -179
  29. package/dist/cjs/doc/worksheet.js +41 -41
  30. package/dist/cjs/index.js +49 -32
  31. package/dist/cjs/stream/xlsx/hyperlink-reader.js +6 -6
  32. package/dist/cjs/stream/xlsx/sheet-comments-writer.js +12 -12
  33. package/dist/cjs/stream/xlsx/sheet-rels-writer.js +4 -4
  34. package/dist/cjs/stream/xlsx/workbook-reader.js +29 -26
  35. package/dist/cjs/stream/xlsx/workbook-writer.js +71 -57
  36. package/dist/cjs/stream/xlsx/worksheet-reader.js +27 -23
  37. package/dist/cjs/stream/xlsx/worksheet-writer.js +72 -66
  38. package/dist/cjs/utils/browser-buffer.js +75 -0
  39. package/dist/cjs/utils/cell-format.js +2 -2
  40. package/dist/cjs/utils/cell-matrix.js +5 -5
  41. package/dist/cjs/utils/encryptor.browser.js +240 -0
  42. package/dist/cjs/utils/parse-sax.js +2 -2
  43. package/dist/cjs/utils/shared-formula.js +5 -5
  44. package/dist/cjs/utils/sheet-utils.js +13 -13
  45. package/dist/cjs/utils/stream-buf.browser.js +355 -0
  46. package/dist/cjs/utils/stream-buf.js +5 -5
  47. package/dist/cjs/utils/unzip/extract.js +11 -11
  48. package/dist/cjs/utils/unzip/index.js +21 -21
  49. package/dist/cjs/utils/unzip/parse-extra-field.js +3 -3
  50. package/dist/cjs/utils/unzip/parse.js +16 -16
  51. package/dist/cjs/utils/unzip/zip-parser.js +3 -3
  52. package/dist/cjs/utils/utils.base.js +161 -0
  53. package/dist/cjs/utils/utils.browser.js +89 -0
  54. package/dist/cjs/utils/utils.js +46 -154
  55. package/dist/cjs/utils/xml-stream.js +3 -3
  56. package/dist/cjs/utils/zip/compress.base.js +85 -0
  57. package/dist/cjs/utils/zip/compress.browser.js +83 -0
  58. package/dist/cjs/utils/zip/compress.js +18 -198
  59. package/dist/cjs/utils/zip/crc32.browser.js +88 -0
  60. package/dist/cjs/utils/zip/index.js +17 -17
  61. package/dist/cjs/utils/zip/zip-builder.js +10 -10
  62. package/dist/cjs/utils/zip-stream.browser.js +135 -0
  63. package/dist/cjs/utils/zip-stream.js +4 -4
  64. package/dist/cjs/xlsx/xform/base-xform.js +4 -4
  65. package/dist/cjs/xlsx/xform/book/defined-name-xform.js +4 -4
  66. package/dist/cjs/xlsx/xform/book/sheet-xform.js +4 -4
  67. package/dist/cjs/xlsx/xform/book/workbook-calc-properties-xform.js +2 -2
  68. package/dist/cjs/xlsx/xform/book/workbook-pivot-cache-xform.js +2 -2
  69. package/dist/cjs/xlsx/xform/book/workbook-properties-xform.js +2 -2
  70. package/dist/cjs/xlsx/xform/book/workbook-view-xform.js +2 -2
  71. package/dist/cjs/xlsx/xform/book/workbook-xform.js +24 -24
  72. package/dist/cjs/xlsx/xform/comment/comment-xform.js +4 -4
  73. package/dist/cjs/xlsx/xform/comment/comments-xform.js +6 -6
  74. package/dist/cjs/xlsx/xform/comment/style/vml-position-xform.js +2 -2
  75. package/dist/cjs/xlsx/xform/comment/style/vml-protection-xform.js +2 -2
  76. package/dist/cjs/xlsx/xform/comment/vml-anchor-xform.js +2 -2
  77. package/dist/cjs/xlsx/xform/comment/vml-client-data-xform.js +10 -10
  78. package/dist/cjs/xlsx/xform/comment/vml-notes-xform.js +6 -6
  79. package/dist/cjs/xlsx/xform/comment/vml-shape-xform.js +6 -6
  80. package/dist/cjs/xlsx/xform/comment/vml-textbox-xform.js +2 -2
  81. package/dist/cjs/xlsx/xform/composite-xform.js +2 -2
  82. package/dist/cjs/xlsx/xform/core/app-heading-pairs-xform.js +2 -2
  83. package/dist/cjs/xlsx/xform/core/app-titles-of-parts-xform.js +2 -2
  84. package/dist/cjs/xlsx/xform/core/app-xform.js +11 -11
  85. package/dist/cjs/xlsx/xform/core/content-types-xform.js +4 -4
  86. package/dist/cjs/xlsx/xform/core/core-xform.js +23 -23
  87. package/dist/cjs/xlsx/xform/core/relationship-xform.js +2 -2
  88. package/dist/cjs/xlsx/xform/core/relationships-xform.js +6 -6
  89. package/dist/cjs/xlsx/xform/drawing/base-cell-anchor-xform.js +2 -2
  90. package/dist/cjs/xlsx/xform/drawing/blip-fill-xform.js +4 -4
  91. package/dist/cjs/xlsx/xform/drawing/blip-xform.js +2 -2
  92. package/dist/cjs/xlsx/xform/drawing/c-nv-pic-pr-xform.js +2 -2
  93. package/dist/cjs/xlsx/xform/drawing/c-nv-pr-xform.js +6 -6
  94. package/dist/cjs/xlsx/xform/drawing/cell-position-xform.js +7 -7
  95. package/dist/cjs/xlsx/xform/drawing/drawing-xform.js +10 -10
  96. package/dist/cjs/xlsx/xform/drawing/ext-lst-xform.js +2 -2
  97. package/dist/cjs/xlsx/xform/drawing/ext-xform.js +2 -2
  98. package/dist/cjs/xlsx/xform/drawing/hlink-click-xform.js +2 -2
  99. package/dist/cjs/xlsx/xform/drawing/nv-pic-pr-xform.js +6 -6
  100. package/dist/cjs/xlsx/xform/drawing/one-cell-anchor-xform.js +10 -10
  101. package/dist/cjs/xlsx/xform/drawing/pic-xform.js +9 -9
  102. package/dist/cjs/xlsx/xform/drawing/two-cell-anchor-xform.js +9 -9
  103. package/dist/cjs/xlsx/xform/list-xform.js +2 -2
  104. package/dist/cjs/xlsx/xform/pivot-table/cache-field-xform.js +5 -5
  105. package/dist/cjs/xlsx/xform/pivot-table/cache-field.js +3 -3
  106. package/dist/cjs/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +10 -10
  107. package/dist/cjs/xlsx/xform/pivot-table/pivot-cache-records-xform.js +9 -9
  108. package/dist/cjs/xlsx/xform/pivot-table/pivot-table-xform.js +10 -11
  109. package/dist/cjs/xlsx/xform/sheet/auto-filter-xform.js +4 -4
  110. package/dist/cjs/xlsx/xform/sheet/cell-xform.js +65 -65
  111. package/dist/cjs/xlsx/xform/sheet/cf/cf-rule-xform.js +27 -27
  112. package/dist/cjs/xlsx/xform/sheet/cf/cfvo-xform.js +3 -3
  113. package/dist/cjs/xlsx/xform/sheet/cf/color-scale-xform.js +6 -6
  114. package/dist/cjs/xlsx/xform/sheet/cf/conditional-formatting-xform.js +6 -6
  115. package/dist/cjs/xlsx/xform/sheet/cf/conditional-formattings-xform.js +4 -4
  116. package/dist/cjs/xlsx/xform/sheet/cf/databar-xform.js +6 -6
  117. package/dist/cjs/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +5 -5
  118. package/dist/cjs/xlsx/xform/sheet/cf/formula-xform.js +2 -2
  119. package/dist/cjs/xlsx/xform/sheet/cf/icon-set-xform.js +11 -11
  120. package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +3 -3
  121. package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +11 -12
  122. package/dist/cjs/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +4 -4
  123. package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +8 -8
  124. package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +6 -6
  125. package/dist/cjs/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +26 -26
  126. package/dist/cjs/xlsx/xform/sheet/cf-ext/f-ext-xform.js +2 -2
  127. package/dist/cjs/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +14 -14
  128. package/dist/cjs/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +2 -2
  129. package/dist/cjs/xlsx/xform/sheet/col-xform.js +6 -6
  130. package/dist/cjs/xlsx/xform/sheet/data-validations-xform.js +18 -18
  131. package/dist/cjs/xlsx/xform/sheet/dimension-xform.js +2 -2
  132. package/dist/cjs/xlsx/xform/sheet/drawing-xform.js +2 -2
  133. package/dist/cjs/xlsx/xform/sheet/ext-lst-xform.js +5 -5
  134. package/dist/cjs/xlsx/xform/sheet/header-footer-xform.js +2 -2
  135. package/dist/cjs/xlsx/xform/sheet/hyperlink-xform.js +2 -2
  136. package/dist/cjs/xlsx/xform/sheet/merge-cell-xform.js +2 -2
  137. package/dist/cjs/xlsx/xform/sheet/merges.js +8 -8
  138. package/dist/cjs/xlsx/xform/sheet/outline-properties-xform.js +2 -2
  139. package/dist/cjs/xlsx/xform/sheet/page-breaks-xform.js +2 -2
  140. package/dist/cjs/xlsx/xform/sheet/page-margins-xform.js +2 -2
  141. package/dist/cjs/xlsx/xform/sheet/page-setup-properties-xform.js +2 -2
  142. package/dist/cjs/xlsx/xform/sheet/page-setup-xform.js +2 -2
  143. package/dist/cjs/xlsx/xform/sheet/picture-xform.js +2 -2
  144. package/dist/cjs/xlsx/xform/sheet/print-options-xform.js +2 -2
  145. package/dist/cjs/xlsx/xform/sheet/row-breaks-xform.js +4 -4
  146. package/dist/cjs/xlsx/xform/sheet/row-xform.js +11 -11
  147. package/dist/cjs/xlsx/xform/sheet/sheet-format-properties-xform.js +2 -2
  148. package/dist/cjs/xlsx/xform/sheet/sheet-properties-xform.js +8 -8
  149. package/dist/cjs/xlsx/xform/sheet/sheet-protection-xform.js +2 -2
  150. package/dist/cjs/xlsx/xform/sheet/sheet-view-xform.js +4 -4
  151. package/dist/cjs/xlsx/xform/sheet/table-part-xform.js +2 -2
  152. package/dist/cjs/xlsx/xform/sheet/worksheet-xform.js +68 -68
  153. package/dist/cjs/xlsx/xform/simple/boolean-xform.js +2 -2
  154. package/dist/cjs/xlsx/xform/simple/date-xform.js +2 -2
  155. package/dist/cjs/xlsx/xform/simple/float-xform.js +2 -2
  156. package/dist/cjs/xlsx/xform/simple/integer-xform.js +2 -2
  157. package/dist/cjs/xlsx/xform/simple/string-xform.js +2 -2
  158. package/dist/cjs/xlsx/xform/static-xform.js +4 -4
  159. package/dist/cjs/xlsx/xform/strings/phonetic-text-xform.js +6 -6
  160. package/dist/cjs/xlsx/xform/strings/rich-text-xform.js +6 -6
  161. package/dist/cjs/xlsx/xform/strings/shared-string-xform.js +8 -8
  162. package/dist/cjs/xlsx/xform/strings/shared-strings-xform.js +6 -6
  163. package/dist/cjs/xlsx/xform/strings/text-xform.js +2 -2
  164. package/dist/cjs/xlsx/xform/style/alignment-xform.js +8 -8
  165. package/dist/cjs/xlsx/xform/style/border-xform.js +8 -8
  166. package/dist/cjs/xlsx/xform/style/color-xform.js +2 -2
  167. package/dist/cjs/xlsx/xform/style/dxf-xform.js +14 -14
  168. package/dist/cjs/xlsx/xform/style/fill-xform.js +9 -9
  169. package/dist/cjs/xlsx/xform/style/font-xform.js +22 -22
  170. package/dist/cjs/xlsx/xform/style/numfmt-xform.js +5 -5
  171. package/dist/cjs/xlsx/xform/style/protection-xform.js +2 -2
  172. package/dist/cjs/xlsx/xform/style/style-xform.js +6 -6
  173. package/dist/cjs/xlsx/xform/style/styles-xform.js +39 -39
  174. package/dist/cjs/xlsx/xform/style/underline-xform.js +2 -2
  175. package/dist/cjs/xlsx/xform/table/auto-filter-xform.js +4 -4
  176. package/dist/cjs/xlsx/xform/table/custom-filter-xform.js +2 -2
  177. package/dist/cjs/xlsx/xform/table/filter-column-xform.js +9 -9
  178. package/dist/cjs/xlsx/xform/table/filter-xform.js +2 -2
  179. package/dist/cjs/xlsx/xform/table/table-column-xform.js +2 -2
  180. package/dist/cjs/xlsx/xform/table/table-style-info-xform.js +2 -2
  181. package/dist/cjs/xlsx/xform/table/table-xform.js +12 -12
  182. package/dist/cjs/xlsx/xlsx.base.js +742 -0
  183. package/dist/cjs/xlsx/xlsx.browser.js +205 -0
  184. package/dist/cjs/xlsx/xlsx.js +91 -833
  185. package/dist/esm/csv/csv-core.js +694 -0
  186. package/dist/esm/csv/csv-stream.js +638 -0
  187. package/dist/esm/csv/csv.base.js +141 -0
  188. package/dist/esm/csv/csv.browser.js +65 -0
  189. package/dist/esm/csv/csv.js +189 -159
  190. package/dist/esm/doc/workbook.base.js +207 -0
  191. package/dist/esm/doc/workbook.browser.js +59 -0
  192. package/dist/esm/doc/workbook.js +64 -175
  193. package/dist/esm/index.browser.js +33 -1
  194. package/dist/esm/index.js +23 -8
  195. package/dist/esm/local.js +0 -1
  196. package/dist/esm/stream/xlsx/hyperlink-reader.js +1 -1
  197. package/dist/esm/stream/xlsx/workbook-reader.js +7 -4
  198. package/dist/esm/stream/xlsx/workbook-writer.js +37 -23
  199. package/dist/esm/stream/xlsx/worksheet-reader.js +12 -8
  200. package/dist/esm/stream/xlsx/worksheet-writer.js +12 -6
  201. package/dist/esm/utils/browser-buffer.js +67 -0
  202. package/dist/esm/utils/encryptor.browser.js +237 -0
  203. package/dist/esm/utils/stream-buf.browser.js +352 -0
  204. package/dist/esm/utils/utils.base.js +142 -0
  205. package/dist/esm/utils/utils.browser.js +68 -0
  206. package/dist/esm/utils/utils.js +15 -123
  207. package/dist/esm/utils/zip/compress.base.js +80 -0
  208. package/dist/esm/utils/zip/compress.browser.js +76 -0
  209. package/dist/esm/utils/zip/compress.js +16 -164
  210. package/dist/esm/utils/zip/crc32.browser.js +82 -0
  211. package/dist/esm/utils/zip-stream.browser.js +132 -0
  212. package/dist/esm/xlsx/xform/pivot-table/pivot-table-xform.js +2 -3
  213. package/dist/esm/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +2 -3
  214. package/dist/esm/xlsx/xlsx.base.js +739 -0
  215. package/dist/esm/xlsx/xlsx.browser.js +202 -0
  216. package/dist/esm/xlsx/xlsx.js +87 -829
  217. package/dist/types/csv/csv-core.d.ts +207 -0
  218. package/dist/types/csv/csv-stream.d.ts +114 -0
  219. package/dist/types/csv/csv.base.d.ts +61 -0
  220. package/dist/types/csv/csv.browser.d.ts +33 -0
  221. package/dist/types/csv/csv.d.ts +97 -71
  222. package/dist/types/doc/anchor.d.ts +1 -1
  223. package/dist/types/doc/cell.d.ts +7 -7
  224. package/dist/types/doc/column.d.ts +3 -3
  225. package/dist/types/doc/defined-names.d.ts +4 -4
  226. package/dist/types/doc/image.d.ts +2 -2
  227. package/dist/types/doc/modelcontainer.d.ts +1 -1
  228. package/dist/types/doc/pivot-table.d.ts +1 -1
  229. package/dist/types/doc/range.d.ts +1 -1
  230. package/dist/types/doc/row.d.ts +3 -3
  231. package/dist/types/doc/table.d.ts +4 -4
  232. package/dist/types/doc/workbook.base.d.ts +111 -0
  233. package/dist/types/doc/workbook.browser.d.ts +38 -0
  234. package/dist/types/doc/workbook.d.ts +62 -92
  235. package/dist/types/doc/worksheet.d.ts +10 -10
  236. package/dist/types/index.browser.d.ts +19 -5
  237. package/dist/types/index.d.ts +24 -20
  238. package/dist/types/local.d.ts +0 -1
  239. package/dist/types/stream/xlsx/hyperlink-reader.d.ts +11 -11
  240. package/dist/types/stream/xlsx/workbook-reader.d.ts +125 -36
  241. package/dist/types/stream/xlsx/workbook-writer.d.ts +105 -22
  242. package/dist/types/stream/xlsx/worksheet-reader.d.ts +40 -22
  243. package/dist/types/stream/xlsx/worksheet-writer.d.ts +83 -49
  244. package/dist/types/types.d.ts +4 -16
  245. package/dist/types/utils/browser-buffer.d.ts +28 -0
  246. package/dist/types/utils/col-cache.d.ts +1 -1
  247. package/dist/types/utils/encryptor.browser.d.ts +28 -0
  248. package/dist/types/utils/sheet-utils.d.ts +3 -3
  249. package/dist/types/utils/stream-buf.browser.d.ts +41 -0
  250. package/dist/types/utils/unzip/extract.d.ts +6 -6
  251. package/dist/types/utils/unzip/index.d.ts +8 -8
  252. package/dist/types/utils/unzip/parse.d.ts +3 -3
  253. package/dist/types/utils/utils.base.d.ts +29 -0
  254. package/dist/types/utils/utils.browser.d.ts +29 -0
  255. package/dist/types/utils/utils.d.ts +6 -25
  256. package/dist/types/utils/zip/compress.base.d.ts +42 -0
  257. package/dist/types/utils/zip/compress.browser.d.ts +54 -0
  258. package/dist/types/utils/zip/compress.d.ts +13 -45
  259. package/dist/types/utils/zip/crc32.browser.d.ts +52 -0
  260. package/dist/types/utils/zip/index.d.ts +5 -5
  261. package/dist/types/utils/zip/zip-builder.d.ts +1 -1
  262. package/dist/types/utils/zip-stream.browser.d.ts +39 -0
  263. package/dist/types/xlsx/xform/base-xform.d.ts +1 -1
  264. package/dist/types/xlsx/xform/book/defined-name-xform.d.ts +1 -1
  265. package/dist/types/xlsx/xform/book/sheet-xform.d.ts +1 -1
  266. package/dist/types/xlsx/xform/book/workbook-calc-properties-xform.d.ts +1 -1
  267. package/dist/types/xlsx/xform/book/workbook-pivot-cache-xform.d.ts +1 -1
  268. package/dist/types/xlsx/xform/book/workbook-properties-xform.d.ts +1 -1
  269. package/dist/types/xlsx/xform/book/workbook-view-xform.d.ts +1 -1
  270. package/dist/types/xlsx/xform/book/workbook-xform.d.ts +2 -2
  271. package/dist/types/xlsx/xform/comment/comment-xform.d.ts +2 -2
  272. package/dist/types/xlsx/xform/comment/comments-xform.d.ts +2 -2
  273. package/dist/types/xlsx/xform/comment/style/vml-position-xform.d.ts +1 -1
  274. package/dist/types/xlsx/xform/comment/style/vml-protection-xform.d.ts +1 -1
  275. package/dist/types/xlsx/xform/comment/vml-anchor-xform.d.ts +1 -1
  276. package/dist/types/xlsx/xform/comment/vml-client-data-xform.d.ts +1 -1
  277. package/dist/types/xlsx/xform/comment/vml-notes-xform.d.ts +1 -1
  278. package/dist/types/xlsx/xform/comment/vml-shape-xform.d.ts +1 -1
  279. package/dist/types/xlsx/xform/comment/vml-textbox-xform.d.ts +1 -1
  280. package/dist/types/xlsx/xform/composite-xform.d.ts +1 -1
  281. package/dist/types/xlsx/xform/core/app-heading-pairs-xform.d.ts +1 -1
  282. package/dist/types/xlsx/xform/core/app-titles-of-parts-xform.d.ts +1 -1
  283. package/dist/types/xlsx/xform/core/app-xform.d.ts +1 -1
  284. package/dist/types/xlsx/xform/core/content-types-xform.d.ts +1 -1
  285. package/dist/types/xlsx/xform/core/core-xform.d.ts +1 -1
  286. package/dist/types/xlsx/xform/core/relationship-xform.d.ts +1 -1
  287. package/dist/types/xlsx/xform/core/relationships-xform.d.ts +1 -1
  288. package/dist/types/xlsx/xform/drawing/base-cell-anchor-xform.d.ts +1 -1
  289. package/dist/types/xlsx/xform/drawing/blip-fill-xform.d.ts +2 -2
  290. package/dist/types/xlsx/xform/drawing/blip-xform.d.ts +1 -1
  291. package/dist/types/xlsx/xform/drawing/c-nv-pic-pr-xform.d.ts +1 -1
  292. package/dist/types/xlsx/xform/drawing/c-nv-pr-xform.d.ts +1 -1
  293. package/dist/types/xlsx/xform/drawing/cell-position-xform.d.ts +2 -2
  294. package/dist/types/xlsx/xform/drawing/drawing-xform.d.ts +1 -1
  295. package/dist/types/xlsx/xform/drawing/ext-lst-xform.d.ts +1 -1
  296. package/dist/types/xlsx/xform/drawing/ext-xform.d.ts +1 -1
  297. package/dist/types/xlsx/xform/drawing/hlink-click-xform.d.ts +1 -1
  298. package/dist/types/xlsx/xform/drawing/nv-pic-pr-xform.d.ts +1 -1
  299. package/dist/types/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +1 -1
  300. package/dist/types/xlsx/xform/drawing/pic-xform.d.ts +1 -1
  301. package/dist/types/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +1 -1
  302. package/dist/types/xlsx/xform/list-xform.d.ts +1 -1
  303. package/dist/types/xlsx/xform/pivot-table/cache-field-xform.d.ts +1 -1
  304. package/dist/types/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +3 -3
  305. package/dist/types/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +2 -2
  306. package/dist/types/xlsx/xform/pivot-table/pivot-table-xform.d.ts +1 -1
  307. package/dist/types/xlsx/xform/sheet/auto-filter-xform.d.ts +1 -1
  308. package/dist/types/xlsx/xform/sheet/cell-xform.d.ts +1 -1
  309. package/dist/types/xlsx/xform/sheet/cf/cf-rule-xform.d.ts +6 -6
  310. package/dist/types/xlsx/xform/sheet/cf/cfvo-xform.d.ts +1 -1
  311. package/dist/types/xlsx/xform/sheet/cf/color-scale-xform.d.ts +3 -3
  312. package/dist/types/xlsx/xform/sheet/cf/conditional-formatting-xform.d.ts +1 -1
  313. package/dist/types/xlsx/xform/sheet/cf/conditional-formattings-xform.d.ts +2 -2
  314. package/dist/types/xlsx/xform/sheet/cf/databar-xform.d.ts +3 -3
  315. package/dist/types/xlsx/xform/sheet/cf/ext-lst-ref-xform.d.ts +1 -1
  316. package/dist/types/xlsx/xform/sheet/cf/formula-xform.d.ts +1 -1
  317. package/dist/types/xlsx/xform/sheet/cf/icon-set-xform.d.ts +2 -2
  318. package/dist/types/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.d.ts +1 -1
  319. package/dist/types/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.d.ts +3 -3
  320. package/dist/types/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.d.ts +2 -2
  321. package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.d.ts +3 -3
  322. package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.d.ts +2 -2
  323. package/dist/types/xlsx/xform/sheet/cf-ext/databar-ext-xform.d.ts +3 -3
  324. package/dist/types/xlsx/xform/sheet/cf-ext/f-ext-xform.d.ts +1 -1
  325. package/dist/types/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.d.ts +3 -3
  326. package/dist/types/xlsx/xform/sheet/cf-ext/sqref-ext-xform.d.ts +1 -1
  327. package/dist/types/xlsx/xform/sheet/col-xform.d.ts +1 -1
  328. package/dist/types/xlsx/xform/sheet/data-validations-xform.d.ts +1 -1
  329. package/dist/types/xlsx/xform/sheet/dimension-xform.d.ts +1 -1
  330. package/dist/types/xlsx/xform/sheet/drawing-xform.d.ts +1 -1
  331. package/dist/types/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -1
  332. package/dist/types/xlsx/xform/sheet/header-footer-xform.d.ts +1 -1
  333. package/dist/types/xlsx/xform/sheet/hyperlink-xform.d.ts +1 -1
  334. package/dist/types/xlsx/xform/sheet/merge-cell-xform.d.ts +1 -1
  335. package/dist/types/xlsx/xform/sheet/outline-properties-xform.d.ts +1 -1
  336. package/dist/types/xlsx/xform/sheet/page-breaks-xform.d.ts +1 -1
  337. package/dist/types/xlsx/xform/sheet/page-margins-xform.d.ts +1 -1
  338. package/dist/types/xlsx/xform/sheet/page-setup-properties-xform.d.ts +1 -1
  339. package/dist/types/xlsx/xform/sheet/page-setup-xform.d.ts +1 -1
  340. package/dist/types/xlsx/xform/sheet/picture-xform.d.ts +1 -1
  341. package/dist/types/xlsx/xform/sheet/print-options-xform.d.ts +1 -1
  342. package/dist/types/xlsx/xform/sheet/row-breaks-xform.d.ts +1 -1
  343. package/dist/types/xlsx/xform/sheet/row-xform.d.ts +1 -1
  344. package/dist/types/xlsx/xform/sheet/sheet-format-properties-xform.d.ts +1 -1
  345. package/dist/types/xlsx/xform/sheet/sheet-properties-xform.d.ts +1 -1
  346. package/dist/types/xlsx/xform/sheet/sheet-protection-xform.d.ts +1 -1
  347. package/dist/types/xlsx/xform/sheet/sheet-view-xform.d.ts +1 -1
  348. package/dist/types/xlsx/xform/sheet/table-part-xform.d.ts +1 -1
  349. package/dist/types/xlsx/xform/sheet/worksheet-xform.d.ts +1 -1
  350. package/dist/types/xlsx/xform/simple/boolean-xform.d.ts +1 -1
  351. package/dist/types/xlsx/xform/simple/date-xform.d.ts +1 -1
  352. package/dist/types/xlsx/xform/simple/float-xform.d.ts +1 -1
  353. package/dist/types/xlsx/xform/simple/integer-xform.d.ts +1 -1
  354. package/dist/types/xlsx/xform/simple/string-xform.d.ts +1 -1
  355. package/dist/types/xlsx/xform/static-xform.d.ts +1 -1
  356. package/dist/types/xlsx/xform/strings/phonetic-text-xform.d.ts +1 -1
  357. package/dist/types/xlsx/xform/strings/rich-text-xform.d.ts +3 -3
  358. package/dist/types/xlsx/xform/strings/shared-string-xform.d.ts +1 -1
  359. package/dist/types/xlsx/xform/strings/shared-strings-xform.d.ts +2 -2
  360. package/dist/types/xlsx/xform/strings/text-xform.d.ts +1 -1
  361. package/dist/types/xlsx/xform/style/alignment-xform.d.ts +1 -1
  362. package/dist/types/xlsx/xform/style/border-xform.d.ts +2 -2
  363. package/dist/types/xlsx/xform/style/color-xform.d.ts +1 -1
  364. package/dist/types/xlsx/xform/style/dxf-xform.d.ts +1 -1
  365. package/dist/types/xlsx/xform/style/fill-xform.d.ts +2 -2
  366. package/dist/types/xlsx/xform/style/font-xform.d.ts +1 -1
  367. package/dist/types/xlsx/xform/style/numfmt-xform.d.ts +1 -1
  368. package/dist/types/xlsx/xform/style/protection-xform.d.ts +1 -1
  369. package/dist/types/xlsx/xform/style/style-xform.d.ts +3 -3
  370. package/dist/types/xlsx/xform/style/styles-xform.d.ts +2 -2
  371. package/dist/types/xlsx/xform/style/underline-xform.d.ts +1 -1
  372. package/dist/types/xlsx/xform/table/auto-filter-xform.d.ts +2 -2
  373. package/dist/types/xlsx/xform/table/custom-filter-xform.d.ts +1 -1
  374. package/dist/types/xlsx/xform/table/filter-column-xform.d.ts +2 -2
  375. package/dist/types/xlsx/xform/table/filter-xform.d.ts +1 -1
  376. package/dist/types/xlsx/xform/table/table-column-xform.d.ts +1 -1
  377. package/dist/types/xlsx/xform/table/table-style-info-xform.d.ts +1 -1
  378. package/dist/types/xlsx/xform/table/table-xform.d.ts +1 -1
  379. package/dist/types/xlsx/xlsx.base.d.ts +134 -0
  380. package/dist/types/xlsx/xlsx.browser.d.ts +31 -0
  381. package/dist/types/xlsx/xlsx.d.ts +20 -80
  382. package/package.json +13 -15
@@ -1,51 +1,134 @@
1
+ import fs from "fs";
2
+ import { Zip } from "fflate";
3
+ import { StreamBuf } from "../../utils/stream-buf";
4
+ import { StylesXform } from "../../xlsx/xform/style/styles-xform";
5
+ import { SharedStrings } from "../../utils/shared-strings";
6
+ import { DefinedNames } from "../../doc/defined-names";
7
+ import { WorksheetWriter } from "./worksheet-writer";
1
8
  import type Stream from "stream";
2
- interface WorkbookWriterOptions {
9
+ import type { Image, WorkbookView, AddWorksheetOptions } from "../../types";
10
+ /** Internal medium type for storing images in workbook */
11
+ interface Medium extends Image {
12
+ type: "image";
13
+ name: string;
14
+ }
15
+ /** Internal comment reference type for tracking comment files */
16
+ interface CommentRef {
17
+ commentName: string;
18
+ vmlDrawing: string;
19
+ }
20
+ export interface ZlibOptions {
21
+ /** @default constants.Z_NO_FLUSH */
22
+ flush?: number;
23
+ /** @default constants.Z_FINISH */
24
+ finishFlush?: number;
25
+ /** @default 16*1024 */
26
+ chunkSize?: number;
27
+ windowBits?: number;
28
+ /** compression level (0-9) */
29
+ level?: number;
30
+ memLevel?: number;
31
+ strategy?: number;
32
+ dictionary?: Buffer | NodeJS.TypedArray | DataView | ArrayBuffer;
33
+ }
34
+ export interface ZipOptions {
35
+ comment?: string;
36
+ forceLocalTime?: boolean;
37
+ forceZip64?: boolean;
38
+ store?: boolean;
39
+ zlib?: Partial<ZlibOptions>;
40
+ /** Alternative way to set compression level */
41
+ compressionOptions?: {
42
+ level?: number;
43
+ };
44
+ }
45
+ export interface WorkbookWriterOptions {
46
+ /** The date the workbook was created */
3
47
  created?: Date;
48
+ /** The date the workbook was last modified */
4
49
  modified?: Date;
50
+ /** The author of the workbook */
5
51
  creator?: string;
52
+ /** Who last modified the workbook */
6
53
  lastModifiedBy?: string;
54
+ /** The date the workbook was last printed */
7
55
  lastPrinted?: Date;
56
+ /** Specifies whether to use shared strings in the workbook. Default is false */
8
57
  useSharedStrings?: boolean;
58
+ /** Specifies whether to add style information to the workbook. Default is false */
9
59
  useStyles?: boolean;
10
- zip?: any;
60
+ /** Zip compression options */
61
+ zip?: Partial<ZipOptions>;
62
+ /** Specifies a writable stream to write the XLSX workbook to */
11
63
  stream?: Stream;
64
+ /** If stream not specified, this field specifies the path to a file to write the XLSX workbook to */
12
65
  filename?: string;
13
66
  }
14
67
  declare class WorkbookWriter {
68
+ /** The date the workbook was created */
15
69
  created: Date;
70
+ /** The date the workbook was last modified */
16
71
  modified: Date;
72
+ /** The author of the workbook */
17
73
  creator: string;
74
+ /** Who last modified the workbook */
18
75
  lastModifiedBy: string;
76
+ /** The date the workbook was last printed */
19
77
  lastPrinted?: Date;
78
+ /** Whether to use shared strings */
20
79
  useSharedStrings: boolean;
21
- sharedStrings: any;
22
- styles: any;
23
- _definedNames: any;
24
- _worksheets: any[];
25
- views: any[];
26
- zipOptions?: any;
80
+ /** Shared strings collection - internal use */
81
+ sharedStrings: SharedStrings;
82
+ /** Style manager - internal use */
83
+ styles: StylesXform;
84
+ /** Defined names - internal use */
85
+ _definedNames: DefinedNames;
86
+ /** Worksheets collection */
87
+ _worksheets: WorksheetWriter[];
88
+ /** Workbook views controls how many separate windows Excel will open */
89
+ views: WorkbookView[];
90
+ /** Zip options - internal use */
91
+ zipOptions?: Partial<ZipOptions>;
92
+ /** Compression level (0-9) */
27
93
  compressionLevel: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
28
- media: any[];
29
- commentRefs: any[];
30
- zip: any;
31
- stream: any;
32
- promise: Promise<any>;
94
+ /** Media collection (images) - internal use */
95
+ media: Medium[];
96
+ /** Comment references - internal use */
97
+ commentRefs: CommentRef[];
98
+ /** Zip instance - internal use */
99
+ zip: Zip;
100
+ /** Output stream - internal use */
101
+ stream: Stream | fs.WriteStream | InstanceType<typeof StreamBuf>;
102
+ /** Internal promise for async operations */
103
+ promise: Promise<void[]>;
33
104
  constructor(options?: WorkbookWriterOptions);
34
- get definedNames(): any;
35
- _openStream(path: string): any;
36
- _addFile(data: string | Buffer, name: string, base64?: boolean): void;
105
+ get definedNames(): DefinedNames;
106
+ _openStream(path: string): InstanceType<typeof StreamBuf>;
107
+ _addFile(data: string | Uint8Array, name: string, base64?: boolean): void;
37
108
  _commitWorksheets(): Promise<void>;
38
- commit(): Promise<any>;
109
+ commit(): Promise<void>;
39
110
  get nextId(): number;
40
- addImage(image: any): number;
41
- getImage(id: number): any;
42
- addWorksheet(name?: string, options?: any): any;
43
- getWorksheet(id?: string | number): any;
111
+ /**
112
+ * Add Image to Workbook and return the id
113
+ */
114
+ addImage(image: Image): number;
115
+ /**
116
+ * Get image by id
117
+ */
118
+ getImage(id: number): Image | undefined;
119
+ /**
120
+ * Add a new worksheet and return a reference to it
121
+ */
122
+ addWorksheet(name?: string, options?: Partial<AddWorksheetOptions>): WorksheetWriter;
123
+ /**
124
+ * Fetch sheet by name or id
125
+ */
126
+ getWorksheet(id?: string | number): WorksheetWriter | undefined;
44
127
  addStyles(): Promise<void>;
45
128
  addThemes(): Promise<void>;
46
129
  addOfficeRels(): Promise<void>;
47
130
  addContentTypes(): Promise<void>;
48
- addMedia(): Promise<any>;
131
+ addMedia(): Promise<void[]>;
49
132
  addApp(): Promise<void>;
50
133
  addCore(): Promise<void>;
51
134
  addSharedStrings(): Promise<void>;
@@ -1,37 +1,55 @@
1
1
  import { EventEmitter } from "events";
2
- interface WorksheetReaderOptions {
3
- workbook: any;
2
+ import { Dimensions } from "../../doc/range";
3
+ import { Row } from "../../doc/row";
4
+ import { Column } from "../../doc/column";
5
+ import type { WorkbookReader, InternalWorksheetOptions } from "./workbook-reader";
6
+ import type { WorksheetState } from "../../types";
7
+ /** Hyperlink reference from worksheet XML */
8
+ export interface WorksheetHyperlink {
9
+ ref: string;
10
+ rId: string;
11
+ }
12
+ /** Events emitted during worksheet parsing */
13
+ export type WorksheetEventType = "row" | "hyperlink";
14
+ /** Row event emitted during parsing */
15
+ export interface RowEvent {
16
+ eventType: "row";
17
+ value: Row;
18
+ }
19
+ /** Hyperlink event emitted during parsing */
20
+ export interface HyperlinkEvent {
21
+ eventType: "hyperlink";
22
+ value: WorksheetHyperlink;
23
+ }
24
+ export type WorksheetEvent = RowEvent | HyperlinkEvent;
25
+ export interface WorksheetReaderOptions {
26
+ workbook: WorkbookReader;
4
27
  id: number;
5
- iterator: any;
6
- options?: any;
28
+ iterator: AsyncIterable<unknown>;
29
+ options?: InternalWorksheetOptions;
7
30
  }
8
31
  declare class WorksheetReader extends EventEmitter {
9
- workbook: any;
32
+ workbook: WorkbookReader;
10
33
  id: number | string;
11
- iterator: any;
12
- options: any;
34
+ iterator: AsyncIterable<unknown>;
35
+ options: InternalWorksheetOptions;
13
36
  name: string;
14
- state?: string;
37
+ state?: WorksheetState;
15
38
  private _columns;
16
39
  private _keys;
17
40
  private _dimensions;
18
- hyperlinks?: {
19
- [key: string]: any;
20
- };
41
+ hyperlinks?: Record<string, WorksheetHyperlink>;
21
42
  constructor({ workbook, id, iterator, options }: WorksheetReaderOptions);
22
43
  destroy(): void;
23
- get dimensions(): any;
24
- get columns(): any[] | null;
25
- getColumn(c: string | number): any;
26
- getColumnKey(key: string): any;
27
- setColumnKey(key: string, value: any): void;
44
+ get dimensions(): Dimensions;
45
+ get columns(): Column[] | null;
46
+ getColumn(c: string | number): Column;
47
+ getColumnKey(key: string): Column | undefined;
48
+ setColumnKey(key: string, value: Column): void;
28
49
  deleteColumnKey(key: string): void;
29
- eachColumnKey(f: (column: any, key: string) => void): void;
50
+ eachColumnKey(f: (column: Column, key: string) => void): void;
30
51
  read(): Promise<void>;
31
- [Symbol.asyncIterator](): AsyncIterableIterator<any>;
32
- parse(): AsyncIterableIterator<Array<{
33
- eventType: string;
34
- value: any;
35
- }>>;
52
+ [Symbol.asyncIterator](): AsyncIterableIterator<Row>;
53
+ parse(): AsyncIterableIterator<WorksheetEvent[]>;
36
54
  }
37
55
  export { WorksheetReader };
@@ -1,85 +1,119 @@
1
- import type { RowBreak } from "../../types.js";
1
+ import { Dimensions } from "../../doc/range";
2
+ import { StringBuf } from "../../utils/string-buf";
3
+ import { Row } from "../../doc/row";
4
+ import { Column } from "../../doc/column";
5
+ import { SheetRelsWriter } from "./sheet-rels-writer";
6
+ import { SheetCommentsWriter } from "./sheet-comments-writer";
7
+ import { DataValidations } from "../../doc/data-validations";
8
+ import type { StreamBuf } from "../../utils/stream-buf";
9
+ import type { RowBreak, PageSetup, HeaderFooter, WorksheetProperties, WorksheetView, WorksheetState, AutoFilter, WorksheetProtection, ConditionalFormattingOptions } from "../../types";
2
10
  interface WorksheetWriterOptions {
3
11
  id: number;
4
12
  name?: string;
5
13
  workbook: any;
6
14
  useSharedStrings?: boolean;
7
- properties?: any;
8
- state?: string;
9
- pageSetup?: any;
10
- views?: any[];
11
- autoFilter?: any;
12
- headerFooter?: any;
15
+ properties?: Partial<WorksheetProperties>;
16
+ state?: WorksheetState;
17
+ pageSetup?: Partial<PageSetup>;
18
+ views?: Partial<WorksheetView>[];
19
+ autoFilter?: AutoFilter;
20
+ headerFooter?: Partial<HeaderFooter>;
13
21
  }
14
22
  declare class WorksheetWriter {
15
23
  id: number;
16
24
  name: string;
17
- state: string;
18
- _rows: any[] | null;
19
- _columns: any[] | null;
25
+ state: WorksheetState;
26
+ /** Rows stored while being worked on. Set to null after commit. */
27
+ _rows: Row[] | null;
28
+ /** Column definitions */
29
+ _columns: Column[] | null;
30
+ /** Column keys mapping: key => Column */
20
31
  _keys: {
21
- [key: string]: any;
32
+ [key: string]: Column;
22
33
  };
23
- _merges: any[];
24
- _sheetRelsWriter: any;
25
- _sheetCommentsWriter: any;
26
- _dimensions: any;
34
+ /** Merged cell ranges */
35
+ _merges: Dimensions[];
36
+ _sheetRelsWriter: SheetRelsWriter;
37
+ _sheetCommentsWriter: SheetCommentsWriter;
38
+ _dimensions: Dimensions;
27
39
  _rowZero: number;
28
40
  committed: boolean;
29
- dataValidations: any;
41
+ dataValidations: DataValidations;
42
+ /** Shared formulae by address */
30
43
  _formulae: {
31
- [key: string]: any;
44
+ [key: string]: unknown;
32
45
  };
33
46
  _siFormulae: number;
34
- conditionalFormatting: any[];
47
+ conditionalFormatting: ConditionalFormattingOptions[];
35
48
  rowBreaks: RowBreak[];
36
- properties: any;
37
- headerFooter: any;
38
- pageSetup: any;
49
+ properties: Partial<WorksheetProperties> & {
50
+ defaultRowHeight: number;
51
+ dyDescent: number;
52
+ outlineLevelCol: number;
53
+ outlineLevelRow: number;
54
+ };
55
+ headerFooter: Partial<HeaderFooter>;
56
+ pageSetup: Partial<PageSetup> & {
57
+ margins: PageSetup["margins"];
58
+ };
39
59
  useSharedStrings: boolean;
40
60
  _workbook: any;
41
61
  hasComments: boolean;
42
- _views: any[];
43
- autoFilter: any;
44
- _media: any[];
45
- sheetProtection: any;
46
- _stream?: any;
62
+ _views: Partial<WorksheetView>[];
63
+ autoFilter: AutoFilter | null;
64
+ _media: unknown[];
65
+ sheetProtection: {
66
+ sheet?: boolean;
67
+ algorithmName?: string;
68
+ saltValue?: string;
69
+ spinCount?: number;
70
+ hashValue?: string;
71
+ [key: string]: unknown;
72
+ } | null;
73
+ _stream?: InstanceType<typeof StreamBuf>;
47
74
  startedData: boolean;
48
- _background?: any;
75
+ _background?: {
76
+ imageId?: number;
77
+ rId?: string;
78
+ };
49
79
  _headerRowCount?: number;
80
+ /** Relationship Id - assigned by WorkbookWriter */
81
+ rId?: string;
50
82
  constructor(options: WorksheetWriterOptions);
51
83
  get workbook(): any;
52
84
  get stream(): any;
53
85
  destroy(): void;
54
86
  commit(): void;
55
- get dimensions(): any;
56
- get views(): any[];
57
- get columns(): any[] | null;
58
- set columns(value: any[]);
59
- getColumnKey(key: string): any;
60
- setColumnKey(key: string, value: any): void;
87
+ get dimensions(): Dimensions;
88
+ get views(): Partial<WorksheetView>[];
89
+ get columns(): Column[] | null;
90
+ set columns(value: Partial<Column>[]);
91
+ getColumnKey(key: string): Column | undefined;
92
+ setColumnKey(key: string, value: Column): void;
61
93
  deleteColumnKey(key: string): void;
62
- eachColumnKey(f: (column: any, key: string) => void): void;
63
- getColumn(c: string | number): any;
94
+ eachColumnKey(f: (column: Column, key: string) => void): void;
95
+ getColumn(c: string | number): Column;
64
96
  get _nextRow(): number;
65
- eachRow(options: any, iteratee?: (row: any, rowNumber: number) => void): void;
66
- _commitRow(cRow: any): void;
67
- get lastRow(): any;
68
- findRow(rowNumber: number): any;
69
- getRow(rowNumber: number): any;
70
- addRow(value: any): any;
71
- findCell(r: any, c?: number): any;
72
- getCell(r: any, c?: number): any;
73
- mergeCells(...cells: any[]): void;
74
- addConditionalFormatting(cf: any): void;
75
- removeConditionalFormatting(filter: any): void;
97
+ eachRow(options: {
98
+ includeEmpty?: boolean;
99
+ } | ((row: Row, rowNumber: number) => void), iteratee?: (row: Row, rowNumber: number) => void): void;
100
+ _commitRow(cRow: Row): void;
101
+ get lastRow(): Row | undefined;
102
+ findRow(rowNumber: number): Row | undefined;
103
+ getRow(rowNumber: number): Row;
104
+ addRow(value: any[] | Record<string, any>): Row;
105
+ findCell(r: string | number, c?: number): any;
106
+ getCell(r: string | number, c?: number): any;
107
+ mergeCells(...cells: (string | number)[]): void;
108
+ addConditionalFormatting(cf: ConditionalFormattingOptions): void;
109
+ removeConditionalFormatting(filter?: number | ((cf: ConditionalFormattingOptions) => boolean)): void;
76
110
  addBackgroundImage(imageId: number): void;
77
111
  getBackgroundImageId(): number | undefined;
78
- protect(password?: string, options?: any): Promise<void>;
112
+ protect(password?: string, options?: Partial<WorksheetProtection>): Promise<void>;
79
113
  unprotect(): void;
80
114
  _write(text: string): void;
81
- _writeSheetProperties(xmlBuf: any, properties: any, pageSetup: any): void;
82
- _writeSheetFormatProperties(xmlBuf: any, properties: any): void;
115
+ _writeSheetProperties(xmlBuf: StringBuf, properties: Partial<WorksheetProperties> | undefined, pageSetup: Partial<PageSetup> | undefined): void;
116
+ _writeSheetFormatProperties(xmlBuf: StringBuf, properties: Partial<WorksheetProperties> | undefined): void;
83
117
  _writeOpenWorksheet(): void;
84
118
  _writeColumns(): void;
85
119
  _writeOpenSheetData(): void;
@@ -481,22 +481,6 @@ export interface TableProperties {
481
481
  rows: any[][];
482
482
  }
483
483
  export type TableColumn = Required<TableColumnProperties>;
484
- export interface JSZipGeneratorOptions {
485
- compression: "STORE" | "DEFLATE";
486
- compressionOptions: null | {
487
- level: number;
488
- };
489
- }
490
- export interface XlsxReadOptions {
491
- ignoreNodes?: string[];
492
- maxRows?: number;
493
- maxCols?: number;
494
- }
495
- export interface XlsxWriteOptions {
496
- zip?: Partial<JSZipGeneratorOptions>;
497
- useSharedStrings?: boolean;
498
- useStyles?: boolean;
499
- }
500
484
  export interface Media {
501
485
  type: string;
502
486
  name: string;
@@ -509,6 +493,10 @@ export interface AddWorksheetOptions {
509
493
  headerFooter?: Partial<HeaderFooter>;
510
494
  views?: Array<Partial<WorksheetView>>;
511
495
  state?: WorksheetState;
496
+ /** Specifies whether to use shared strings. Overrides workbook setting. */
497
+ useSharedStrings?: boolean;
498
+ /** Apply an auto filter to the worksheet */
499
+ autoFilter?: AutoFilter;
512
500
  }
513
501
  export interface DefinedNamesRanges {
514
502
  name: string;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Browser-compatible Buffer utilities
3
+ * Provides base64 encoding/decoding and a Buffer-like wrapper for Uint8Array
4
+ */
5
+ /**
6
+ * Convert Uint8Array to base64 string
7
+ */
8
+ export declare function uint8ArrayToBase64(bytes: Uint8Array): string;
9
+ /**
10
+ * Convert base64 string to Uint8Array
11
+ */
12
+ export declare function base64ToUint8Array(base64: string): Uint8Array;
13
+ /**
14
+ * Buffer-like wrapper for Uint8Array with toString("base64") support
15
+ * This provides Node.js Buffer-like API for browser environments
16
+ */
17
+ export declare class BrowserBuffer extends Uint8Array {
18
+ toString(encoding?: string): string;
19
+ static from(data: Uint8Array): BrowserBuffer;
20
+ }
21
+ /**
22
+ * Convert string to UTF-16LE Uint8Array (used for Excel password hashing)
23
+ */
24
+ export declare function stringToUtf16Le(str: string): Uint8Array;
25
+ /**
26
+ * Concatenate multiple Uint8Arrays into one
27
+ */
28
+ export declare function concatUint8Arrays(...arrays: Uint8Array[]): Uint8Array;
@@ -1,4 +1,4 @@
1
- import type { Address, Location } from "../types.js";
1
+ import type { Address, Location } from "../types";
2
2
  type CachedAddress = Address & {
3
3
  $col$row: string;
4
4
  };
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Browser-compatible Encryptor with pure JS SHA implementations
3
+ * This provides synchronous hash functions for browser compatibility
4
+ */
5
+ import { BrowserBuffer } from "./browser-buffer";
6
+ declare const Encryptor: {
7
+ /**
8
+ * Calculate a hash of the concatenated buffers with the given algorithm.
9
+ * @param algorithm - The hash algorithm.
10
+ * @returns The hash as Uint8Array
11
+ */
12
+ hash(algorithm: string, ...buffers: Uint8Array[]): Uint8Array;
13
+ /**
14
+ * Convert a password into an encryption key
15
+ * @param password - The password
16
+ * @param hashAlgorithm - The hash algorithm
17
+ * @param saltValue - The salt value (base64 encoded)
18
+ * @param spinCount - The spin count
19
+ * @returns The encryption key (base64 encoded)
20
+ */
21
+ convertPasswordToHash(password: string, hashAlgorithm: string, saltValue: string, spinCount: number): string;
22
+ /**
23
+ * Generates cryptographically strong pseudo-random data.
24
+ * @param size The size argument is a number indicating the number of bytes to generate.
25
+ */
26
+ randomBytes(size: number): BrowserBuffer;
27
+ };
28
+ export { Encryptor };
@@ -2,9 +2,9 @@
2
2
  * Utility functions for ExcelTS
3
3
  * Provides convenient helper functions for common spreadsheet operations
4
4
  */
5
- import { Workbook } from "../doc/workbook.js";
6
- import type { Worksheet } from "../doc/worksheet.js";
7
- import type { CellValue } from "../types.js";
5
+ import { Workbook } from "../doc/workbook";
6
+ import type { Worksheet } from "../doc/worksheet";
7
+ import type { CellValue } from "../types";
8
8
  /**
9
9
  * Cell address object (0-indexed)
10
10
  */
@@ -0,0 +1,41 @@
1
+ interface StreamBufOptions {
2
+ bufSize?: number;
3
+ batch?: boolean;
4
+ }
5
+ type EventCallback = (...args: any[]) => void;
6
+ declare class StreamBuf {
7
+ private bufSize;
8
+ private buffers;
9
+ private batch;
10
+ private corked;
11
+ private paused;
12
+ private encoding;
13
+ private pipes;
14
+ private events;
15
+ constructor(options?: StreamBufOptions);
16
+ on(event: string, callback: EventCallback): this;
17
+ once(event: string, callback: EventCallback): this;
18
+ off(event: string, callback: EventCallback): this;
19
+ emit(event: string, ...args: any[]): boolean;
20
+ removeListener(event: string, callback: EventCallback): this;
21
+ toBuffer(): Uint8Array | null;
22
+ private _getWritableBuffer;
23
+ private _pipe;
24
+ private _writeToBuffers;
25
+ write(data: any, encoding?: BufferEncoding | Function, callback?: Function): Promise<boolean>;
26
+ cork(): void;
27
+ private _flush;
28
+ uncork(): void;
29
+ end(chunk?: any, encoding?: BufferEncoding, callback?: Function): void;
30
+ read(size?: number): Uint8Array;
31
+ setEncoding(encoding: string): void;
32
+ pause(): void;
33
+ resume(): void;
34
+ isPaused(): boolean;
35
+ pipe(destination: any): any;
36
+ unpipe(destination: any): void;
37
+ unshift(): void;
38
+ wrap(): void;
39
+ push(chunk: any): boolean;
40
+ }
41
+ export { StreamBuf };
@@ -3,7 +3,7 @@
3
3
  * Provides easy-to-use Promise-based API for extracting ZIP files
4
4
  * Works in both Node.js and browser environments
5
5
  */
6
- import { type ZipEntryInfo } from "./zip-parser.js";
6
+ import { type ZipEntryInfo } from "./zip-parser";
7
7
  /**
8
8
  * Extracted file entry
9
9
  */
@@ -25,7 +25,7 @@ export interface ExtractedFile {
25
25
  *
26
26
  * @example
27
27
  * ```ts
28
- * import { extractAll } from "./utils/unzip/extract.js";
28
+ * import { extractAll } from "./utils/unzip/extract";
29
29
  *
30
30
  * const zipData = fs.readFileSync("archive.zip");
31
31
  * const files = await extractAll(zipData);
@@ -45,7 +45,7 @@ export declare function extractAll(zipData: Uint8Array | ArrayBuffer): Promise<M
45
45
  *
46
46
  * @example
47
47
  * ```ts
48
- * import { extractFile } from "./utils/unzip/extract.js";
48
+ * import { extractFile } from "./utils/unzip/extract";
49
49
  *
50
50
  * const zipData = fs.readFileSync("archive.zip");
51
51
  * const content = await extractFile(zipData, "readme.txt");
@@ -63,7 +63,7 @@ export declare function extractFile(zipData: Uint8Array | ArrayBuffer, filePath:
63
63
  *
64
64
  * @example
65
65
  * ```ts
66
- * import { listFiles } from "./utils/unzip/extract.js";
66
+ * import { listFiles } from "./utils/unzip/extract";
67
67
  *
68
68
  * const zipData = fs.readFileSync("archive.zip");
69
69
  * const paths = await listFiles(zipData);
@@ -79,7 +79,7 @@ export declare function listFiles(zipData: Uint8Array | ArrayBuffer): Promise<st
79
79
  *
80
80
  * @example
81
81
  * ```ts
82
- * import { forEachEntry } from "./utils/unzip/extract.js";
82
+ * import { forEachEntry } from "./utils/unzip/extract";
83
83
  *
84
84
  * await forEachEntry(zipData, async (path, getData) => {
85
85
  * if (path.endsWith(".xml")) {
@@ -91,4 +91,4 @@ export declare function listFiles(zipData: Uint8Array | ArrayBuffer): Promise<st
91
91
  * ```
92
92
  */
93
93
  export declare function forEachEntry(zipData: Uint8Array | ArrayBuffer, callback: (path: string, getData: () => Promise<Uint8Array>, entry: ZipEntryInfo) => Promise<boolean | void>): Promise<void>;
94
- export { ZipParser, type ZipEntryInfo, type ZipParseOptions } from "./zip-parser.js";
94
+ export { ZipParser, type ZipEntryInfo, type ZipParseOptions } from "./zip-parser";
@@ -17,11 +17,11 @@
17
17
  * Original source: https://github.com/ZJONSSON/node-unzipper
18
18
  * License: MIT
19
19
  */
20
- export { Parse, createParse, type ParseOptions, type ZipEntry } from "./parse.js";
21
- export { PullStream } from "./pull-stream.js";
22
- export { NoopStream } from "./noop-stream.js";
23
- export { bufferStream } from "./buffer-stream.js";
24
- export { parse as parseBuffer } from "./parse-buffer.js";
25
- export { parseDateTime } from "./parse-datetime.js";
26
- export { parseExtraField, type ExtraField, type ZipVars } from "./parse-extra-field.js";
27
- export { extractAll, extractFile, listFiles, forEachEntry, ZipParser, type ExtractedFile, type ZipEntryInfo, type ZipParseOptions } from "./extract.js";
20
+ export { Parse, createParse, type ParseOptions, type ZipEntry } from "./parse";
21
+ export { PullStream } from "./pull-stream";
22
+ export { NoopStream } from "./noop-stream";
23
+ export { bufferStream } from "./buffer-stream";
24
+ export { parse as parseBuffer } from "./parse-buffer";
25
+ export { parseDateTime } from "./parse-datetime";
26
+ export { parseExtraField, type ExtraField, type ZipVars } from "./parse-extra-field";
27
+ export { extractAll, extractFile, listFiles, forEachEntry, ZipParser, type ExtractedFile, type ZipEntryInfo, type ZipParseOptions } from "./extract";
@@ -6,9 +6,9 @@
6
6
  * Commits in this fork are (c) Ziggy Jonsson (ziggy.jonsson.nyc@gmail.com)
7
7
  */
8
8
  import { PassThrough } from "stream";
9
- import { PullStream } from "./pull-stream.js";
10
- import { NoopStream } from "./noop-stream.js";
11
- import { type ExtraField } from "./parse-extra-field.js";
9
+ import { PullStream } from "./pull-stream";
10
+ import { NoopStream } from "./noop-stream";
11
+ import { type ExtraField } from "./parse-extra-field";
12
12
  export interface ParseOptions {
13
13
  verbose?: boolean;
14
14
  forceStream?: boolean;