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

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 (376) hide show
  1. package/README.md +18 -31
  2. package/README_zh.md +19 -31
  3. package/dist/browser/excelts.iife.js +40910 -7518
  4. package/dist/browser/excelts.iife.js.map +1 -1
  5. package/dist/browser/excelts.iife.min.js +105 -25
  6. package/dist/cjs/csv/csv.js +162 -226
  7. package/dist/cjs/doc/anchor.js +2 -2
  8. package/dist/cjs/doc/cell.js +22 -22
  9. package/dist/cjs/doc/column.js +7 -7
  10. package/dist/cjs/doc/data-validations.js +3 -3
  11. package/dist/cjs/doc/defined-names.js +13 -13
  12. package/dist/cjs/doc/image.js +7 -7
  13. package/dist/cjs/doc/modelcontainer.js +2 -2
  14. package/dist/cjs/doc/note.js +2 -2
  15. package/dist/cjs/doc/pivot-table.js +5 -5
  16. package/dist/cjs/doc/range.js +11 -11
  17. package/dist/cjs/doc/row.js +16 -16
  18. package/dist/cjs/doc/table.js +5 -5
  19. package/dist/cjs/doc/workbook.js +179 -68
  20. package/dist/cjs/doc/worksheet.js +41 -41
  21. package/dist/cjs/index.js +32 -49
  22. package/dist/cjs/stream/xlsx/hyperlink-reader.js +6 -6
  23. package/dist/cjs/stream/xlsx/sheet-comments-writer.js +12 -12
  24. package/dist/cjs/stream/xlsx/sheet-rels-writer.js +4 -4
  25. package/dist/cjs/stream/xlsx/workbook-reader.js +22 -22
  26. package/dist/cjs/stream/xlsx/workbook-writer.js +34 -34
  27. package/dist/cjs/stream/xlsx/worksheet-reader.js +17 -17
  28. package/dist/cjs/stream/xlsx/worksheet-writer.js +60 -60
  29. package/dist/cjs/utils/cell-format.js +2 -2
  30. package/dist/cjs/utils/cell-matrix.js +5 -5
  31. package/dist/cjs/utils/parse-sax.js +2 -2
  32. package/dist/cjs/utils/shared-formula.js +5 -5
  33. package/dist/cjs/utils/sheet-utils.js +13 -13
  34. package/dist/cjs/utils/stream-buf.js +5 -5
  35. package/dist/cjs/utils/unzip/extract.js +11 -11
  36. package/dist/cjs/utils/unzip/index.js +21 -21
  37. package/dist/cjs/utils/unzip/parse-extra-field.js +3 -3
  38. package/dist/cjs/utils/unzip/parse.js +16 -16
  39. package/dist/cjs/utils/unzip/zip-parser.js +3 -3
  40. package/dist/cjs/utils/utils.js +154 -46
  41. package/dist/cjs/utils/xml-stream.js +3 -3
  42. package/dist/cjs/utils/zip/compress.js +198 -18
  43. package/dist/cjs/utils/zip/index.js +17 -17
  44. package/dist/cjs/utils/zip/zip-builder.js +10 -10
  45. package/dist/cjs/utils/zip-stream.js +4 -4
  46. package/dist/cjs/xlsx/xform/base-xform.js +4 -4
  47. package/dist/cjs/xlsx/xform/book/defined-name-xform.js +4 -4
  48. package/dist/cjs/xlsx/xform/book/sheet-xform.js +4 -4
  49. package/dist/cjs/xlsx/xform/book/workbook-calc-properties-xform.js +2 -2
  50. package/dist/cjs/xlsx/xform/book/workbook-pivot-cache-xform.js +2 -2
  51. package/dist/cjs/xlsx/xform/book/workbook-properties-xform.js +2 -2
  52. package/dist/cjs/xlsx/xform/book/workbook-view-xform.js +2 -2
  53. package/dist/cjs/xlsx/xform/book/workbook-xform.js +24 -24
  54. package/dist/cjs/xlsx/xform/comment/comment-xform.js +4 -4
  55. package/dist/cjs/xlsx/xform/comment/comments-xform.js +6 -6
  56. package/dist/cjs/xlsx/xform/comment/style/vml-position-xform.js +2 -2
  57. package/dist/cjs/xlsx/xform/comment/style/vml-protection-xform.js +2 -2
  58. package/dist/cjs/xlsx/xform/comment/vml-anchor-xform.js +2 -2
  59. package/dist/cjs/xlsx/xform/comment/vml-client-data-xform.js +10 -10
  60. package/dist/cjs/xlsx/xform/comment/vml-notes-xform.js +6 -6
  61. package/dist/cjs/xlsx/xform/comment/vml-shape-xform.js +6 -6
  62. package/dist/cjs/xlsx/xform/comment/vml-textbox-xform.js +2 -2
  63. package/dist/cjs/xlsx/xform/composite-xform.js +2 -2
  64. package/dist/cjs/xlsx/xform/core/app-heading-pairs-xform.js +2 -2
  65. package/dist/cjs/xlsx/xform/core/app-titles-of-parts-xform.js +2 -2
  66. package/dist/cjs/xlsx/xform/core/app-xform.js +11 -11
  67. package/dist/cjs/xlsx/xform/core/content-types-xform.js +4 -4
  68. package/dist/cjs/xlsx/xform/core/core-xform.js +23 -23
  69. package/dist/cjs/xlsx/xform/core/relationship-xform.js +2 -2
  70. package/dist/cjs/xlsx/xform/core/relationships-xform.js +6 -6
  71. package/dist/cjs/xlsx/xform/drawing/base-cell-anchor-xform.js +2 -2
  72. package/dist/cjs/xlsx/xform/drawing/blip-fill-xform.js +4 -4
  73. package/dist/cjs/xlsx/xform/drawing/blip-xform.js +2 -2
  74. package/dist/cjs/xlsx/xform/drawing/c-nv-pic-pr-xform.js +2 -2
  75. package/dist/cjs/xlsx/xform/drawing/c-nv-pr-xform.js +6 -6
  76. package/dist/cjs/xlsx/xform/drawing/cell-position-xform.js +7 -7
  77. package/dist/cjs/xlsx/xform/drawing/drawing-xform.js +10 -10
  78. package/dist/cjs/xlsx/xform/drawing/ext-lst-xform.js +2 -2
  79. package/dist/cjs/xlsx/xform/drawing/ext-xform.js +2 -2
  80. package/dist/cjs/xlsx/xform/drawing/hlink-click-xform.js +2 -2
  81. package/dist/cjs/xlsx/xform/drawing/nv-pic-pr-xform.js +6 -6
  82. package/dist/cjs/xlsx/xform/drawing/one-cell-anchor-xform.js +10 -10
  83. package/dist/cjs/xlsx/xform/drawing/pic-xform.js +9 -9
  84. package/dist/cjs/xlsx/xform/drawing/two-cell-anchor-xform.js +9 -9
  85. package/dist/cjs/xlsx/xform/list-xform.js +2 -2
  86. package/dist/cjs/xlsx/xform/pivot-table/cache-field-xform.js +5 -5
  87. package/dist/cjs/xlsx/xform/pivot-table/cache-field.js +3 -3
  88. package/dist/cjs/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +10 -10
  89. package/dist/cjs/xlsx/xform/pivot-table/pivot-cache-records-xform.js +9 -9
  90. package/dist/cjs/xlsx/xform/pivot-table/pivot-table-xform.js +11 -10
  91. package/dist/cjs/xlsx/xform/sheet/auto-filter-xform.js +4 -4
  92. package/dist/cjs/xlsx/xform/sheet/cell-xform.js +65 -65
  93. package/dist/cjs/xlsx/xform/sheet/cf/cf-rule-xform.js +27 -27
  94. package/dist/cjs/xlsx/xform/sheet/cf/cfvo-xform.js +3 -3
  95. package/dist/cjs/xlsx/xform/sheet/cf/color-scale-xform.js +6 -6
  96. package/dist/cjs/xlsx/xform/sheet/cf/conditional-formatting-xform.js +6 -6
  97. package/dist/cjs/xlsx/xform/sheet/cf/conditional-formattings-xform.js +4 -4
  98. package/dist/cjs/xlsx/xform/sheet/cf/databar-xform.js +6 -6
  99. package/dist/cjs/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +5 -5
  100. package/dist/cjs/xlsx/xform/sheet/cf/formula-xform.js +2 -2
  101. package/dist/cjs/xlsx/xform/sheet/cf/icon-set-xform.js +11 -11
  102. package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +3 -3
  103. package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +12 -11
  104. package/dist/cjs/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +4 -4
  105. package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +8 -8
  106. package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +6 -6
  107. package/dist/cjs/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +26 -26
  108. package/dist/cjs/xlsx/xform/sheet/cf-ext/f-ext-xform.js +2 -2
  109. package/dist/cjs/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +14 -14
  110. package/dist/cjs/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +2 -2
  111. package/dist/cjs/xlsx/xform/sheet/col-xform.js +6 -6
  112. package/dist/cjs/xlsx/xform/sheet/data-validations-xform.js +18 -18
  113. package/dist/cjs/xlsx/xform/sheet/dimension-xform.js +2 -2
  114. package/dist/cjs/xlsx/xform/sheet/drawing-xform.js +2 -2
  115. package/dist/cjs/xlsx/xform/sheet/ext-lst-xform.js +5 -5
  116. package/dist/cjs/xlsx/xform/sheet/header-footer-xform.js +2 -2
  117. package/dist/cjs/xlsx/xform/sheet/hyperlink-xform.js +2 -2
  118. package/dist/cjs/xlsx/xform/sheet/merge-cell-xform.js +2 -2
  119. package/dist/cjs/xlsx/xform/sheet/merges.js +8 -8
  120. package/dist/cjs/xlsx/xform/sheet/outline-properties-xform.js +2 -2
  121. package/dist/cjs/xlsx/xform/sheet/page-breaks-xform.js +2 -2
  122. package/dist/cjs/xlsx/xform/sheet/page-margins-xform.js +2 -2
  123. package/dist/cjs/xlsx/xform/sheet/page-setup-properties-xform.js +2 -2
  124. package/dist/cjs/xlsx/xform/sheet/page-setup-xform.js +2 -2
  125. package/dist/cjs/xlsx/xform/sheet/picture-xform.js +2 -2
  126. package/dist/cjs/xlsx/xform/sheet/print-options-xform.js +2 -2
  127. package/dist/cjs/xlsx/xform/sheet/row-breaks-xform.js +4 -4
  128. package/dist/cjs/xlsx/xform/sheet/row-xform.js +11 -11
  129. package/dist/cjs/xlsx/xform/sheet/sheet-format-properties-xform.js +2 -2
  130. package/dist/cjs/xlsx/xform/sheet/sheet-properties-xform.js +8 -8
  131. package/dist/cjs/xlsx/xform/sheet/sheet-protection-xform.js +2 -2
  132. package/dist/cjs/xlsx/xform/sheet/sheet-view-xform.js +4 -4
  133. package/dist/cjs/xlsx/xform/sheet/table-part-xform.js +2 -2
  134. package/dist/cjs/xlsx/xform/sheet/worksheet-xform.js +68 -68
  135. package/dist/cjs/xlsx/xform/simple/boolean-xform.js +2 -2
  136. package/dist/cjs/xlsx/xform/simple/date-xform.js +2 -2
  137. package/dist/cjs/xlsx/xform/simple/float-xform.js +2 -2
  138. package/dist/cjs/xlsx/xform/simple/integer-xform.js +2 -2
  139. package/dist/cjs/xlsx/xform/simple/string-xform.js +2 -2
  140. package/dist/cjs/xlsx/xform/static-xform.js +4 -4
  141. package/dist/cjs/xlsx/xform/strings/phonetic-text-xform.js +6 -6
  142. package/dist/cjs/xlsx/xform/strings/rich-text-xform.js +6 -6
  143. package/dist/cjs/xlsx/xform/strings/shared-string-xform.js +8 -8
  144. package/dist/cjs/xlsx/xform/strings/shared-strings-xform.js +6 -6
  145. package/dist/cjs/xlsx/xform/strings/text-xform.js +2 -2
  146. package/dist/cjs/xlsx/xform/style/alignment-xform.js +8 -8
  147. package/dist/cjs/xlsx/xform/style/border-xform.js +8 -8
  148. package/dist/cjs/xlsx/xform/style/color-xform.js +2 -2
  149. package/dist/cjs/xlsx/xform/style/dxf-xform.js +14 -14
  150. package/dist/cjs/xlsx/xform/style/fill-xform.js +9 -9
  151. package/dist/cjs/xlsx/xform/style/font-xform.js +22 -22
  152. package/dist/cjs/xlsx/xform/style/numfmt-xform.js +5 -5
  153. package/dist/cjs/xlsx/xform/style/protection-xform.js +2 -2
  154. package/dist/cjs/xlsx/xform/style/style-xform.js +6 -6
  155. package/dist/cjs/xlsx/xform/style/styles-xform.js +39 -39
  156. package/dist/cjs/xlsx/xform/style/underline-xform.js +2 -2
  157. package/dist/cjs/xlsx/xform/table/auto-filter-xform.js +4 -4
  158. package/dist/cjs/xlsx/xform/table/custom-filter-xform.js +2 -2
  159. package/dist/cjs/xlsx/xform/table/filter-column-xform.js +9 -9
  160. package/dist/cjs/xlsx/xform/table/filter-xform.js +2 -2
  161. package/dist/cjs/xlsx/xform/table/table-column-xform.js +2 -2
  162. package/dist/cjs/xlsx/xform/table/table-style-info-xform.js +2 -2
  163. package/dist/cjs/xlsx/xform/table/table-xform.js +12 -12
  164. package/dist/cjs/xlsx/xlsx.js +833 -91
  165. package/dist/esm/csv/csv.js +159 -189
  166. package/dist/esm/doc/workbook.js +175 -64
  167. package/dist/esm/index.browser.js +1 -33
  168. package/dist/esm/index.js +8 -23
  169. package/dist/esm/local.js +1 -0
  170. package/dist/esm/utils/utils.js +123 -15
  171. package/dist/esm/utils/zip/compress.js +164 -16
  172. package/dist/esm/xlsx/xform/pivot-table/pivot-table-xform.js +3 -2
  173. package/dist/esm/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +3 -2
  174. package/dist/esm/xlsx/xlsx.js +829 -87
  175. package/dist/types/csv/csv.d.ts +71 -97
  176. package/dist/types/doc/anchor.d.ts +1 -1
  177. package/dist/types/doc/cell.d.ts +7 -7
  178. package/dist/types/doc/column.d.ts +3 -3
  179. package/dist/types/doc/defined-names.d.ts +4 -4
  180. package/dist/types/doc/image.d.ts +2 -2
  181. package/dist/types/doc/modelcontainer.d.ts +1 -1
  182. package/dist/types/doc/pivot-table.d.ts +1 -1
  183. package/dist/types/doc/range.d.ts +1 -1
  184. package/dist/types/doc/row.d.ts +3 -3
  185. package/dist/types/doc/table.d.ts +2 -2
  186. package/dist/types/doc/workbook.d.ts +92 -62
  187. package/dist/types/doc/worksheet.d.ts +10 -10
  188. package/dist/types/index.browser.d.ts +5 -19
  189. package/dist/types/index.d.ts +23 -24
  190. package/dist/types/local.d.ts +1 -0
  191. package/dist/types/stream/xlsx/hyperlink-reader.d.ts +1 -1
  192. package/dist/types/stream/xlsx/workbook-reader.d.ts +4 -4
  193. package/dist/types/stream/xlsx/workbook-writer.d.ts +6 -6
  194. package/dist/types/stream/xlsx/worksheet-reader.d.ts +5 -5
  195. package/dist/types/stream/xlsx/worksheet-writer.d.ts +9 -9
  196. package/dist/types/utils/col-cache.d.ts +1 -1
  197. package/dist/types/utils/sheet-utils.d.ts +3 -3
  198. package/dist/types/utils/unzip/extract.d.ts +6 -6
  199. package/dist/types/utils/unzip/index.d.ts +8 -8
  200. package/dist/types/utils/unzip/parse.d.ts +3 -3
  201. package/dist/types/utils/utils.d.ts +25 -6
  202. package/dist/types/utils/zip/compress.d.ts +45 -13
  203. package/dist/types/utils/zip/index.d.ts +5 -5
  204. package/dist/types/utils/zip/zip-builder.d.ts +1 -1
  205. package/dist/types/xlsx/xform/base-xform.d.ts +1 -1
  206. package/dist/types/xlsx/xform/book/defined-name-xform.d.ts +1 -1
  207. package/dist/types/xlsx/xform/book/sheet-xform.d.ts +1 -1
  208. package/dist/types/xlsx/xform/book/workbook-calc-properties-xform.d.ts +1 -1
  209. package/dist/types/xlsx/xform/book/workbook-pivot-cache-xform.d.ts +1 -1
  210. package/dist/types/xlsx/xform/book/workbook-properties-xform.d.ts +1 -1
  211. package/dist/types/xlsx/xform/book/workbook-view-xform.d.ts +1 -1
  212. package/dist/types/xlsx/xform/book/workbook-xform.d.ts +2 -2
  213. package/dist/types/xlsx/xform/comment/comment-xform.d.ts +2 -2
  214. package/dist/types/xlsx/xform/comment/comments-xform.d.ts +2 -2
  215. package/dist/types/xlsx/xform/comment/style/vml-position-xform.d.ts +1 -1
  216. package/dist/types/xlsx/xform/comment/style/vml-protection-xform.d.ts +1 -1
  217. package/dist/types/xlsx/xform/comment/vml-anchor-xform.d.ts +1 -1
  218. package/dist/types/xlsx/xform/comment/vml-client-data-xform.d.ts +1 -1
  219. package/dist/types/xlsx/xform/comment/vml-notes-xform.d.ts +1 -1
  220. package/dist/types/xlsx/xform/comment/vml-shape-xform.d.ts +1 -1
  221. package/dist/types/xlsx/xform/comment/vml-textbox-xform.d.ts +1 -1
  222. package/dist/types/xlsx/xform/composite-xform.d.ts +1 -1
  223. package/dist/types/xlsx/xform/core/app-heading-pairs-xform.d.ts +1 -1
  224. package/dist/types/xlsx/xform/core/app-titles-of-parts-xform.d.ts +1 -1
  225. package/dist/types/xlsx/xform/core/app-xform.d.ts +1 -1
  226. package/dist/types/xlsx/xform/core/content-types-xform.d.ts +1 -1
  227. package/dist/types/xlsx/xform/core/core-xform.d.ts +1 -1
  228. package/dist/types/xlsx/xform/core/relationship-xform.d.ts +1 -1
  229. package/dist/types/xlsx/xform/core/relationships-xform.d.ts +1 -1
  230. package/dist/types/xlsx/xform/drawing/base-cell-anchor-xform.d.ts +1 -1
  231. package/dist/types/xlsx/xform/drawing/blip-fill-xform.d.ts +2 -2
  232. package/dist/types/xlsx/xform/drawing/blip-xform.d.ts +1 -1
  233. package/dist/types/xlsx/xform/drawing/c-nv-pic-pr-xform.d.ts +1 -1
  234. package/dist/types/xlsx/xform/drawing/c-nv-pr-xform.d.ts +1 -1
  235. package/dist/types/xlsx/xform/drawing/cell-position-xform.d.ts +2 -2
  236. package/dist/types/xlsx/xform/drawing/drawing-xform.d.ts +1 -1
  237. package/dist/types/xlsx/xform/drawing/ext-lst-xform.d.ts +1 -1
  238. package/dist/types/xlsx/xform/drawing/ext-xform.d.ts +1 -1
  239. package/dist/types/xlsx/xform/drawing/hlink-click-xform.d.ts +1 -1
  240. package/dist/types/xlsx/xform/drawing/nv-pic-pr-xform.d.ts +1 -1
  241. package/dist/types/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +1 -1
  242. package/dist/types/xlsx/xform/drawing/pic-xform.d.ts +1 -1
  243. package/dist/types/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +1 -1
  244. package/dist/types/xlsx/xform/list-xform.d.ts +1 -1
  245. package/dist/types/xlsx/xform/pivot-table/cache-field-xform.d.ts +1 -1
  246. package/dist/types/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +3 -3
  247. package/dist/types/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +2 -2
  248. package/dist/types/xlsx/xform/pivot-table/pivot-table-xform.d.ts +1 -1
  249. package/dist/types/xlsx/xform/sheet/auto-filter-xform.d.ts +1 -1
  250. package/dist/types/xlsx/xform/sheet/cell-xform.d.ts +1 -1
  251. package/dist/types/xlsx/xform/sheet/cf/cf-rule-xform.d.ts +6 -6
  252. package/dist/types/xlsx/xform/sheet/cf/cfvo-xform.d.ts +1 -1
  253. package/dist/types/xlsx/xform/sheet/cf/color-scale-xform.d.ts +3 -3
  254. package/dist/types/xlsx/xform/sheet/cf/conditional-formatting-xform.d.ts +1 -1
  255. package/dist/types/xlsx/xform/sheet/cf/conditional-formattings-xform.d.ts +2 -2
  256. package/dist/types/xlsx/xform/sheet/cf/databar-xform.d.ts +3 -3
  257. package/dist/types/xlsx/xform/sheet/cf/ext-lst-ref-xform.d.ts +1 -1
  258. package/dist/types/xlsx/xform/sheet/cf/formula-xform.d.ts +1 -1
  259. package/dist/types/xlsx/xform/sheet/cf/icon-set-xform.d.ts +2 -2
  260. package/dist/types/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.d.ts +1 -1
  261. package/dist/types/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.d.ts +3 -3
  262. package/dist/types/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.d.ts +2 -2
  263. package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.d.ts +3 -3
  264. package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.d.ts +2 -2
  265. package/dist/types/xlsx/xform/sheet/cf-ext/databar-ext-xform.d.ts +3 -3
  266. package/dist/types/xlsx/xform/sheet/cf-ext/f-ext-xform.d.ts +1 -1
  267. package/dist/types/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.d.ts +3 -3
  268. package/dist/types/xlsx/xform/sheet/cf-ext/sqref-ext-xform.d.ts +1 -1
  269. package/dist/types/xlsx/xform/sheet/col-xform.d.ts +1 -1
  270. package/dist/types/xlsx/xform/sheet/data-validations-xform.d.ts +1 -1
  271. package/dist/types/xlsx/xform/sheet/dimension-xform.d.ts +1 -1
  272. package/dist/types/xlsx/xform/sheet/drawing-xform.d.ts +1 -1
  273. package/dist/types/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -1
  274. package/dist/types/xlsx/xform/sheet/header-footer-xform.d.ts +1 -1
  275. package/dist/types/xlsx/xform/sheet/hyperlink-xform.d.ts +1 -1
  276. package/dist/types/xlsx/xform/sheet/merge-cell-xform.d.ts +1 -1
  277. package/dist/types/xlsx/xform/sheet/outline-properties-xform.d.ts +1 -1
  278. package/dist/types/xlsx/xform/sheet/page-breaks-xform.d.ts +1 -1
  279. package/dist/types/xlsx/xform/sheet/page-margins-xform.d.ts +1 -1
  280. package/dist/types/xlsx/xform/sheet/page-setup-properties-xform.d.ts +1 -1
  281. package/dist/types/xlsx/xform/sheet/page-setup-xform.d.ts +1 -1
  282. package/dist/types/xlsx/xform/sheet/picture-xform.d.ts +1 -1
  283. package/dist/types/xlsx/xform/sheet/print-options-xform.d.ts +1 -1
  284. package/dist/types/xlsx/xform/sheet/row-breaks-xform.d.ts +1 -1
  285. package/dist/types/xlsx/xform/sheet/row-xform.d.ts +1 -1
  286. package/dist/types/xlsx/xform/sheet/sheet-format-properties-xform.d.ts +1 -1
  287. package/dist/types/xlsx/xform/sheet/sheet-properties-xform.d.ts +1 -1
  288. package/dist/types/xlsx/xform/sheet/sheet-protection-xform.d.ts +1 -1
  289. package/dist/types/xlsx/xform/sheet/sheet-view-xform.d.ts +1 -1
  290. package/dist/types/xlsx/xform/sheet/table-part-xform.d.ts +1 -1
  291. package/dist/types/xlsx/xform/sheet/worksheet-xform.d.ts +1 -1
  292. package/dist/types/xlsx/xform/simple/boolean-xform.d.ts +1 -1
  293. package/dist/types/xlsx/xform/simple/date-xform.d.ts +1 -1
  294. package/dist/types/xlsx/xform/simple/float-xform.d.ts +1 -1
  295. package/dist/types/xlsx/xform/simple/integer-xform.d.ts +1 -1
  296. package/dist/types/xlsx/xform/simple/string-xform.d.ts +1 -1
  297. package/dist/types/xlsx/xform/static-xform.d.ts +1 -1
  298. package/dist/types/xlsx/xform/strings/phonetic-text-xform.d.ts +1 -1
  299. package/dist/types/xlsx/xform/strings/rich-text-xform.d.ts +3 -3
  300. package/dist/types/xlsx/xform/strings/shared-string-xform.d.ts +1 -1
  301. package/dist/types/xlsx/xform/strings/shared-strings-xform.d.ts +2 -2
  302. package/dist/types/xlsx/xform/strings/text-xform.d.ts +1 -1
  303. package/dist/types/xlsx/xform/style/alignment-xform.d.ts +1 -1
  304. package/dist/types/xlsx/xform/style/border-xform.d.ts +2 -2
  305. package/dist/types/xlsx/xform/style/color-xform.d.ts +1 -1
  306. package/dist/types/xlsx/xform/style/dxf-xform.d.ts +1 -1
  307. package/dist/types/xlsx/xform/style/fill-xform.d.ts +2 -2
  308. package/dist/types/xlsx/xform/style/font-xform.d.ts +1 -1
  309. package/dist/types/xlsx/xform/style/numfmt-xform.d.ts +1 -1
  310. package/dist/types/xlsx/xform/style/protection-xform.d.ts +1 -1
  311. package/dist/types/xlsx/xform/style/style-xform.d.ts +3 -3
  312. package/dist/types/xlsx/xform/style/styles-xform.d.ts +2 -2
  313. package/dist/types/xlsx/xform/style/underline-xform.d.ts +1 -1
  314. package/dist/types/xlsx/xform/table/auto-filter-xform.d.ts +2 -2
  315. package/dist/types/xlsx/xform/table/custom-filter-xform.d.ts +1 -1
  316. package/dist/types/xlsx/xform/table/filter-column-xform.d.ts +2 -2
  317. package/dist/types/xlsx/xform/table/filter-xform.d.ts +1 -1
  318. package/dist/types/xlsx/xform/table/table-column-xform.d.ts +1 -1
  319. package/dist/types/xlsx/xform/table/table-style-info-xform.d.ts +1 -1
  320. package/dist/types/xlsx/xform/table/table-xform.d.ts +1 -1
  321. package/dist/types/xlsx/xlsx.d.ts +80 -20
  322. package/package.json +15 -13
  323. package/dist/browser/excelts.esm.js +0 -19115
  324. package/dist/browser/excelts.esm.js.map +0 -1
  325. package/dist/browser/excelts.esm.min.js +0 -127
  326. package/dist/cjs/csv/csv-core.js +0 -701
  327. package/dist/cjs/csv/csv-stream.js +0 -646
  328. package/dist/cjs/csv/csv.base.js +0 -154
  329. package/dist/cjs/csv/csv.browser.js +0 -68
  330. package/dist/cjs/doc/workbook.base.js +0 -211
  331. package/dist/cjs/doc/workbook.browser.js +0 -62
  332. package/dist/cjs/utils/browser-buffer.js +0 -75
  333. package/dist/cjs/utils/encryptor.browser.js +0 -240
  334. package/dist/cjs/utils/stream-buf.browser.js +0 -355
  335. package/dist/cjs/utils/utils.base.js +0 -161
  336. package/dist/cjs/utils/utils.browser.js +0 -89
  337. package/dist/cjs/utils/zip/compress.base.js +0 -85
  338. package/dist/cjs/utils/zip/compress.browser.js +0 -83
  339. package/dist/cjs/utils/zip/crc32.browser.js +0 -88
  340. package/dist/cjs/utils/zip-stream.browser.js +0 -135
  341. package/dist/cjs/xlsx/xlsx.base.js +0 -742
  342. package/dist/cjs/xlsx/xlsx.browser.js +0 -205
  343. package/dist/esm/csv/csv-core.js +0 -694
  344. package/dist/esm/csv/csv-stream.js +0 -638
  345. package/dist/esm/csv/csv.base.js +0 -141
  346. package/dist/esm/csv/csv.browser.js +0 -65
  347. package/dist/esm/doc/workbook.base.js +0 -207
  348. package/dist/esm/doc/workbook.browser.js +0 -59
  349. package/dist/esm/utils/browser-buffer.js +0 -67
  350. package/dist/esm/utils/encryptor.browser.js +0 -237
  351. package/dist/esm/utils/stream-buf.browser.js +0 -352
  352. package/dist/esm/utils/utils.base.js +0 -142
  353. package/dist/esm/utils/utils.browser.js +0 -68
  354. package/dist/esm/utils/zip/compress.base.js +0 -80
  355. package/dist/esm/utils/zip/compress.browser.js +0 -76
  356. package/dist/esm/utils/zip/crc32.browser.js +0 -82
  357. package/dist/esm/utils/zip-stream.browser.js +0 -132
  358. package/dist/esm/xlsx/xlsx.base.js +0 -739
  359. package/dist/esm/xlsx/xlsx.browser.js +0 -202
  360. package/dist/types/csv/csv-core.d.ts +0 -207
  361. package/dist/types/csv/csv-stream.d.ts +0 -114
  362. package/dist/types/csv/csv.base.d.ts +0 -61
  363. package/dist/types/csv/csv.browser.d.ts +0 -33
  364. package/dist/types/doc/workbook.base.d.ts +0 -111
  365. package/dist/types/doc/workbook.browser.d.ts +0 -38
  366. package/dist/types/utils/browser-buffer.d.ts +0 -28
  367. package/dist/types/utils/encryptor.browser.d.ts +0 -28
  368. package/dist/types/utils/stream-buf.browser.d.ts +0 -41
  369. package/dist/types/utils/utils.base.d.ts +0 -29
  370. package/dist/types/utils/utils.browser.d.ts +0 -29
  371. package/dist/types/utils/zip/compress.base.d.ts +0 -42
  372. package/dist/types/utils/zip/compress.browser.d.ts +0 -54
  373. package/dist/types/utils/zip/crc32.browser.d.ts +0 -52
  374. package/dist/types/utils/zip-stream.browser.d.ts +0 -39
  375. package/dist/types/xlsx/xlsx.base.d.ts +0 -134
  376. package/dist/types/xlsx/xlsx.browser.d.ts +0 -31
@@ -1,202 +0,0 @@
1
- /**
2
- * XLSX Browser version - No Node.js dependencies
3
- *
4
- * Extends XLSXBase with:
5
- * - load: Load from buffer/ArrayBuffer/Uint8Array
6
- * - writeBuffer: Write to BrowserBuffer (Uint8Array with toString("base64"))
7
- *
8
- * NOT supported:
9
- * - readFile/writeFile (no file system)
10
- * - read/write (no streams)
11
- */
12
- import { Unzip, UnzipInflate } from "fflate";
13
- import { ZipWriter } from "../utils/zip-stream.browser.js";
14
- import { StreamBuf } from "../utils/stream-buf.browser.js";
15
- import { bufferToString } from "../utils/utils.js";
16
- import { base64ToUint8Array, BrowserBuffer } from "../utils/browser-buffer.js";
17
- import { XLSXBase } from "./xlsx.base.js";
18
- /**
19
- * Simple stream-like wrapper for parsing - implements async iterable
20
- */
21
- class SimpleStream {
22
- constructor(data) {
23
- this.listeners = new Map();
24
- this.ended = false;
25
- this.data = data;
26
- }
27
- async *[Symbol.asyncIterator]() {
28
- yield this.data;
29
- }
30
- on(event, callback) {
31
- const listeners = this.listeners.get(event) || [];
32
- listeners.push(callback);
33
- this.listeners.set(event, listeners);
34
- if (!this.ended) {
35
- this.ended = true;
36
- queueMicrotask(() => {
37
- this.emit("data", this.data);
38
- this.emit("end");
39
- });
40
- }
41
- return this;
42
- }
43
- removeListener(event, callback) {
44
- const listeners = this.listeners.get(event) || [];
45
- const index = listeners.indexOf(callback);
46
- if (index !== -1) {
47
- listeners.splice(index, 1);
48
- }
49
- return this;
50
- }
51
- emit(event, ...args) {
52
- const listeners = this.listeners.get(event) || [];
53
- listeners.forEach(cb => cb(...args));
54
- }
55
- pipe(dest) {
56
- dest.write(this.data instanceof Uint8Array ? this.data : new TextEncoder().encode(this.data));
57
- dest.end();
58
- return dest;
59
- }
60
- }
61
- class XLSX extends XLSXBase {
62
- // ===========================================================================
63
- // Abstract method implementations
64
- // ===========================================================================
65
- createStreamBuf() {
66
- return new StreamBuf();
67
- }
68
- createBinaryStream(data) {
69
- return new SimpleStream(data);
70
- }
71
- createTextStream(content) {
72
- return new SimpleStream(content);
73
- }
74
- bufferToString(data) {
75
- return bufferToString(data);
76
- }
77
- // ===========================================================================
78
- // Browser specific: Buffer operations
79
- // ===========================================================================
80
- /**
81
- * Load workbook from buffer/ArrayBuffer/Uint8Array
82
- * This is the main entry point for browser usage
83
- */
84
- async load(data, options) {
85
- let buffer;
86
- if (!data ||
87
- (typeof data === "object" && !(data instanceof Uint8Array) && !(data instanceof ArrayBuffer))) {
88
- throw new Error("Can't read the data of 'the loaded zip file'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?");
89
- }
90
- if (options && options.base64) {
91
- buffer = base64ToUint8Array(data.toString());
92
- }
93
- else if (data instanceof ArrayBuffer) {
94
- buffer = new Uint8Array(data);
95
- }
96
- else if (data instanceof Uint8Array) {
97
- buffer = data;
98
- }
99
- else {
100
- buffer = new Uint8Array(data);
101
- }
102
- const allFiles = {};
103
- await new Promise((resolve, reject) => {
104
- let filesProcessed = 0;
105
- let zipEnded = false;
106
- let filesStarted = 0;
107
- const checkCompletion = () => {
108
- if (zipEnded && filesProcessed === filesStarted) {
109
- resolve();
110
- }
111
- };
112
- const unzipper = new Unzip((file) => {
113
- filesStarted++;
114
- const fileChunks = [];
115
- let totalLength = 0;
116
- file.ondata = (err, fileData, final) => {
117
- if (err) {
118
- reject(err);
119
- return;
120
- }
121
- if (fileData) {
122
- fileChunks.push(fileData);
123
- totalLength += fileData.length;
124
- }
125
- if (final) {
126
- if (fileChunks.length === 1) {
127
- allFiles[file.name] = fileChunks[0];
128
- }
129
- else if (fileChunks.length > 1) {
130
- const fullData = new Uint8Array(totalLength);
131
- let offset = 0;
132
- for (const chunk of fileChunks) {
133
- fullData.set(chunk, offset);
134
- offset += chunk.length;
135
- }
136
- allFiles[file.name] = fullData;
137
- }
138
- else {
139
- allFiles[file.name] = new Uint8Array(0);
140
- }
141
- filesProcessed++;
142
- fileChunks.length = 0;
143
- checkCompletion();
144
- }
145
- };
146
- file.start();
147
- });
148
- unzipper.register(UnzipInflate);
149
- unzipper.push(buffer, true);
150
- zipEnded = true;
151
- checkCompletion();
152
- });
153
- return this.loadFromFiles(allFiles, options);
154
- }
155
- /**
156
- * Write workbook to buffer
157
- * Returns a BrowserBuffer which supports toString("base64")
158
- */
159
- async writeBuffer(options) {
160
- options = options || {};
161
- const { model } = this.workbook;
162
- const zip = new ZipWriter(options.zip);
163
- const stream = new StreamBuf();
164
- zip.pipe(stream);
165
- this.prepareModel(model, options);
166
- await this.addContentTypes(zip, model);
167
- await this.addOfficeRels(zip, model);
168
- await this.addWorkbookRels(zip, model);
169
- await this.addWorksheets(zip, model);
170
- await this.addSharedStrings(zip, model);
171
- this.addDrawings(zip, model);
172
- this.addTables(zip, model);
173
- this.addPivotTables(zip, model);
174
- await Promise.all([this.addThemes(zip, model), this.addStyles(zip, model)]);
175
- await this.addMedia(zip, model);
176
- await Promise.all([this.addApp(zip, model), this.addCore(zip, model)]);
177
- await this.addWorkbook(zip, model);
178
- await this._finalize(zip);
179
- return BrowserBuffer.from(stream.read());
180
- }
181
- // ===========================================================================
182
- // Browser specific: Media handling (no file support)
183
- // ===========================================================================
184
- async addMedia(zip, model) {
185
- await Promise.all(model.media.map(async (medium) => {
186
- if (medium.type === "image") {
187
- const filename = `xl/media/${medium.name}.${medium.extension}`;
188
- if (medium.buffer) {
189
- return zip.append(medium.buffer, { name: filename });
190
- }
191
- if (medium.base64) {
192
- const dataimg64 = medium.base64;
193
- const content = dataimg64.substring(dataimg64.indexOf(",") + 1);
194
- return zip.append(content, { name: filename, base64: true });
195
- }
196
- throw new Error("Loading images from filename is not supported in browser");
197
- }
198
- throw new Error("Unsupported media");
199
- }));
200
- }
201
- }
202
- export { XLSX };
@@ -1,207 +0,0 @@
1
- /**
2
- * CSV Parser and Formatter - RFC 4180 compliant
3
- *
4
- * A lightweight, cross-platform CSV implementation that works in both
5
- * Node.js and Browser environments with zero dependencies.
6
- *
7
- * Compatible with fast-csv API for drop-in replacement.
8
- *
9
- * @see https://tools.ietf.org/html/rfc4180
10
- */
11
- /** Header array type (can include undefined to skip columns) */
12
- export type HeaderArray = (string | undefined | null)[];
13
- /** Header transform function */
14
- export type HeaderTransformFunction = (headers: string[]) => HeaderArray;
15
- /** Row types */
16
- export type RowArray = string[];
17
- export type RowMap = Record<string, string>;
18
- export type Row = RowArray | RowMap;
19
- /** Row transform callback */
20
- export type RowTransformCallback<T> = (error?: Error | null, row?: T | null) => void;
21
- /** Row transform function - sync or async */
22
- export type RowTransformFunction<I = Row, O = Row> = ((row: I) => O | null) | ((row: I, callback: RowTransformCallback<O>) => void);
23
- /** Row validate callback */
24
- export type RowValidateCallback = (error?: Error | null, isValid?: boolean, reason?: string) => void;
25
- /** Row validate function - sync or async */
26
- export type RowValidateFunction<T = Row> = ((row: T) => boolean) | ((row: T, callback: RowValidateCallback) => void);
27
- /** Validation result */
28
- export interface RowValidationResult<T = Row> {
29
- row: T | null;
30
- isValid: boolean;
31
- reason?: string;
32
- }
33
- /**
34
- * CSV parsing options - compatible with fast-csv
35
- */
36
- export interface CsvParseOptions {
37
- /** Field delimiter (default: ",") */
38
- delimiter?: string;
39
- /** Quote character (default: '"'), set to false or null to disable quoting */
40
- quote?: string | false | null;
41
- /** Escape character for quotes (default: '"'), set to false or null to disable */
42
- escape?: string | false | null;
43
- /** Skip empty lines (default: false) - same as fast-csv ignoreEmpty */
44
- skipEmptyLines?: boolean;
45
- /** Alias for skipEmptyLines for fast-csv compatibility */
46
- ignoreEmpty?: boolean;
47
- /** Trim whitespace from both sides of fields (default: false) */
48
- trim?: boolean;
49
- /** Left trim whitespace from fields (default: false) */
50
- ltrim?: boolean;
51
- /** Right trim whitespace from fields (default: false) */
52
- rtrim?: boolean;
53
- /**
54
- * Header handling:
55
- * - true: first row is headers, return objects
56
- * - false: no headers, return arrays
57
- * - string[]: use these as headers
58
- * - function: transform first row headers
59
- */
60
- headers?: boolean | HeaderArray | HeaderTransformFunction;
61
- /**
62
- * If true and headers is string[], discard first row and use provided headers
63
- */
64
- renameHeaders?: boolean;
65
- /** Comment character - lines starting with this are ignored */
66
- comment?: string;
67
- /** Maximum number of data rows to parse (excluding header) */
68
- maxRows?: number;
69
- /** Number of lines to skip at the beginning (before header detection) */
70
- skipLines?: number;
71
- /** Number of data rows to skip (after header detection) */
72
- skipRows?: number;
73
- /**
74
- * Strict column handling:
75
- * - If true, rows with column count mismatch emit 'data-invalid' event
76
- * - If false (default), throws error on mismatch (unless discardUnmappedColumns)
77
- */
78
- strictColumnHandling?: boolean;
79
- /**
80
- * If true, discard columns that exceed header count
81
- * Only valid when headers are specified
82
- */
83
- discardUnmappedColumns?: boolean;
84
- /**
85
- * Enable object mode (default: true for Node.js streams)
86
- * - true: push row objects/arrays
87
- * - false: push JSON strings
88
- */
89
- objectMode?: boolean;
90
- /**
91
- * Character encoding for input (default: "utf8")
92
- * Only used in Node.js streaming context
93
- */
94
- encoding?: BufferEncoding;
95
- /**
96
- * Synchronous transform function to apply to each row after parsing
97
- * Return null/undefined to skip the row
98
- * Works in both Node.js and Browser environments
99
- *
100
- * @example
101
- * // With headers (row is Record<string, string>)
102
- * transform: (row) => ({ ...row, name: row.name.toUpperCase() })
103
- *
104
- * // Without headers (row is string[])
105
- * transform: (row) => [row[0].toUpperCase(), row[1]]
106
- */
107
- transform?: (row: Row) => Row | null | undefined;
108
- /**
109
- * Synchronous validate function to check each row
110
- * Return false to mark row as invalid (will be in invalidRows)
111
- * Can also return { isValid: boolean, reason?: string }
112
- * Works in both Node.js and Browser environments
113
- *
114
- * @example
115
- * // With headers
116
- * validate: (row) => row.name !== ''
117
- *
118
- * // With custom reason
119
- * validate: (row) => ({ isValid: row.age >= 18, reason: 'Must be adult' })
120
- */
121
- validate?: (row: Row) => boolean | {
122
- isValid: boolean;
123
- reason?: string;
124
- };
125
- }
126
- /**
127
- * CSV formatting options - compatible with fast-csv
128
- */
129
- export interface CsvFormatOptions {
130
- /** Field delimiter (default: ",") */
131
- delimiter?: string;
132
- /** Quote character (default: '"'), set to false or null to disable quoting */
133
- quote?: string | false | null;
134
- /** Escape character (default: same as quote) */
135
- escape?: string | false | null;
136
- /** Row delimiter (default: "\n" for fast-csv compatibility) */
137
- rowDelimiter?: string;
138
- /** Always quote all fields (default: false, only quote when necessary) */
139
- alwaysQuote?: boolean;
140
- /** Quote specific columns by name or index */
141
- quoteColumns?: boolean | boolean[] | Record<string, boolean>;
142
- /** Quote header fields */
143
- quoteHeaders?: boolean | boolean[] | Record<string, boolean>;
144
- /**
145
- * Header handling:
146
- * - true: auto-detect headers from first object
147
- * - false/null: no headers
148
- * - string[]: use these as headers
149
- */
150
- headers?: string[] | boolean | null;
151
- /**
152
- * Whether to write headers (default: true when headers is provided)
153
- * Set to false to suppress header row output
154
- */
155
- writeHeaders?: boolean;
156
- /** Include BOM for UTF-8 (default: false) */
157
- writeBOM?: boolean;
158
- /** Include final row delimiter (default: true) */
159
- includeEndRowDelimiter?: boolean;
160
- /** Write headers even when there's no data (default: false) */
161
- alwaysWriteHeaders?: boolean;
162
- /**
163
- * Transform function to apply to each row before formatting
164
- * Can be sync (returns row) or async (calls callback)
165
- */
166
- transform?: RowTransformFunction<Row, Row>;
167
- /**
168
- * Enable object mode (default: true for Node.js streams)
169
- * - true: accept row objects/arrays directly
170
- * - false: accept JSON strings
171
- */
172
- objectMode?: boolean;
173
- }
174
- /**
175
- * Parsed CSV result with headers
176
- */
177
- export interface CsvParseResult<T = string[]> {
178
- /** Header row (if headers option was true) */
179
- headers?: string[];
180
- /** Data rows */
181
- rows: T[];
182
- /** Invalid rows (when strictColumnHandling is true) */
183
- invalidRows?: {
184
- row: string[];
185
- reason: string;
186
- }[];
187
- }
188
- /**
189
- * Check if a transform function is synchronous (1 argument) vs async (2 arguments)
190
- */
191
- export declare function isSyncTransform<I, O>(transform: RowTransformFunction<I, O>): transform is (row: I) => O | null;
192
- /**
193
- * Check if a validate function is synchronous (1 argument) vs async (2 arguments)
194
- */
195
- export declare function isSyncValidate<T>(validate: RowValidateFunction<T>): validate is (row: T) => boolean;
196
- /**
197
- * Parse a CSV string into rows of fields
198
- */
199
- export declare function parseCsv(input: string, options?: CsvParseOptions): string[][] | CsvParseResult<Record<string, string>>;
200
- /**
201
- * Format data as a CSV string
202
- */
203
- export declare function formatCsv(data: (string | number | boolean | null | undefined)[][] | Record<string, any>[], options?: CsvFormatOptions): string;
204
- /**
205
- * Async CSV parser that yields rows one at a time
206
- */
207
- export declare function parseCsvStream(input: string | AsyncIterable<string>, options?: CsvParseOptions): AsyncGenerator<string[] | Record<string, string>, void, unknown>;
@@ -1,114 +0,0 @@
1
- /**
2
- * CSV Streaming Support for Node.js
3
- *
4
- * Provides true streaming CSV parsing and formatting using Node.js streams.
5
- * This enables processing of large CSV files without loading them entirely into memory.
6
- */
7
- import { Transform, type Readable, type TransformCallback } from "stream";
8
- import type { CsvParseOptions, CsvFormatOptions, RowTransformFunction, RowValidateFunction, Row } from "./csv-core";
9
- /**
10
- * Transform stream that parses CSV data row by row
11
- *
12
- * @example
13
- * ```ts
14
- * const parser = new CsvParserStream({ headers: true });
15
- * fs.createReadStream('data.csv')
16
- * .pipe(parser)
17
- * .on('data', (row) => console.log(row));
18
- * ```
19
- */
20
- export declare class CsvParserStream extends Transform {
21
- private options;
22
- private buffer;
23
- private currentRow;
24
- private currentField;
25
- private inQuotes;
26
- private lineNumber;
27
- private rowCount;
28
- private skippedDataRows;
29
- private headerRow;
30
- private headersEmitted;
31
- private delimiter;
32
- private quote;
33
- private escape;
34
- private quoteEnabled;
35
- private _rowTransform;
36
- private _rowValidator;
37
- private encoding;
38
- constructor(options?: CsvParseOptions);
39
- /**
40
- * Set a transform function to modify rows before emitting
41
- * Supports both sync and async transforms
42
- */
43
- transform<I extends Row = Row, O extends Row = Row>(transformFunction: RowTransformFunction<I, O>): this;
44
- /**
45
- * Set a validate function to filter rows
46
- * Invalid rows emit 'data-invalid' event
47
- */
48
- validate<T extends Row = Row>(validateFunction: RowValidateFunction<T>): this;
49
- _transform(chunk: Buffer | string, encoding: BufferEncoding, callback: TransformCallback): void;
50
- _flush(callback: TransformCallback): void;
51
- private applyTrim;
52
- private processBuffer;
53
- private buildRow;
54
- private processPendingRows;
55
- private transformAndValidateRow;
56
- private validateRow;
57
- private emitRow;
58
- }
59
- /**
60
- * Options for CSV formatter stream
61
- */
62
- export interface CsvFormatterStreamOptions extends CsvFormatOptions {
63
- /** Whether input is objects (vs arrays) */
64
- objectMode?: boolean;
65
- }
66
- /**
67
- * Transform stream that formats rows to CSV
68
- *
69
- * @example
70
- * ```ts
71
- * const formatter = new CsvFormatterStream({ headers: ['name', 'age'] });
72
- * formatter.pipe(fs.createWriteStream('output.csv'));
73
- * formatter.write(['Alice', 30]);
74
- * formatter.write(['Bob', 25]);
75
- * formatter.end();
76
- * ```
77
- */
78
- export declare class CsvFormatterStream extends Transform {
79
- private options;
80
- private delimiter;
81
- private quote;
82
- private escape;
83
- private rowDelimiter;
84
- private quoteEnabled;
85
- private alwaysQuote;
86
- private headerWritten;
87
- private headers;
88
- private shouldWriteHeaders;
89
- private rowCount;
90
- private _rowTransform;
91
- constructor(options?: CsvFormatterStreamOptions);
92
- /**
93
- * Set a transform function to modify rows before formatting
94
- */
95
- transform<I extends Row = Row, O extends Row = Row>(transformFunction: RowTransformFunction<I, O>): this;
96
- _transform(chunk: any, encoding: BufferEncoding, callback: TransformCallback): void;
97
- _flush(callback: TransformCallback): void;
98
- private formatAndPush;
99
- private formatRow;
100
- private shouldQuoteField;
101
- private formatField;
102
- }
103
- /**
104
- * Create a readable stream from an array of rows
105
- */
106
- export declare function createCsvReadableStream(rows: any[][], options?: CsvFormatOptions): Readable;
107
- /**
108
- * Create parser stream factory
109
- */
110
- export declare function createCsvParserStream(options?: CsvParseOptions): CsvParserStream;
111
- /**
112
- * Create formatter stream factory
113
- */
114
- export declare function createCsvFormatterStream(options?: CsvFormatterStreamOptions): CsvFormatterStream;
@@ -1,61 +0,0 @@
1
- /**
2
- * CSV Base class - Shared functionality for Node.js and Browser
3
- *
4
- * Uses native CSV parser (RFC 4180 compliant) with zero external dependencies.
5
- * Date parsing uses dayjs for format flexibility.
6
- */
7
- import { type CsvParseOptions, type CsvFormatOptions } from "./csv-core";
8
- import type { Workbook } from "../doc/workbook";
9
- import type { Worksheet } from "../doc/worksheet";
10
- /**
11
- * CSV read options
12
- */
13
- export interface CsvReadOptions {
14
- /** Date format strings to try when parsing (default: ISO formats) */
15
- dateFormats?: string[];
16
- /** Custom value mapper function */
17
- map?(value: any, index: number): any;
18
- /** Worksheet name to create (default: "Sheet1") */
19
- sheetName?: string;
20
- /** CSV parsing options */
21
- parserOptions?: Partial<CsvParseOptions>;
22
- }
23
- /**
24
- * CSV write options
25
- */
26
- export interface CsvWriteOptions {
27
- /** Date format for output (default: ISO format) */
28
- dateFormat?: string;
29
- /** Use UTC for dates (default: false) */
30
- dateUTC?: boolean;
31
- /** Worksheet name or ID to export */
32
- sheetName?: string;
33
- /** Worksheet ID to export */
34
- sheetId?: number;
35
- /** Output encoding (default: "utf8") */
36
- encoding?: string;
37
- /** Custom value mapper function */
38
- map?(value: any, index: number): any;
39
- /** Include empty rows (default: true) */
40
- includeEmptyRows?: boolean;
41
- /** CSV formatting options */
42
- formatterOptions?: Partial<CsvFormatOptions>;
43
- }
44
- /**
45
- * Create the default value mapper for CSV parsing
46
- */
47
- export declare function createDefaultValueMapper(dateFormats: string[]): (datum: any) => any;
48
- /**
49
- * Create the default value mapper for CSV writing
50
- */
51
- export declare function createDefaultWriteMapper(dateFormat?: string, dateUTC?: boolean): (value: any) => any;
52
- /**
53
- * Parse CSV content into a worksheet
54
- */
55
- export declare function parseCsvToWorksheet(content: string, workbook: Workbook, options?: CsvReadOptions): Worksheet;
56
- /**
57
- * Format worksheet as CSV string
58
- */
59
- export declare function formatWorksheetToCsv(worksheet: Worksheet | undefined, options?: CsvWriteOptions): string;
60
- export { parseCsv, formatCsv, parseCsvStream } from "./csv-core";
61
- export type { CsvParseOptions, CsvFormatOptions, CsvParseResult } from "./csv-core";
@@ -1,33 +0,0 @@
1
- /**
2
- * CSV class for Browser - No file system dependencies
3
- *
4
- * Provides:
5
- * - load: Load from string or ArrayBuffer
6
- * - writeString: Write to string
7
- * - writeBuffer: Write to Uint8Array
8
- */
9
- import { type CsvReadOptions, type CsvWriteOptions } from "./csv.base";
10
- import type { Workbook } from "../doc/workbook.browser";
11
- import type { Worksheet } from "../doc/worksheet";
12
- declare class CSV {
13
- workbook: Workbook;
14
- constructor(workbook: Workbook);
15
- /**
16
- * Load CSV from string or ArrayBuffer
17
- */
18
- load(data: string | ArrayBuffer | Uint8Array, options?: CsvReadOptions): Worksheet;
19
- /**
20
- * Write CSV to string
21
- */
22
- writeString(options?: CsvWriteOptions): string;
23
- /**
24
- * Write CSV to Uint8Array buffer
25
- */
26
- writeBuffer(options?: CsvWriteOptions): Uint8Array;
27
- readFile(_filename: string, _options?: CsvReadOptions): Promise<never>;
28
- read(_stream: any, _options?: CsvReadOptions): Promise<never>;
29
- writeFile(_filename: string, _options?: CsvWriteOptions): Promise<never>;
30
- write(_stream: any, _options?: CsvWriteOptions): Promise<never>;
31
- }
32
- export { CSV };
33
- export type { CsvReadOptions, CsvWriteOptions } from "./csv.base";