@cj-tech-master/excelts 1.6.3 → 2.0.0-canary.20251228013952.4f2c3c6

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 (400) hide show
  1. package/README.md +139 -24
  2. package/README_zh.md +140 -26
  3. package/dist/browser/excelts.esm.js +18468 -0
  4. package/dist/browser/excelts.esm.js.map +1 -0
  5. package/dist/browser/excelts.esm.min.js +125 -0
  6. package/dist/browser/excelts.iife.js +13107 -47146
  7. package/dist/browser/excelts.iife.js.map +1 -1
  8. package/dist/browser/excelts.iife.min.js +24 -106
  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 +137 -0
  12. package/dist/cjs/csv/csv.browser.js +68 -0
  13. package/dist/cjs/csv/csv.js +218 -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 +28 -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 +45 -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 +22 -22
  35. package/dist/cjs/stream/xlsx/workbook-writer.js +38 -38
  36. package/dist/cjs/stream/xlsx/worksheet-reader.js +17 -17
  37. package/dist/cjs/stream/xlsx/worksheet-writer.js +67 -60
  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/datetime.js +499 -0
  42. package/dist/cjs/utils/encryptor.browser.js +240 -0
  43. package/dist/cjs/utils/parse-sax.js +1191 -13
  44. package/dist/cjs/utils/shared-formula.js +5 -5
  45. package/dist/cjs/utils/sheet-utils.js +13 -13
  46. package/dist/cjs/utils/stream-buf.browser.js +355 -0
  47. package/dist/cjs/utils/stream-buf.js +5 -5
  48. package/dist/cjs/utils/unzip/extract.js +11 -11
  49. package/dist/cjs/utils/unzip/index.js +21 -21
  50. package/dist/cjs/utils/unzip/parse-extra-field.js +3 -3
  51. package/dist/cjs/utils/unzip/parse.js +16 -16
  52. package/dist/cjs/utils/unzip/zip-parser.js +14 -3
  53. package/dist/cjs/utils/utils.base.js +161 -0
  54. package/dist/cjs/utils/utils.browser.js +89 -0
  55. package/dist/cjs/utils/utils.js +46 -154
  56. package/dist/cjs/utils/xml-stream.js +3 -3
  57. package/dist/cjs/utils/zip/compress.base.js +88 -0
  58. package/dist/cjs/utils/zip/compress.browser.js +127 -0
  59. package/dist/cjs/utils/zip/compress.js +18 -198
  60. package/dist/cjs/utils/zip/crc32.browser.js +88 -0
  61. package/dist/cjs/utils/zip/deflate-fallback.js +575 -0
  62. package/dist/cjs/utils/zip/index.js +17 -17
  63. package/dist/cjs/utils/zip/streaming-zip.js +264 -0
  64. package/dist/cjs/utils/zip/zip-builder.js +10 -10
  65. package/dist/cjs/utils/zip-stream.browser.js +135 -0
  66. package/dist/cjs/utils/zip-stream.js +4 -4
  67. package/dist/cjs/xlsx/xform/base-xform.js +4 -4
  68. package/dist/cjs/xlsx/xform/book/defined-name-xform.js +4 -4
  69. package/dist/cjs/xlsx/xform/book/sheet-xform.js +4 -4
  70. package/dist/cjs/xlsx/xform/book/workbook-calc-properties-xform.js +2 -2
  71. package/dist/cjs/xlsx/xform/book/workbook-pivot-cache-xform.js +2 -2
  72. package/dist/cjs/xlsx/xform/book/workbook-properties-xform.js +2 -2
  73. package/dist/cjs/xlsx/xform/book/workbook-view-xform.js +2 -2
  74. package/dist/cjs/xlsx/xform/book/workbook-xform.js +24 -24
  75. package/dist/cjs/xlsx/xform/comment/comment-xform.js +4 -4
  76. package/dist/cjs/xlsx/xform/comment/comments-xform.js +6 -6
  77. package/dist/cjs/xlsx/xform/comment/style/vml-position-xform.js +2 -2
  78. package/dist/cjs/xlsx/xform/comment/style/vml-protection-xform.js +2 -2
  79. package/dist/cjs/xlsx/xform/comment/vml-anchor-xform.js +2 -2
  80. package/dist/cjs/xlsx/xform/comment/vml-client-data-xform.js +10 -10
  81. package/dist/cjs/xlsx/xform/comment/vml-notes-xform.js +6 -6
  82. package/dist/cjs/xlsx/xform/comment/vml-shape-xform.js +6 -6
  83. package/dist/cjs/xlsx/xform/comment/vml-textbox-xform.js +2 -2
  84. package/dist/cjs/xlsx/xform/composite-xform.js +2 -2
  85. package/dist/cjs/xlsx/xform/core/app-heading-pairs-xform.js +2 -2
  86. package/dist/cjs/xlsx/xform/core/app-titles-of-parts-xform.js +2 -2
  87. package/dist/cjs/xlsx/xform/core/app-xform.js +11 -11
  88. package/dist/cjs/xlsx/xform/core/content-types-xform.js +4 -4
  89. package/dist/cjs/xlsx/xform/core/core-xform.js +23 -23
  90. package/dist/cjs/xlsx/xform/core/relationship-xform.js +2 -2
  91. package/dist/cjs/xlsx/xform/core/relationships-xform.js +6 -6
  92. package/dist/cjs/xlsx/xform/drawing/base-cell-anchor-xform.js +2 -2
  93. package/dist/cjs/xlsx/xform/drawing/blip-fill-xform.js +4 -4
  94. package/dist/cjs/xlsx/xform/drawing/blip-xform.js +2 -2
  95. package/dist/cjs/xlsx/xform/drawing/c-nv-pic-pr-xform.js +2 -2
  96. package/dist/cjs/xlsx/xform/drawing/c-nv-pr-xform.js +6 -6
  97. package/dist/cjs/xlsx/xform/drawing/cell-position-xform.js +7 -7
  98. package/dist/cjs/xlsx/xform/drawing/drawing-xform.js +10 -10
  99. package/dist/cjs/xlsx/xform/drawing/ext-lst-xform.js +2 -2
  100. package/dist/cjs/xlsx/xform/drawing/ext-xform.js +2 -2
  101. package/dist/cjs/xlsx/xform/drawing/hlink-click-xform.js +2 -2
  102. package/dist/cjs/xlsx/xform/drawing/nv-pic-pr-xform.js +6 -6
  103. package/dist/cjs/xlsx/xform/drawing/one-cell-anchor-xform.js +10 -10
  104. package/dist/cjs/xlsx/xform/drawing/pic-xform.js +9 -9
  105. package/dist/cjs/xlsx/xform/drawing/two-cell-anchor-xform.js +9 -9
  106. package/dist/cjs/xlsx/xform/list-xform.js +2 -2
  107. package/dist/cjs/xlsx/xform/pivot-table/cache-field-xform.js +5 -5
  108. package/dist/cjs/xlsx/xform/pivot-table/cache-field.js +3 -3
  109. package/dist/cjs/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +10 -10
  110. package/dist/cjs/xlsx/xform/pivot-table/pivot-cache-records-xform.js +9 -9
  111. package/dist/cjs/xlsx/xform/pivot-table/pivot-table-xform.js +10 -11
  112. package/dist/cjs/xlsx/xform/sheet/auto-filter-xform.js +4 -4
  113. package/dist/cjs/xlsx/xform/sheet/cell-xform.js +65 -65
  114. package/dist/cjs/xlsx/xform/sheet/cf/cf-rule-xform.js +27 -27
  115. package/dist/cjs/xlsx/xform/sheet/cf/cfvo-xform.js +3 -3
  116. package/dist/cjs/xlsx/xform/sheet/cf/color-scale-xform.js +6 -6
  117. package/dist/cjs/xlsx/xform/sheet/cf/conditional-formatting-xform.js +6 -6
  118. package/dist/cjs/xlsx/xform/sheet/cf/conditional-formattings-xform.js +4 -4
  119. package/dist/cjs/xlsx/xform/sheet/cf/databar-xform.js +6 -6
  120. package/dist/cjs/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +5 -5
  121. package/dist/cjs/xlsx/xform/sheet/cf/formula-xform.js +2 -2
  122. package/dist/cjs/xlsx/xform/sheet/cf/icon-set-xform.js +11 -11
  123. package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +3 -3
  124. package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +11 -12
  125. package/dist/cjs/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +4 -4
  126. package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +8 -8
  127. package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +6 -6
  128. package/dist/cjs/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +26 -26
  129. package/dist/cjs/xlsx/xform/sheet/cf-ext/f-ext-xform.js +2 -2
  130. package/dist/cjs/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +14 -14
  131. package/dist/cjs/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +2 -2
  132. package/dist/cjs/xlsx/xform/sheet/col-breaks-xform.js +38 -0
  133. package/dist/cjs/xlsx/xform/sheet/col-xform.js +6 -6
  134. package/dist/cjs/xlsx/xform/sheet/data-validations-xform.js +18 -18
  135. package/dist/cjs/xlsx/xform/sheet/dimension-xform.js +2 -2
  136. package/dist/cjs/xlsx/xform/sheet/drawing-xform.js +2 -2
  137. package/dist/cjs/xlsx/xform/sheet/ext-lst-xform.js +5 -5
  138. package/dist/cjs/xlsx/xform/sheet/header-footer-xform.js +2 -2
  139. package/dist/cjs/xlsx/xform/sheet/hyperlink-xform.js +2 -2
  140. package/dist/cjs/xlsx/xform/sheet/merge-cell-xform.js +2 -2
  141. package/dist/cjs/xlsx/xform/sheet/merges.js +8 -8
  142. package/dist/cjs/xlsx/xform/sheet/outline-properties-xform.js +2 -2
  143. package/dist/cjs/xlsx/xform/sheet/page-breaks-xform.js +15 -3
  144. package/dist/cjs/xlsx/xform/sheet/page-margins-xform.js +2 -2
  145. package/dist/cjs/xlsx/xform/sheet/page-setup-properties-xform.js +2 -2
  146. package/dist/cjs/xlsx/xform/sheet/page-setup-xform.js +2 -2
  147. package/dist/cjs/xlsx/xform/sheet/picture-xform.js +2 -2
  148. package/dist/cjs/xlsx/xform/sheet/print-options-xform.js +2 -2
  149. package/dist/cjs/xlsx/xform/sheet/row-breaks-xform.js +15 -17
  150. package/dist/cjs/xlsx/xform/sheet/row-xform.js +11 -11
  151. package/dist/cjs/xlsx/xform/sheet/sheet-format-properties-xform.js +2 -2
  152. package/dist/cjs/xlsx/xform/sheet/sheet-properties-xform.js +8 -8
  153. package/dist/cjs/xlsx/xform/sheet/sheet-protection-xform.js +2 -2
  154. package/dist/cjs/xlsx/xform/sheet/sheet-view-xform.js +4 -4
  155. package/dist/cjs/xlsx/xform/sheet/table-part-xform.js +2 -2
  156. package/dist/cjs/xlsx/xform/sheet/worksheet-xform.js +75 -70
  157. package/dist/cjs/xlsx/xform/simple/boolean-xform.js +2 -2
  158. package/dist/cjs/xlsx/xform/simple/date-xform.js +2 -2
  159. package/dist/cjs/xlsx/xform/simple/float-xform.js +2 -2
  160. package/dist/cjs/xlsx/xform/simple/integer-xform.js +2 -2
  161. package/dist/cjs/xlsx/xform/simple/string-xform.js +2 -2
  162. package/dist/cjs/xlsx/xform/static-xform.js +4 -4
  163. package/dist/cjs/xlsx/xform/strings/phonetic-text-xform.js +6 -6
  164. package/dist/cjs/xlsx/xform/strings/rich-text-xform.js +6 -6
  165. package/dist/cjs/xlsx/xform/strings/shared-string-xform.js +8 -8
  166. package/dist/cjs/xlsx/xform/strings/shared-strings-xform.js +6 -6
  167. package/dist/cjs/xlsx/xform/strings/text-xform.js +2 -2
  168. package/dist/cjs/xlsx/xform/style/alignment-xform.js +8 -8
  169. package/dist/cjs/xlsx/xform/style/border-xform.js +8 -8
  170. package/dist/cjs/xlsx/xform/style/color-xform.js +2 -2
  171. package/dist/cjs/xlsx/xform/style/dxf-xform.js +14 -14
  172. package/dist/cjs/xlsx/xform/style/fill-xform.js +9 -9
  173. package/dist/cjs/xlsx/xform/style/font-xform.js +22 -22
  174. package/dist/cjs/xlsx/xform/style/numfmt-xform.js +5 -5
  175. package/dist/cjs/xlsx/xform/style/protection-xform.js +2 -2
  176. package/dist/cjs/xlsx/xform/style/style-xform.js +6 -6
  177. package/dist/cjs/xlsx/xform/style/styles-xform.js +39 -39
  178. package/dist/cjs/xlsx/xform/style/underline-xform.js +2 -2
  179. package/dist/cjs/xlsx/xform/table/auto-filter-xform.js +4 -4
  180. package/dist/cjs/xlsx/xform/table/custom-filter-xform.js +2 -2
  181. package/dist/cjs/xlsx/xform/table/filter-column-xform.js +9 -9
  182. package/dist/cjs/xlsx/xform/table/filter-xform.js +2 -2
  183. package/dist/cjs/xlsx/xform/table/table-column-xform.js +2 -2
  184. package/dist/cjs/xlsx/xform/table/table-style-info-xform.js +2 -2
  185. package/dist/cjs/xlsx/xform/table/table-xform.js +12 -12
  186. package/dist/cjs/xlsx/xlsx.base.js +742 -0
  187. package/dist/cjs/xlsx/xlsx.browser.js +162 -0
  188. package/dist/cjs/xlsx/xlsx.js +118 -892
  189. package/dist/esm/csv/csv-core.js +694 -0
  190. package/dist/esm/csv/csv-stream.js +638 -0
  191. package/dist/esm/csv/csv.base.js +127 -0
  192. package/dist/esm/csv/csv.browser.js +65 -0
  193. package/dist/esm/csv/csv.js +181 -159
  194. package/dist/esm/doc/column.js +21 -0
  195. package/dist/esm/doc/workbook.base.js +207 -0
  196. package/dist/esm/doc/workbook.browser.js +59 -0
  197. package/dist/esm/doc/workbook.js +64 -175
  198. package/dist/esm/doc/worksheet.js +4 -0
  199. package/dist/esm/index.browser.js +33 -1
  200. package/dist/esm/index.js +23 -8
  201. package/dist/esm/local.js +0 -1
  202. package/dist/esm/stream/xlsx/workbook-writer.js +1 -1
  203. package/dist/esm/stream/xlsx/worksheet-writer.js +8 -1
  204. package/dist/esm/utils/browser-buffer.js +67 -0
  205. package/dist/esm/utils/datetime.js +493 -0
  206. package/dist/esm/utils/encryptor.browser.js +237 -0
  207. package/dist/esm/utils/parse-sax.js +1188 -12
  208. package/dist/esm/utils/stream-buf.browser.js +352 -0
  209. package/dist/esm/utils/unzip/zip-parser.js +11 -0
  210. package/dist/esm/utils/utils.base.js +142 -0
  211. package/dist/esm/utils/utils.browser.js +68 -0
  212. package/dist/esm/utils/utils.js +15 -123
  213. package/dist/esm/utils/zip/compress.base.js +83 -0
  214. package/dist/esm/utils/zip/compress.browser.js +121 -0
  215. package/dist/esm/utils/zip/compress.js +16 -164
  216. package/dist/esm/utils/zip/crc32.browser.js +82 -0
  217. package/dist/esm/utils/zip/deflate-fallback.js +570 -0
  218. package/dist/esm/utils/zip/streaming-zip.js +259 -0
  219. package/dist/esm/utils/zip-stream.browser.js +132 -0
  220. package/dist/esm/xlsx/xform/pivot-table/pivot-table-xform.js +2 -3
  221. package/dist/esm/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +2 -3
  222. package/dist/esm/xlsx/xform/sheet/col-breaks-xform.js +35 -0
  223. package/dist/esm/xlsx/xform/sheet/page-breaks-xform.js +13 -1
  224. package/dist/esm/xlsx/xform/sheet/row-breaks-xform.js +11 -13
  225. package/dist/esm/xlsx/xform/sheet/worksheet-xform.js +7 -2
  226. package/dist/esm/xlsx/xlsx.base.js +739 -0
  227. package/dist/esm/xlsx/xlsx.browser.js +159 -0
  228. package/dist/esm/xlsx/xlsx.js +114 -888
  229. package/dist/types/csv/csv-core.d.ts +207 -0
  230. package/dist/types/csv/csv-stream.d.ts +114 -0
  231. package/dist/types/csv/csv.base.d.ts +62 -0
  232. package/dist/types/csv/csv.browser.d.ts +33 -0
  233. package/dist/types/csv/csv.d.ts +97 -71
  234. package/dist/types/doc/anchor.d.ts +1 -1
  235. package/dist/types/doc/cell.d.ts +7 -7
  236. package/dist/types/doc/column.d.ts +9 -3
  237. package/dist/types/doc/defined-names.d.ts +4 -4
  238. package/dist/types/doc/image.d.ts +2 -2
  239. package/dist/types/doc/modelcontainer.d.ts +1 -1
  240. package/dist/types/doc/pivot-table.d.ts +1 -1
  241. package/dist/types/doc/range.d.ts +1 -1
  242. package/dist/types/doc/row.d.ts +3 -3
  243. package/dist/types/doc/table.d.ts +2 -2
  244. package/dist/types/doc/workbook.base.d.ts +111 -0
  245. package/dist/types/doc/workbook.browser.d.ts +38 -0
  246. package/dist/types/doc/workbook.d.ts +62 -92
  247. package/dist/types/doc/worksheet.d.ts +12 -10
  248. package/dist/types/index.browser.d.ts +19 -5
  249. package/dist/types/index.d.ts +24 -23
  250. package/dist/types/local.d.ts +0 -1
  251. package/dist/types/stream/xlsx/hyperlink-reader.d.ts +1 -1
  252. package/dist/types/stream/xlsx/workbook-reader.d.ts +4 -4
  253. package/dist/types/stream/xlsx/workbook-writer.d.ts +7 -7
  254. package/dist/types/stream/xlsx/worksheet-reader.d.ts +5 -5
  255. package/dist/types/stream/xlsx/worksheet-writer.d.ts +11 -9
  256. package/dist/types/types.d.ts +6 -0
  257. package/dist/types/utils/browser-buffer.d.ts +28 -0
  258. package/dist/types/utils/col-cache.d.ts +1 -1
  259. package/dist/types/utils/datetime.d.ts +56 -0
  260. package/dist/types/utils/encryptor.browser.d.ts +28 -0
  261. package/dist/types/utils/parse-sax.d.ts +108 -1
  262. package/dist/types/utils/sheet-utils.d.ts +3 -3
  263. package/dist/types/utils/stream-buf.browser.d.ts +41 -0
  264. package/dist/types/utils/unzip/extract.d.ts +6 -6
  265. package/dist/types/utils/unzip/index.d.ts +8 -8
  266. package/dist/types/utils/unzip/parse.d.ts +3 -3
  267. package/dist/types/utils/unzip/zip-parser.d.ts +5 -0
  268. package/dist/types/utils/utils.base.d.ts +29 -0
  269. package/dist/types/utils/utils.browser.d.ts +29 -0
  270. package/dist/types/utils/utils.d.ts +6 -25
  271. package/dist/types/utils/zip/compress.base.d.ts +45 -0
  272. package/dist/types/utils/zip/compress.browser.d.ts +63 -0
  273. package/dist/types/utils/zip/compress.d.ts +13 -45
  274. package/dist/types/utils/zip/crc32.browser.d.ts +52 -0
  275. package/dist/types/utils/zip/deflate-fallback.d.ts +39 -0
  276. package/dist/types/utils/zip/index.d.ts +5 -5
  277. package/dist/types/utils/zip/streaming-zip.d.ts +96 -0
  278. package/dist/types/utils/zip/zip-builder.d.ts +1 -1
  279. package/dist/types/utils/zip-stream.browser.d.ts +39 -0
  280. package/dist/types/xlsx/xform/base-xform.d.ts +1 -1
  281. package/dist/types/xlsx/xform/book/defined-name-xform.d.ts +1 -1
  282. package/dist/types/xlsx/xform/book/sheet-xform.d.ts +1 -1
  283. package/dist/types/xlsx/xform/book/workbook-calc-properties-xform.d.ts +1 -1
  284. package/dist/types/xlsx/xform/book/workbook-pivot-cache-xform.d.ts +1 -1
  285. package/dist/types/xlsx/xform/book/workbook-properties-xform.d.ts +1 -1
  286. package/dist/types/xlsx/xform/book/workbook-view-xform.d.ts +1 -1
  287. package/dist/types/xlsx/xform/book/workbook-xform.d.ts +2 -2
  288. package/dist/types/xlsx/xform/comment/comment-xform.d.ts +2 -2
  289. package/dist/types/xlsx/xform/comment/comments-xform.d.ts +2 -2
  290. package/dist/types/xlsx/xform/comment/style/vml-position-xform.d.ts +1 -1
  291. package/dist/types/xlsx/xform/comment/style/vml-protection-xform.d.ts +1 -1
  292. package/dist/types/xlsx/xform/comment/vml-anchor-xform.d.ts +1 -1
  293. package/dist/types/xlsx/xform/comment/vml-client-data-xform.d.ts +1 -1
  294. package/dist/types/xlsx/xform/comment/vml-notes-xform.d.ts +1 -1
  295. package/dist/types/xlsx/xform/comment/vml-shape-xform.d.ts +1 -1
  296. package/dist/types/xlsx/xform/comment/vml-textbox-xform.d.ts +1 -1
  297. package/dist/types/xlsx/xform/composite-xform.d.ts +1 -1
  298. package/dist/types/xlsx/xform/core/app-heading-pairs-xform.d.ts +1 -1
  299. package/dist/types/xlsx/xform/core/app-titles-of-parts-xform.d.ts +1 -1
  300. package/dist/types/xlsx/xform/core/app-xform.d.ts +1 -1
  301. package/dist/types/xlsx/xform/core/content-types-xform.d.ts +1 -1
  302. package/dist/types/xlsx/xform/core/core-xform.d.ts +1 -1
  303. package/dist/types/xlsx/xform/core/relationship-xform.d.ts +1 -1
  304. package/dist/types/xlsx/xform/core/relationships-xform.d.ts +1 -1
  305. package/dist/types/xlsx/xform/drawing/base-cell-anchor-xform.d.ts +1 -1
  306. package/dist/types/xlsx/xform/drawing/blip-fill-xform.d.ts +2 -2
  307. package/dist/types/xlsx/xform/drawing/blip-xform.d.ts +1 -1
  308. package/dist/types/xlsx/xform/drawing/c-nv-pic-pr-xform.d.ts +1 -1
  309. package/dist/types/xlsx/xform/drawing/c-nv-pr-xform.d.ts +1 -1
  310. package/dist/types/xlsx/xform/drawing/cell-position-xform.d.ts +2 -2
  311. package/dist/types/xlsx/xform/drawing/drawing-xform.d.ts +1 -1
  312. package/dist/types/xlsx/xform/drawing/ext-lst-xform.d.ts +1 -1
  313. package/dist/types/xlsx/xform/drawing/ext-xform.d.ts +1 -1
  314. package/dist/types/xlsx/xform/drawing/hlink-click-xform.d.ts +1 -1
  315. package/dist/types/xlsx/xform/drawing/nv-pic-pr-xform.d.ts +1 -1
  316. package/dist/types/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +1 -1
  317. package/dist/types/xlsx/xform/drawing/pic-xform.d.ts +1 -1
  318. package/dist/types/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +1 -1
  319. package/dist/types/xlsx/xform/list-xform.d.ts +1 -1
  320. package/dist/types/xlsx/xform/pivot-table/cache-field-xform.d.ts +1 -1
  321. package/dist/types/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +3 -3
  322. package/dist/types/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +2 -2
  323. package/dist/types/xlsx/xform/pivot-table/pivot-table-xform.d.ts +1 -1
  324. package/dist/types/xlsx/xform/sheet/auto-filter-xform.d.ts +1 -1
  325. package/dist/types/xlsx/xform/sheet/cell-xform.d.ts +1 -1
  326. package/dist/types/xlsx/xform/sheet/cf/cf-rule-xform.d.ts +6 -6
  327. package/dist/types/xlsx/xform/sheet/cf/cfvo-xform.d.ts +1 -1
  328. package/dist/types/xlsx/xform/sheet/cf/color-scale-xform.d.ts +3 -3
  329. package/dist/types/xlsx/xform/sheet/cf/conditional-formatting-xform.d.ts +1 -1
  330. package/dist/types/xlsx/xform/sheet/cf/conditional-formattings-xform.d.ts +2 -2
  331. package/dist/types/xlsx/xform/sheet/cf/databar-xform.d.ts +3 -3
  332. package/dist/types/xlsx/xform/sheet/cf/ext-lst-ref-xform.d.ts +1 -1
  333. package/dist/types/xlsx/xform/sheet/cf/formula-xform.d.ts +1 -1
  334. package/dist/types/xlsx/xform/sheet/cf/icon-set-xform.d.ts +2 -2
  335. package/dist/types/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.d.ts +1 -1
  336. package/dist/types/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.d.ts +3 -3
  337. package/dist/types/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.d.ts +2 -2
  338. package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.d.ts +3 -3
  339. package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.d.ts +2 -2
  340. package/dist/types/xlsx/xform/sheet/cf-ext/databar-ext-xform.d.ts +3 -3
  341. package/dist/types/xlsx/xform/sheet/cf-ext/f-ext-xform.d.ts +1 -1
  342. package/dist/types/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.d.ts +3 -3
  343. package/dist/types/xlsx/xform/sheet/cf-ext/sqref-ext-xform.d.ts +1 -1
  344. package/dist/types/xlsx/xform/sheet/col-breaks-xform.d.ts +16 -0
  345. package/dist/types/xlsx/xform/sheet/col-xform.d.ts +1 -1
  346. package/dist/types/xlsx/xform/sheet/data-validations-xform.d.ts +1 -1
  347. package/dist/types/xlsx/xform/sheet/dimension-xform.d.ts +1 -1
  348. package/dist/types/xlsx/xform/sheet/drawing-xform.d.ts +1 -1
  349. package/dist/types/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -1
  350. package/dist/types/xlsx/xform/sheet/header-footer-xform.d.ts +1 -1
  351. package/dist/types/xlsx/xform/sheet/hyperlink-xform.d.ts +1 -1
  352. package/dist/types/xlsx/xform/sheet/merge-cell-xform.d.ts +1 -1
  353. package/dist/types/xlsx/xform/sheet/outline-properties-xform.d.ts +1 -1
  354. package/dist/types/xlsx/xform/sheet/page-breaks-xform.d.ts +5 -1
  355. package/dist/types/xlsx/xform/sheet/page-margins-xform.d.ts +1 -1
  356. package/dist/types/xlsx/xform/sheet/page-setup-properties-xform.d.ts +1 -1
  357. package/dist/types/xlsx/xform/sheet/page-setup-xform.d.ts +1 -1
  358. package/dist/types/xlsx/xform/sheet/picture-xform.d.ts +1 -1
  359. package/dist/types/xlsx/xform/sheet/print-options-xform.d.ts +1 -1
  360. package/dist/types/xlsx/xform/sheet/row-breaks-xform.d.ts +5 -1
  361. package/dist/types/xlsx/xform/sheet/row-xform.d.ts +1 -1
  362. package/dist/types/xlsx/xform/sheet/sheet-format-properties-xform.d.ts +1 -1
  363. package/dist/types/xlsx/xform/sheet/sheet-properties-xform.d.ts +1 -1
  364. package/dist/types/xlsx/xform/sheet/sheet-protection-xform.d.ts +1 -1
  365. package/dist/types/xlsx/xform/sheet/sheet-view-xform.d.ts +1 -1
  366. package/dist/types/xlsx/xform/sheet/table-part-xform.d.ts +1 -1
  367. package/dist/types/xlsx/xform/sheet/worksheet-xform.d.ts +1 -1
  368. package/dist/types/xlsx/xform/simple/boolean-xform.d.ts +1 -1
  369. package/dist/types/xlsx/xform/simple/date-xform.d.ts +1 -1
  370. package/dist/types/xlsx/xform/simple/float-xform.d.ts +1 -1
  371. package/dist/types/xlsx/xform/simple/integer-xform.d.ts +1 -1
  372. package/dist/types/xlsx/xform/simple/string-xform.d.ts +1 -1
  373. package/dist/types/xlsx/xform/static-xform.d.ts +1 -1
  374. package/dist/types/xlsx/xform/strings/phonetic-text-xform.d.ts +1 -1
  375. package/dist/types/xlsx/xform/strings/rich-text-xform.d.ts +3 -3
  376. package/dist/types/xlsx/xform/strings/shared-string-xform.d.ts +1 -1
  377. package/dist/types/xlsx/xform/strings/shared-strings-xform.d.ts +2 -2
  378. package/dist/types/xlsx/xform/strings/text-xform.d.ts +1 -1
  379. package/dist/types/xlsx/xform/style/alignment-xform.d.ts +1 -1
  380. package/dist/types/xlsx/xform/style/border-xform.d.ts +2 -2
  381. package/dist/types/xlsx/xform/style/color-xform.d.ts +1 -1
  382. package/dist/types/xlsx/xform/style/dxf-xform.d.ts +1 -1
  383. package/dist/types/xlsx/xform/style/fill-xform.d.ts +2 -2
  384. package/dist/types/xlsx/xform/style/font-xform.d.ts +1 -1
  385. package/dist/types/xlsx/xform/style/numfmt-xform.d.ts +1 -1
  386. package/dist/types/xlsx/xform/style/protection-xform.d.ts +1 -1
  387. package/dist/types/xlsx/xform/style/style-xform.d.ts +3 -3
  388. package/dist/types/xlsx/xform/style/styles-xform.d.ts +2 -2
  389. package/dist/types/xlsx/xform/style/underline-xform.d.ts +1 -1
  390. package/dist/types/xlsx/xform/table/auto-filter-xform.d.ts +2 -2
  391. package/dist/types/xlsx/xform/table/custom-filter-xform.d.ts +1 -1
  392. package/dist/types/xlsx/xform/table/filter-column-xform.d.ts +2 -2
  393. package/dist/types/xlsx/xform/table/filter-xform.d.ts +1 -1
  394. package/dist/types/xlsx/xform/table/table-column-xform.d.ts +1 -1
  395. package/dist/types/xlsx/xform/table/table-style-info-xform.d.ts +1 -1
  396. package/dist/types/xlsx/xform/table/table-xform.d.ts +1 -1
  397. package/dist/types/xlsx/xlsx.base.d.ts +134 -0
  398. package/dist/types/xlsx/xlsx.browser.d.ts +31 -0
  399. package/dist/types/xlsx/xlsx.d.ts +20 -80
  400. package/package.json +16 -39
package/README.md CHANGED
@@ -8,13 +8,14 @@ Modern TypeScript Excel Workbook Manager - Read, manipulate and write spreadshee
8
8
 
9
9
  ExcelTS is a modernized fork of [ExcelJS](https://github.com/exceljs/exceljs) with:
10
10
 
11
+ - 🚀 **Zero Runtime Dependencies** - Pure TypeScript implementation with no external packages
11
12
  - ✅ **Full TypeScript Support** - Complete type definitions and modern TypeScript patterns
12
- - ✅ **Updated Dependencies** - All dependencies upgraded to latest stable versions
13
13
  - ✅ **Modern Build System** - Using Rolldown for faster builds
14
14
  - ✅ **Enhanced Testing** - Migrated to Vitest with browser testing support
15
15
  - ✅ **ESM First** - Native ES Module support with CommonJS compatibility
16
16
  - ✅ **Node 20+** - Optimized for modern Node.js versions
17
17
  - ✅ **Named Exports** - All exports are named for better tree-shaking
18
+ - ✅ **Broad Browser Support** - Works in Chrome 85+, Firefox 79+, Safari 14+ with built-in polyfills
18
19
 
19
20
  ## Translations
20
21
 
@@ -104,53 +105,167 @@ cell.fill = {
104
105
  - Data protection
105
106
  - Comments and notes
106
107
 
107
- ## Browser Support
108
+ ## Streaming API (Node.js)
109
+
110
+ For processing large Excel files without loading them entirely into memory, ExcelTS provides streaming reader and writer APIs.
111
+
112
+ ### Streaming Reader
113
+
114
+ Read large XLSX files with minimal memory usage:
115
+
116
+ ```javascript
117
+ import { WorkbookReader } from "@cj-tech-master/excelts";
118
+
119
+ // Read from file path
120
+ const reader = new WorkbookReader("large-file.xlsx", {
121
+ worksheets: "emit", // emit worksheet events
122
+ sharedStrings: "cache", // cache shared strings for cell values
123
+ hyperlinks: "ignore", // ignore hyperlinks
124
+ styles: "ignore" // ignore styles for faster parsing
125
+ });
126
+
127
+ for await (const worksheet of reader) {
128
+ console.log(`Reading: ${worksheet.name}`);
129
+ for await (const row of worksheet) {
130
+ console.log(row.values);
131
+ }
132
+ }
133
+ ```
134
+
135
+ ### Streaming Writer
136
+
137
+ Write large XLSX files row by row:
138
+
139
+ ```javascript
140
+ import { WorkbookWriter } from "@cj-tech-master/excelts";
141
+
142
+ const workbook = new WorkbookWriter({
143
+ filename: "output.xlsx",
144
+ useSharedStrings: true,
145
+ useStyles: true
146
+ });
147
+
148
+ const sheet = workbook.addWorksheet("Data");
149
+
150
+ // Write rows one at a time
151
+ for (let i = 0; i < 1000000; i++) {
152
+ sheet.addRow([`Row ${i}`, i, new Date()]).commit();
153
+ }
154
+
155
+ // Commit worksheet and finalize
156
+ sheet.commit();
157
+ await workbook.commit();
158
+ ```
159
+
160
+ ## CSV Support
108
161
 
109
- ExcelTS supports both Node.js and browser environments:
162
+ ### Node.js (Full Streaming Support)
110
163
 
111
164
  ```javascript
112
- // Browser usage
113
- import { Workbook } from "@cj-tech-master/excelts/browser";
165
+ import { Workbook } from "@cj-tech-master/excelts";
114
166
 
115
167
  const workbook = new Workbook();
116
- // ... use workbook API
168
+
169
+ // Read CSV from file (streaming)
170
+ await workbook.csv.readFile("data.csv");
171
+
172
+ // Read CSV from stream
173
+ import fs from "fs";
174
+ const stream = fs.createReadStream("data.csv");
175
+ await workbook.csv.read(stream, { sheetName: "Imported" });
176
+
177
+ // Write CSV to file (streaming)
178
+ await workbook.csv.writeFile("output.csv");
179
+
180
+ // Write CSV to stream
181
+ const writeStream = fs.createWriteStream("output.csv");
182
+ await workbook.csv.write(writeStream);
183
+
184
+ // Write CSV to buffer
185
+ const buffer = await workbook.csv.writeBuffer();
117
186
  ```
118
187
 
119
- ### Vite Configuration
188
+ ### Browser (In-Memory)
189
+
190
+ ```javascript
191
+ import { Workbook } from "@cj-tech-master/excelts";
192
+
193
+ const workbook = new Workbook();
194
+
195
+ // Load CSV from string
196
+ workbook.csv.load(csvString);
197
+
198
+ // Load CSV from ArrayBuffer (e.g., from fetch or file input)
199
+ const response = await fetch("data.csv");
200
+ const arrayBuffer = await response.arrayBuffer();
201
+ workbook.csv.load(arrayBuffer);
120
202
 
121
- When using ExcelTS with Vite, you need to install Node.js polyfills:
203
+ // Write CSV to string
204
+ const csvOutput = workbook.csv.writeString();
122
205
 
123
- ```bash
124
- npm install -D vite-plugin-node-polyfills
206
+ // Write CSV to Uint8Array buffer
207
+ const buffer = workbook.csv.writeBuffer();
125
208
  ```
126
209
 
127
- Configure your `vite.config.ts`:
210
+ ## Browser Support
211
+
212
+ ExcelTS has native browser support with **zero configuration** required for modern bundlers.
213
+
214
+ ### Using with Bundlers (Vite, Webpack, Rollup, esbuild)
128
215
 
129
- ```typescript
130
- import { defineConfig } from 'vite'
131
- import { nodePolyfills } from 'vite-plugin-node-polyfills'
216
+ Simply import ExcelTS - no polyfills or configuration needed:
132
217
 
133
- export default defineConfig({
134
- plugins: [nodePolyfills()]
135
- })
218
+ ```javascript
219
+ import { Workbook } from "@cj-tech-master/excelts";
220
+
221
+ const workbook = new Workbook();
222
+ const sheet = workbook.addWorksheet("Sheet1");
223
+ sheet.getCell("A1").value = "Hello, Browser!";
224
+
225
+ // Write to buffer and download
226
+ const buffer = await workbook.xlsx.writeBuffer();
227
+ const blob = new Blob([buffer], {
228
+ type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
229
+ });
230
+ const url = URL.createObjectURL(blob);
231
+ // ... trigger download
136
232
  ```
137
233
 
234
+ ### Using with Script Tags (No Bundler)
235
+
236
+ ```html
237
+ <script src="https://unpkg.com/@cj-tech-master/excelts/dist/browser/excelts.iife.min.js"></script>
238
+ <script>
239
+ const { Workbook } = ExcelTS;
240
+ const wb = new Workbook();
241
+ // ... use workbook API
242
+ </script>
243
+ ```
244
+
245
+ ### Browser-Specific Notes
246
+
247
+ - **CSV operations are supported** using native RFC 4180 implementation
248
+ - Use `csv.load(stringOrArrayBuffer)` to read CSV
249
+ - Use `csv.writeString()` or `csv.writeBuffer()` to write CSV
250
+ - Use `xlsx.load(arrayBuffer)` instead of `xlsx.readFile()`
251
+ - Use `xlsx.writeBuffer()` instead of `xlsx.writeFile()`
252
+ - Worksheet protection with passwords is fully supported (pure JS SHA-512)
253
+
138
254
  ## Requirements
139
255
 
140
256
  ### Node.js
141
257
 
142
- - **Node.js >= 18.0.0** (ES2020 native support)
143
- - Recommended: Node.js >= 20.0.0 for best performance
258
+ - **Node.js >= 20.0.0** (ES2020 native support)
144
259
 
145
260
  ### Browsers (No Polyfills Required)
146
261
 
147
262
  - **Chrome >= 85** (August 2020)
148
263
  - **Edge >= 85** (August 2020)
149
- - **Firefox >= 113** (May 2023)
150
- - **Safari >= 16.4** (March 2023)
264
+ - **Firefox >= 79** (July 2020)
265
+ - **Safari >= 14** (September 2020)
151
266
  - **Opera >= 71** (September 2020)
152
267
 
153
- All modern JavaScript features are natively supported in these versions.
268
+ For older browsers without native `CompressionStream` API (Firefox < 113, Safari < 16.4), ExcelTS automatically uses a built-in pure JavaScript DEFLATE implementation - no configuration or polyfills needed.
154
269
 
155
270
  ## Maintainer
156
271
 
@@ -230,9 +345,9 @@ This project is a fork of ExcelJS with modernization improvements. All credit fo
230
345
 
231
346
  ## Links
232
347
 
233
- - [GitHub Repository](https://github.com/cjnoname/exceljs)
348
+ - [GitHub Repository](https://github.com/cjnoname/excelts)
234
349
  - [Original ExcelJS](https://github.com/exceljs/exceljs)
235
- - [Issue Tracker](https://github.com/cjnoname/exceljs/issues)
350
+ - [Issue Tracker](https://github.com/cjnoname/excelts/issues)
236
351
 
237
352
  ## Changelog
238
353
 
package/README_zh.md CHANGED
@@ -8,13 +8,14 @@
8
8
 
9
9
  ExcelTS 是 [ExcelJS](https://github.com/exceljs/exceljs) 的现代化版本,具有以下特性:
10
10
 
11
+ - 🚀 **零运行时依赖** - 纯 TypeScript 实现,无任何外部包依赖
11
12
  - ✅ **完整的 TypeScript 支持** - 完整的类型定义和现代 TypeScript 模式
12
- - ✅ **升级的依赖** - 所有依赖项升级到最新稳定版本
13
13
  - ✅ **现代构建系统** - 使用 Rolldown 进行更快的构建
14
14
  - ✅ **增强的测试** - 迁移到 Vitest 并支持浏览器测试
15
15
  - ✅ **ESM 优先** - 原生 ES Module 支持,兼容 CommonJS
16
16
  - ✅ **Node 20+** - 针对现代 Node.js 版本优化
17
17
  - ✅ **命名导出** - 所有导出都是命名导出,更好的 tree-shaking
18
+ - ✅ **广泛浏览器支持** - 支持 Chrome 85+、Firefox 79+、Safari 14+,内置兼容方案
18
19
 
19
20
  ## 翻译
20
21
 
@@ -104,54 +105,167 @@ cell.fill = {
104
105
  - 数据保护
105
106
  - 注释和批注
106
107
 
107
- ## 浏览器支持
108
+ ## 流式 API(Node.js)
109
+
110
+ 处理大型 Excel 文件时无需将整个文件加载到内存中,ExcelTS 提供了流式读写 API。
108
111
 
109
- ExcelTS 同时支持 Node.js 和浏览器环境:
112
+ ### 流式读取器
113
+
114
+ 以最小内存占用读取大型 XLSX 文件:
110
115
 
111
- ````javascript
112
116
  ```javascript
113
- // 浏览器使用
114
- import { Workbook } from "@cj-tech-master/excelts/browser";
117
+ import { WorkbookReader } from "@cj-tech-master/excelts";
118
+
119
+ // 从文件路径读取
120
+ const reader = new WorkbookReader("large-file.xlsx", {
121
+ worksheets: "emit", // 触发工作表事件
122
+ sharedStrings: "cache", // 缓存共享字符串以获取单元格值
123
+ hyperlinks: "ignore", // 忽略超链接
124
+ styles: "ignore" // 忽略样式以加快解析
125
+ });
126
+
127
+ for await (const worksheet of reader) {
128
+ console.log(`正在读取: ${worksheet.name}`);
129
+ for await (const row of worksheet) {
130
+ console.log(row.values);
131
+ }
132
+ }
133
+ ```
134
+
135
+ ### 流式写入器
136
+
137
+ 逐行写入大型 XLSX 文件:
138
+
139
+ ```javascript
140
+ import { WorkbookWriter } from "@cj-tech-master/excelts";
141
+
142
+ const workbook = new WorkbookWriter({
143
+ filename: "output.xlsx",
144
+ useSharedStrings: true,
145
+ useStyles: true
146
+ });
147
+
148
+ const sheet = workbook.addWorksheet("Data");
149
+
150
+ // 逐行写入
151
+ for (let i = 0; i < 1000000; i++) {
152
+ sheet.addRow([`第 ${i} 行`, i, new Date()]).commit();
153
+ }
154
+
155
+ // 提交工作表并完成
156
+ sheet.commit();
157
+ await workbook.commit();
158
+ ```
159
+
160
+ ## CSV 支持
161
+
162
+ ### Node.js(完整流式支持)
163
+
164
+ ```javascript
165
+ import { Workbook } from "@cj-tech-master/excelts";
115
166
 
116
167
  const workbook = new Workbook();
117
- // ... 使用 workbook API
118
- ````
119
168
 
120
- ### Vite 配置
169
+ // 从文件读取 CSV(流式)
170
+ await workbook.csv.readFile("data.csv");
121
171
 
122
- Vite 项目中使用 ExcelTS 时,需要安装 Node.js polyfills:
172
+ // 从流读取 CSV
173
+ import fs from "fs";
174
+ const stream = fs.createReadStream("data.csv");
175
+ await workbook.csv.read(stream, { sheetName: "Imported" });
123
176
 
124
- ```bash
125
- npm install -D vite-plugin-node-polyfills
177
+ // 写入 CSV 到文件(流式)
178
+ await workbook.csv.writeFile("output.csv");
179
+
180
+ // 写入 CSV 到流
181
+ const writeStream = fs.createWriteStream("output.csv");
182
+ await workbook.csv.write(writeStream);
183
+
184
+ // 写入 CSV 到 buffer
185
+ const buffer = await workbook.csv.writeBuffer();
126
186
  ```
127
187
 
128
- 配置 `vite.config.ts`:
188
+ ### 浏览器(内存中)
129
189
 
130
- ```typescript
131
- import { defineConfig } from 'vite'
132
- import { nodePolyfills } from 'vite-plugin-node-polyfills'
190
+ ```javascript
191
+ import { Workbook } from "@cj-tech-master/excelts";
192
+
193
+ const workbook = new Workbook();
194
+
195
+ // 从字符串加载 CSV
196
+ workbook.csv.load(csvString);
197
+
198
+ // 从 ArrayBuffer 加载 CSV(例如从 fetch 或文件输入)
199
+ const response = await fetch("data.csv");
200
+ const arrayBuffer = await response.arrayBuffer();
201
+ workbook.csv.load(arrayBuffer);
202
+
203
+ // 写入 CSV 为字符串
204
+ const csvOutput = workbook.csv.writeString();
205
+
206
+ // 写入 CSV 为 Uint8Array buffer
207
+ const buffer = workbook.csv.writeBuffer();
208
+ ```
209
+
210
+ ## 浏览器支持
211
+
212
+ ExcelTS 原生支持浏览器环境,现代打包工具**无需任何配置**。
213
+
214
+ ### 在打包工具中使用(Vite, Webpack, Rollup, esbuild)
133
215
 
134
- export default defineConfig({
135
- plugins: [nodePolyfills()]
136
- })
216
+ 直接导入 ExcelTS - 无需 polyfills 或额外配置:
217
+
218
+ ```javascript
219
+ import { Workbook } from "@cj-tech-master/excelts";
220
+
221
+ const workbook = new Workbook();
222
+ const sheet = workbook.addWorksheet("Sheet1");
223
+ sheet.getCell("A1").value = "你好,浏览器!";
224
+
225
+ // 写入 buffer 并下载
226
+ const buffer = await workbook.xlsx.writeBuffer();
227
+ const blob = new Blob([buffer], {
228
+ type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
229
+ });
230
+ const url = URL.createObjectURL(blob);
231
+ // ... 触发下载
232
+ ```
233
+
234
+ ### 使用 Script 标签(无打包工具)
235
+
236
+ ```html
237
+ <script src="https://unpkg.com/@cj-tech-master/excelts/dist/browser/excelts.iife.min.js"></script>
238
+ <script>
239
+ const { Workbook } = ExcelTS;
240
+ const wb = new Workbook();
241
+ // ... 使用 workbook API
242
+ </script>
137
243
  ```
138
244
 
245
+ ### 浏览器版本注意事项
246
+
247
+ - **支持 CSV 操作**(使用原生 RFC 4180 标准实现)
248
+ - 使用 `csv.load(stringOrArrayBuffer)` 读取 CSV
249
+ - 使用 `csv.writeString()` 或 `csv.writeBuffer()` 写入 CSV
250
+ - 使用 `xlsx.load(arrayBuffer)` 代替 `xlsx.readFile()`
251
+ - 使用 `xlsx.writeBuffer()` 代替 `xlsx.writeFile()`
252
+ - 完全支持带密码的工作表保护(纯 JS SHA-512 实现)
253
+
139
254
  ## 系统要求
140
255
 
141
256
  ### Node.js
142
257
 
143
- - **Node.js >= 18.0.0**(原生支持 ES2020)
144
- - 推荐:Node.js >= 20.0.0 以获得最佳性能
258
+ - **Node.js >= 20.0.0**(原生支持 ES2020)
145
259
 
146
260
  ### 浏览器(无需 Polyfills)
147
261
 
148
262
  - **Chrome >= 85**(2020年8月)
149
263
  - **Edge >= 85**(2020年8月)
150
- - **Firefox >= 113**(20235月)
151
- - **Safari >= 16.4**(20233月)
264
+ - **Firefox >= 79**(20207月)
265
+ - **Safari >= 14**(20209月)
152
266
  - **Opera >= 71**(2020年9月)
153
267
 
154
- 所有现代 JavaScript 特性在这些版本中都原生支持。
268
+ 对于不支持原生 `CompressionStream` API 的旧浏览器(Firefox < 113, Safari < 16.4),ExcelTS 会自动使用内置的纯 JavaScript DEFLATE 实现 - 无需任何配置或 polyfills。
155
269
 
156
270
  ## 维护者
157
271
 
@@ -231,9 +345,9 @@ MIT License
231
345
 
232
346
  ## 链接
233
347
 
234
- - [GitHub 仓库](https://github.com/cjnoname/exceljs)
348
+ - [GitHub 仓库](https://github.com/cjnoname/excelts)
235
349
  - [原始 ExcelJS](https://github.com/exceljs/exceljs)
236
- - [问题跟踪](https://github.com/cjnoname/exceljs/issues)
350
+ - [问题跟踪](https://github.com/cjnoname/excelts/issues)
237
351
 
238
352
  ## 更新日志
239
353