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

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 (401) hide show
  1. package/README.md +139 -24
  2. package/README_zh.md +140 -26
  3. package/dist/browser/excelts.esm.js +18529 -0
  4. package/dist/browser/excelts.esm.js.map +1 -0
  5. package/dist/browser/excelts.esm.min.js +128 -0
  6. package/dist/browser/excelts.iife.js +12966 -46944
  7. package/dist/browser/excelts.iife.js.map +1 -1
  8. package/dist/browser/excelts.iife.min.js +36 -115
  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 +13 -11
  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 +101 -17
  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-cache-definition-xform.js +3 -1
  221. package/dist/esm/xlsx/xform/pivot-table/pivot-table-xform.js +93 -9
  222. package/dist/esm/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +2 -3
  223. package/dist/esm/xlsx/xform/sheet/col-breaks-xform.js +35 -0
  224. package/dist/esm/xlsx/xform/sheet/page-breaks-xform.js +13 -1
  225. package/dist/esm/xlsx/xform/sheet/row-breaks-xform.js +11 -13
  226. package/dist/esm/xlsx/xform/sheet/worksheet-xform.js +7 -2
  227. package/dist/esm/xlsx/xlsx.base.js +739 -0
  228. package/dist/esm/xlsx/xlsx.browser.js +159 -0
  229. package/dist/esm/xlsx/xlsx.js +114 -888
  230. package/dist/types/csv/csv-core.d.ts +201 -0
  231. package/dist/types/csv/csv-stream.d.ts +114 -0
  232. package/dist/types/csv/csv.base.d.ts +62 -0
  233. package/dist/types/csv/csv.browser.d.ts +33 -0
  234. package/dist/types/csv/csv.d.ts +97 -71
  235. package/dist/types/doc/anchor.d.ts +1 -1
  236. package/dist/types/doc/cell.d.ts +7 -7
  237. package/dist/types/doc/column.d.ts +9 -3
  238. package/dist/types/doc/defined-names.d.ts +4 -4
  239. package/dist/types/doc/image.d.ts +2 -2
  240. package/dist/types/doc/modelcontainer.d.ts +1 -1
  241. package/dist/types/doc/pivot-table.d.ts +1 -1
  242. package/dist/types/doc/range.d.ts +1 -1
  243. package/dist/types/doc/row.d.ts +3 -3
  244. package/dist/types/doc/table.d.ts +2 -2
  245. package/dist/types/doc/workbook.base.d.ts +111 -0
  246. package/dist/types/doc/workbook.browser.d.ts +38 -0
  247. package/dist/types/doc/workbook.d.ts +62 -92
  248. package/dist/types/doc/worksheet.d.ts +12 -10
  249. package/dist/types/index.browser.d.ts +19 -5
  250. package/dist/types/index.d.ts +24 -23
  251. package/dist/types/local.d.ts +0 -1
  252. package/dist/types/stream/xlsx/hyperlink-reader.d.ts +1 -1
  253. package/dist/types/stream/xlsx/workbook-reader.d.ts +5 -5
  254. package/dist/types/stream/xlsx/workbook-writer.d.ts +7 -7
  255. package/dist/types/stream/xlsx/worksheet-reader.d.ts +6 -6
  256. package/dist/types/stream/xlsx/worksheet-writer.d.ts +11 -9
  257. package/dist/types/types.d.ts +6 -0
  258. package/dist/types/utils/browser-buffer.d.ts +28 -0
  259. package/dist/types/utils/col-cache.d.ts +1 -1
  260. package/dist/types/utils/datetime.d.ts +56 -0
  261. package/dist/types/utils/encryptor.browser.d.ts +28 -0
  262. package/dist/types/utils/parse-sax.d.ts +108 -1
  263. package/dist/types/utils/sheet-utils.d.ts +3 -3
  264. package/dist/types/utils/stream-buf.browser.d.ts +41 -0
  265. package/dist/types/utils/unzip/extract.d.ts +6 -6
  266. package/dist/types/utils/unzip/index.d.ts +8 -8
  267. package/dist/types/utils/unzip/parse.d.ts +3 -3
  268. package/dist/types/utils/unzip/zip-parser.d.ts +5 -0
  269. package/dist/types/utils/utils.base.d.ts +29 -0
  270. package/dist/types/utils/utils.browser.d.ts +29 -0
  271. package/dist/types/utils/utils.d.ts +6 -25
  272. package/dist/types/utils/zip/compress.base.d.ts +45 -0
  273. package/dist/types/utils/zip/compress.browser.d.ts +63 -0
  274. package/dist/types/utils/zip/compress.d.ts +13 -45
  275. package/dist/types/utils/zip/crc32.browser.d.ts +52 -0
  276. package/dist/types/utils/zip/deflate-fallback.d.ts +39 -0
  277. package/dist/types/utils/zip/index.d.ts +5 -5
  278. package/dist/types/utils/zip/streaming-zip.d.ts +96 -0
  279. package/dist/types/utils/zip/zip-builder.d.ts +1 -1
  280. package/dist/types/utils/zip-stream.browser.d.ts +39 -0
  281. package/dist/types/xlsx/xform/base-xform.d.ts +1 -1
  282. package/dist/types/xlsx/xform/book/defined-name-xform.d.ts +1 -1
  283. package/dist/types/xlsx/xform/book/sheet-xform.d.ts +1 -1
  284. package/dist/types/xlsx/xform/book/workbook-calc-properties-xform.d.ts +1 -1
  285. package/dist/types/xlsx/xform/book/workbook-pivot-cache-xform.d.ts +1 -1
  286. package/dist/types/xlsx/xform/book/workbook-properties-xform.d.ts +1 -1
  287. package/dist/types/xlsx/xform/book/workbook-view-xform.d.ts +1 -1
  288. package/dist/types/xlsx/xform/book/workbook-xform.d.ts +2 -2
  289. package/dist/types/xlsx/xform/comment/comment-xform.d.ts +2 -2
  290. package/dist/types/xlsx/xform/comment/comments-xform.d.ts +2 -2
  291. package/dist/types/xlsx/xform/comment/style/vml-position-xform.d.ts +1 -1
  292. package/dist/types/xlsx/xform/comment/style/vml-protection-xform.d.ts +1 -1
  293. package/dist/types/xlsx/xform/comment/vml-anchor-xform.d.ts +1 -1
  294. package/dist/types/xlsx/xform/comment/vml-client-data-xform.d.ts +1 -1
  295. package/dist/types/xlsx/xform/comment/vml-notes-xform.d.ts +1 -1
  296. package/dist/types/xlsx/xform/comment/vml-shape-xform.d.ts +1 -1
  297. package/dist/types/xlsx/xform/comment/vml-textbox-xform.d.ts +1 -1
  298. package/dist/types/xlsx/xform/composite-xform.d.ts +1 -1
  299. package/dist/types/xlsx/xform/core/app-heading-pairs-xform.d.ts +1 -1
  300. package/dist/types/xlsx/xform/core/app-titles-of-parts-xform.d.ts +1 -1
  301. package/dist/types/xlsx/xform/core/app-xform.d.ts +1 -1
  302. package/dist/types/xlsx/xform/core/content-types-xform.d.ts +1 -1
  303. package/dist/types/xlsx/xform/core/core-xform.d.ts +1 -1
  304. package/dist/types/xlsx/xform/core/relationship-xform.d.ts +1 -1
  305. package/dist/types/xlsx/xform/core/relationships-xform.d.ts +1 -1
  306. package/dist/types/xlsx/xform/drawing/base-cell-anchor-xform.d.ts +1 -1
  307. package/dist/types/xlsx/xform/drawing/blip-fill-xform.d.ts +2 -2
  308. package/dist/types/xlsx/xform/drawing/blip-xform.d.ts +1 -1
  309. package/dist/types/xlsx/xform/drawing/c-nv-pic-pr-xform.d.ts +1 -1
  310. package/dist/types/xlsx/xform/drawing/c-nv-pr-xform.d.ts +1 -1
  311. package/dist/types/xlsx/xform/drawing/cell-position-xform.d.ts +2 -2
  312. package/dist/types/xlsx/xform/drawing/drawing-xform.d.ts +1 -1
  313. package/dist/types/xlsx/xform/drawing/ext-lst-xform.d.ts +1 -1
  314. package/dist/types/xlsx/xform/drawing/ext-xform.d.ts +1 -1
  315. package/dist/types/xlsx/xform/drawing/hlink-click-xform.d.ts +1 -1
  316. package/dist/types/xlsx/xform/drawing/nv-pic-pr-xform.d.ts +1 -1
  317. package/dist/types/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +1 -1
  318. package/dist/types/xlsx/xform/drawing/pic-xform.d.ts +1 -1
  319. package/dist/types/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +1 -1
  320. package/dist/types/xlsx/xform/list-xform.d.ts +1 -1
  321. package/dist/types/xlsx/xform/pivot-table/cache-field-xform.d.ts +1 -1
  322. package/dist/types/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +3 -3
  323. package/dist/types/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +2 -2
  324. package/dist/types/xlsx/xform/pivot-table/pivot-table-xform.d.ts +1 -1
  325. package/dist/types/xlsx/xform/sheet/auto-filter-xform.d.ts +1 -1
  326. package/dist/types/xlsx/xform/sheet/cell-xform.d.ts +1 -1
  327. package/dist/types/xlsx/xform/sheet/cf/cf-rule-xform.d.ts +6 -6
  328. package/dist/types/xlsx/xform/sheet/cf/cfvo-xform.d.ts +1 -1
  329. package/dist/types/xlsx/xform/sheet/cf/color-scale-xform.d.ts +3 -3
  330. package/dist/types/xlsx/xform/sheet/cf/conditional-formatting-xform.d.ts +1 -1
  331. package/dist/types/xlsx/xform/sheet/cf/conditional-formattings-xform.d.ts +2 -2
  332. package/dist/types/xlsx/xform/sheet/cf/databar-xform.d.ts +3 -3
  333. package/dist/types/xlsx/xform/sheet/cf/ext-lst-ref-xform.d.ts +1 -1
  334. package/dist/types/xlsx/xform/sheet/cf/formula-xform.d.ts +1 -1
  335. package/dist/types/xlsx/xform/sheet/cf/icon-set-xform.d.ts +2 -2
  336. package/dist/types/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.d.ts +1 -1
  337. package/dist/types/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.d.ts +3 -3
  338. package/dist/types/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.d.ts +2 -2
  339. package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.d.ts +3 -3
  340. package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.d.ts +2 -2
  341. package/dist/types/xlsx/xform/sheet/cf-ext/databar-ext-xform.d.ts +3 -3
  342. package/dist/types/xlsx/xform/sheet/cf-ext/f-ext-xform.d.ts +1 -1
  343. package/dist/types/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.d.ts +3 -3
  344. package/dist/types/xlsx/xform/sheet/cf-ext/sqref-ext-xform.d.ts +1 -1
  345. package/dist/types/xlsx/xform/sheet/col-breaks-xform.d.ts +16 -0
  346. package/dist/types/xlsx/xform/sheet/col-xform.d.ts +1 -1
  347. package/dist/types/xlsx/xform/sheet/data-validations-xform.d.ts +1 -1
  348. package/dist/types/xlsx/xform/sheet/dimension-xform.d.ts +1 -1
  349. package/dist/types/xlsx/xform/sheet/drawing-xform.d.ts +1 -1
  350. package/dist/types/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -1
  351. package/dist/types/xlsx/xform/sheet/header-footer-xform.d.ts +1 -1
  352. package/dist/types/xlsx/xform/sheet/hyperlink-xform.d.ts +1 -1
  353. package/dist/types/xlsx/xform/sheet/merge-cell-xform.d.ts +1 -1
  354. package/dist/types/xlsx/xform/sheet/outline-properties-xform.d.ts +1 -1
  355. package/dist/types/xlsx/xform/sheet/page-breaks-xform.d.ts +5 -1
  356. package/dist/types/xlsx/xform/sheet/page-margins-xform.d.ts +1 -1
  357. package/dist/types/xlsx/xform/sheet/page-setup-properties-xform.d.ts +1 -1
  358. package/dist/types/xlsx/xform/sheet/page-setup-xform.d.ts +1 -1
  359. package/dist/types/xlsx/xform/sheet/picture-xform.d.ts +1 -1
  360. package/dist/types/xlsx/xform/sheet/print-options-xform.d.ts +1 -1
  361. package/dist/types/xlsx/xform/sheet/row-breaks-xform.d.ts +5 -1
  362. package/dist/types/xlsx/xform/sheet/row-xform.d.ts +1 -1
  363. package/dist/types/xlsx/xform/sheet/sheet-format-properties-xform.d.ts +1 -1
  364. package/dist/types/xlsx/xform/sheet/sheet-properties-xform.d.ts +1 -1
  365. package/dist/types/xlsx/xform/sheet/sheet-protection-xform.d.ts +1 -1
  366. package/dist/types/xlsx/xform/sheet/sheet-view-xform.d.ts +1 -1
  367. package/dist/types/xlsx/xform/sheet/table-part-xform.d.ts +1 -1
  368. package/dist/types/xlsx/xform/sheet/worksheet-xform.d.ts +1 -1
  369. package/dist/types/xlsx/xform/simple/boolean-xform.d.ts +1 -1
  370. package/dist/types/xlsx/xform/simple/date-xform.d.ts +1 -1
  371. package/dist/types/xlsx/xform/simple/float-xform.d.ts +1 -1
  372. package/dist/types/xlsx/xform/simple/integer-xform.d.ts +1 -1
  373. package/dist/types/xlsx/xform/simple/string-xform.d.ts +1 -1
  374. package/dist/types/xlsx/xform/static-xform.d.ts +1 -1
  375. package/dist/types/xlsx/xform/strings/phonetic-text-xform.d.ts +1 -1
  376. package/dist/types/xlsx/xform/strings/rich-text-xform.d.ts +3 -3
  377. package/dist/types/xlsx/xform/strings/shared-string-xform.d.ts +1 -1
  378. package/dist/types/xlsx/xform/strings/shared-strings-xform.d.ts +2 -2
  379. package/dist/types/xlsx/xform/strings/text-xform.d.ts +1 -1
  380. package/dist/types/xlsx/xform/style/alignment-xform.d.ts +1 -1
  381. package/dist/types/xlsx/xform/style/border-xform.d.ts +2 -2
  382. package/dist/types/xlsx/xform/style/color-xform.d.ts +1 -1
  383. package/dist/types/xlsx/xform/style/dxf-xform.d.ts +1 -1
  384. package/dist/types/xlsx/xform/style/fill-xform.d.ts +2 -2
  385. package/dist/types/xlsx/xform/style/font-xform.d.ts +1 -1
  386. package/dist/types/xlsx/xform/style/numfmt-xform.d.ts +1 -1
  387. package/dist/types/xlsx/xform/style/protection-xform.d.ts +1 -1
  388. package/dist/types/xlsx/xform/style/style-xform.d.ts +3 -3
  389. package/dist/types/xlsx/xform/style/styles-xform.d.ts +2 -2
  390. package/dist/types/xlsx/xform/style/underline-xform.d.ts +1 -1
  391. package/dist/types/xlsx/xform/table/auto-filter-xform.d.ts +2 -2
  392. package/dist/types/xlsx/xform/table/custom-filter-xform.d.ts +1 -1
  393. package/dist/types/xlsx/xform/table/filter-column-xform.d.ts +2 -2
  394. package/dist/types/xlsx/xform/table/filter-xform.d.ts +1 -1
  395. package/dist/types/xlsx/xform/table/table-column-xform.d.ts +1 -1
  396. package/dist/types/xlsx/xform/table/table-style-info-xform.d.ts +1 -1
  397. package/dist/types/xlsx/xform/table/table-xform.d.ts +1 -1
  398. package/dist/types/xlsx/xlsx.base.d.ts +134 -0
  399. package/dist/types/xlsx/xlsx.browser.d.ts +31 -0
  400. package/dist/types/xlsx/xlsx.d.ts +20 -80
  401. package/package.json +16 -39
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ExtLstXform = void 0;
4
- const base_xform_js_1 = require("../base-xform");
5
- class ExtLstXform extends base_xform_js_1.BaseXform {
4
+ const base_xform_1 = require("../base-xform");
5
+ class ExtLstXform extends base_xform_1.BaseXform {
6
6
  get tag() {
7
7
  return "a:extLst";
8
8
  }
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ExtXform = void 0;
4
- const base_xform_js_1 = require("../base-xform");
4
+ const base_xform_1 = require("../base-xform");
5
5
  /** https://en.wikipedia.org/wiki/Office_Open_XML_file_formats#DrawingML */
6
6
  const EMU_PER_PIXEL_AT_96_DPI = 9525;
7
- class ExtXform extends base_xform_js_1.BaseXform {
7
+ class ExtXform extends base_xform_1.BaseXform {
8
8
  constructor(options) {
9
9
  super();
10
10
  this.tag = options.tag;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HLinkClickXform = void 0;
4
- const base_xform_js_1 = require("../base-xform");
5
- class HLinkClickXform extends base_xform_js_1.BaseXform {
4
+ const base_xform_1 = require("../base-xform");
5
+ class HLinkClickXform extends base_xform_1.BaseXform {
6
6
  constructor() {
7
7
  super();
8
8
  this.model = {};
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NvPicPrXform = void 0;
4
- const base_xform_js_1 = require("../base-xform");
5
- const c_nv_pr_xform_js_1 = require("./c-nv-pr-xform");
6
- const c_nv_pic_pr_xform_js_1 = require("./c-nv-pic-pr-xform");
7
- class NvPicPrXform extends base_xform_js_1.BaseXform {
4
+ const base_xform_1 = require("../base-xform");
5
+ const c_nv_pr_xform_1 = require("./c-nv-pr-xform");
6
+ const c_nv_pic_pr_xform_1 = require("./c-nv-pic-pr-xform");
7
+ class NvPicPrXform extends base_xform_1.BaseXform {
8
8
  constructor() {
9
9
  super();
10
10
  this.map = {
11
- "xdr:cNvPr": new c_nv_pr_xform_js_1.CNvPrXform(),
12
- "xdr:cNvPicPr": new c_nv_pic_pr_xform_js_1.CNvPicPrXform()
11
+ "xdr:cNvPr": new c_nv_pr_xform_1.CNvPrXform(),
12
+ "xdr:cNvPicPr": new c_nv_pic_pr_xform_1.CNvPicPrXform()
13
13
  };
14
14
  }
15
15
  get tag() {
@@ -1,19 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OneCellAnchorXform = void 0;
4
- const base_cell_anchor_xform_js_1 = require("./base-cell-anchor-xform");
5
- const static_xform_js_1 = require("../static-xform");
6
- const cell_position_xform_js_1 = require("./cell-position-xform");
7
- const ext_xform_js_1 = require("./ext-xform");
8
- const pic_xform_js_1 = require("./pic-xform");
9
- class OneCellAnchorXform extends base_cell_anchor_xform_js_1.BaseCellAnchorXform {
4
+ const base_cell_anchor_xform_1 = require("./base-cell-anchor-xform");
5
+ const static_xform_1 = require("../static-xform");
6
+ const cell_position_xform_1 = require("./cell-position-xform");
7
+ const ext_xform_1 = require("./ext-xform");
8
+ const pic_xform_1 = require("./pic-xform");
9
+ class OneCellAnchorXform extends base_cell_anchor_xform_1.BaseCellAnchorXform {
10
10
  constructor() {
11
11
  super();
12
12
  this.map = {
13
- "xdr:from": new cell_position_xform_js_1.CellPositionXform({ tag: "xdr:from" }),
14
- "xdr:ext": new ext_xform_js_1.ExtXform({ tag: "xdr:ext" }),
15
- "xdr:pic": new pic_xform_js_1.PicXform(),
16
- "xdr:clientData": new static_xform_js_1.StaticXform({ tag: "xdr:clientData" })
13
+ "xdr:from": new cell_position_xform_1.CellPositionXform({ tag: "xdr:from" }),
14
+ "xdr:ext": new ext_xform_1.ExtXform({ tag: "xdr:ext" }),
15
+ "xdr:pic": new pic_xform_1.PicXform(),
16
+ "xdr:clientData": new static_xform_1.StaticXform({ tag: "xdr:clientData" })
17
17
  };
18
18
  }
19
19
  get tag() {
@@ -1,18 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PicXform = void 0;
4
- const base_xform_js_1 = require("../base-xform");
5
- const static_xform_js_1 = require("../static-xform");
6
- const blip_fill_xform_js_1 = require("./blip-fill-xform");
7
- const nv_pic_pr_xform_js_1 = require("./nv-pic-pr-xform");
8
- const sp_pr_js_1 = require("./sp-pr");
9
- class PicXform extends base_xform_js_1.BaseXform {
4
+ const base_xform_1 = require("../base-xform");
5
+ const static_xform_1 = require("../static-xform");
6
+ const blip_fill_xform_1 = require("./blip-fill-xform");
7
+ const nv_pic_pr_xform_1 = require("./nv-pic-pr-xform");
8
+ const sp_pr_1 = require("./sp-pr");
9
+ class PicXform extends base_xform_1.BaseXform {
10
10
  constructor() {
11
11
  super();
12
12
  this.map = {
13
- "xdr:nvPicPr": new nv_pic_pr_xform_js_1.NvPicPrXform(),
14
- "xdr:blipFill": new blip_fill_xform_js_1.BlipFillXform(),
15
- "xdr:spPr": new static_xform_js_1.StaticXform(sp_pr_js_1.spPrJSON)
13
+ "xdr:nvPicPr": new nv_pic_pr_xform_1.NvPicPrXform(),
14
+ "xdr:blipFill": new blip_fill_xform_1.BlipFillXform(),
15
+ "xdr:spPr": new static_xform_1.StaticXform(sp_pr_1.spPrJSON)
16
16
  };
17
17
  }
18
18
  get tag() {
@@ -1,18 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TwoCellAnchorXform = void 0;
4
- const base_cell_anchor_xform_js_1 = require("./base-cell-anchor-xform");
5
- const static_xform_js_1 = require("../static-xform");
6
- const cell_position_xform_js_1 = require("./cell-position-xform");
7
- const pic_xform_js_1 = require("./pic-xform");
8
- class TwoCellAnchorXform extends base_cell_anchor_xform_js_1.BaseCellAnchorXform {
4
+ const base_cell_anchor_xform_1 = require("./base-cell-anchor-xform");
5
+ const static_xform_1 = require("../static-xform");
6
+ const cell_position_xform_1 = require("./cell-position-xform");
7
+ const pic_xform_1 = require("./pic-xform");
8
+ class TwoCellAnchorXform extends base_cell_anchor_xform_1.BaseCellAnchorXform {
9
9
  constructor() {
10
10
  super();
11
11
  this.map = {
12
- "xdr:from": new cell_position_xform_js_1.CellPositionXform({ tag: "xdr:from" }),
13
- "xdr:to": new cell_position_xform_js_1.CellPositionXform({ tag: "xdr:to" }),
14
- "xdr:pic": new pic_xform_js_1.PicXform(),
15
- "xdr:clientData": new static_xform_js_1.StaticXform({ tag: "xdr:clientData" })
12
+ "xdr:from": new cell_position_xform_1.CellPositionXform({ tag: "xdr:from" }),
13
+ "xdr:to": new cell_position_xform_1.CellPositionXform({ tag: "xdr:to" }),
14
+ "xdr:pic": new pic_xform_1.PicXform(),
15
+ "xdr:clientData": new static_xform_1.StaticXform({ tag: "xdr:clientData" })
16
16
  };
17
17
  }
18
18
  get tag() {
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ListXform = void 0;
4
- const base_xform_js_1 = require("./base-xform");
5
- class ListXform extends base_xform_js_1.BaseXform {
4
+ const base_xform_1 = require("./base-xform");
5
+ class ListXform extends base_xform_1.BaseXform {
6
6
  constructor(options) {
7
7
  super();
8
8
  this.tag = options.tag;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CacheFieldXform = void 0;
4
- const base_xform_js_1 = require("../base-xform");
5
- const utils_js_1 = require("../../../utils/utils");
4
+ const base_xform_1 = require("../base-xform");
5
+ const utils_1 = require("../../../utils/utils");
6
6
  /**
7
7
  * Xform for parsing individual <cacheField> elements within a pivot cache definition.
8
8
  *
@@ -22,7 +22,7 @@ const utils_js_1 = require("../../../utils/utils");
22
22
  * </cacheField>
23
23
  * ```
24
24
  */
25
- class CacheFieldXform extends base_xform_js_1.BaseXform {
25
+ class CacheFieldXform extends base_xform_1.BaseXform {
26
26
  constructor() {
27
27
  super();
28
28
  this.model = null;
@@ -41,7 +41,7 @@ class CacheFieldXform extends base_xform_js_1.BaseXform {
41
41
  case "cacheField":
42
42
  // Initialize the model with field name
43
43
  this.model = {
44
- name: (0, utils_js_1.xmlDecode)(attributes.name || ""),
44
+ name: (0, utils_1.xmlDecode)(attributes.name || ""),
45
45
  sharedItems: null
46
46
  };
47
47
  break;
@@ -76,7 +76,7 @@ class CacheFieldXform extends base_xform_js_1.BaseXform {
76
76
  // String value in sharedItems
77
77
  if (this.inSharedItems && this.model?.sharedItems !== null) {
78
78
  // Decode XML entities in the value
79
- const value = (0, utils_js_1.xmlDecode)(attributes.v || "");
79
+ const value = (0, utils_1.xmlDecode)(attributes.v || "");
80
80
  this.model.sharedItems.push(value);
81
81
  }
82
82
  break;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CacheField = void 0;
4
- const utils_js_1 = require("../../../utils/utils");
4
+ const utils_1 = require("../../../utils/utils");
5
5
  class CacheField {
6
6
  constructor({ name, sharedItems }) {
7
7
  // string type
@@ -26,7 +26,7 @@ class CacheField {
26
26
  // PivotCache Field: http://www.datypic.com/sc/ooxml/e-ssml_cacheField-1.html
27
27
  // Shared Items: http://www.datypic.com/sc/ooxml/e-ssml_sharedItems-1.html
28
28
  // Escape XML special characters in name attribute
29
- const escapedName = (0, utils_js_1.xmlEncode)(this.name);
29
+ const escapedName = (0, utils_1.xmlEncode)(this.name);
30
30
  // integer types
31
31
  if (this.sharedItems === null) {
32
32
  // TK(2023-07-18): left out attributes... minValue="5" maxValue="45"
@@ -37,7 +37,7 @@ class CacheField {
37
37
  // string types - escape XML special characters in each shared item value
38
38
  return `<cacheField name="${escapedName}" numFmtId="0">
39
39
  <sharedItems count="${this.sharedItems.length}">
40
- ${this.sharedItems.map(item => `<s v="${(0, utils_js_1.xmlEncode)(String(item))}" />`).join("")}
40
+ ${this.sharedItems.map(item => `<s v="${(0, utils_1.xmlEncode)(String(item))}" />`).join("")}
41
41
  </sharedItems>
42
42
  </cacheField>`;
43
43
  }
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PivotCacheDefinitionXform = void 0;
4
- const base_xform_js_1 = require("../base-xform");
5
- const cache_field_js_1 = require("./cache-field");
6
- const cache_field_xform_js_1 = require("./cache-field-xform");
7
- const xml_stream_js_1 = require("../../../utils/xml-stream");
8
- class PivotCacheDefinitionXform extends base_xform_js_1.BaseXform {
4
+ const base_xform_1 = require("../base-xform");
5
+ const cache_field_1 = require("./cache-field");
6
+ const cache_field_xform_1 = require("./cache-field-xform");
7
+ const xml_stream_1 = require("../../../utils/xml-stream");
8
+ class PivotCacheDefinitionXform extends base_xform_1.BaseXform {
9
9
  constructor() {
10
10
  super();
11
11
  this.map = {};
@@ -46,7 +46,9 @@ class PivotCacheDefinitionXform extends base_xform_js_1.BaseXform {
46
46
  */
47
47
  renderNew(xmlStream, model) {
48
48
  const { source, cacheFields } = model;
49
- xmlStream.openXml(xml_stream_js_1.XmlStream.StdDocAttributes);
49
+ // Record count = number of data rows (excluding header row)
50
+ const recordCount = source.getSheetValues().slice(2).length;
51
+ xmlStream.openXml(xml_stream_1.XmlStream.StdDocAttributes);
50
52
  xmlStream.openNode(this.tag, {
51
53
  ...PivotCacheDefinitionXform.PIVOT_CACHE_DEFINITION_ATTRIBUTES,
52
54
  "r:id": "rId1",
@@ -56,7 +58,7 @@ class PivotCacheDefinitionXform extends base_xform_js_1.BaseXform {
56
58
  createdVersion: "8",
57
59
  refreshedVersion: "8",
58
60
  minRefreshableVersion: "3",
59
- recordCount: cacheFields.length + 1
61
+ recordCount
60
62
  });
61
63
  xmlStream.openNode("cacheSource", { type: "worksheet" });
62
64
  xmlStream.leafNode("worksheetSource", {
@@ -66,7 +68,7 @@ class PivotCacheDefinitionXform extends base_xform_js_1.BaseXform {
66
68
  xmlStream.closeNode();
67
69
  xmlStream.openNode("cacheFields", { count: cacheFields.length });
68
70
  // Note: keeping this pretty-printed for now to ease debugging.
69
- xmlStream.writeXml(cacheFields.map((cacheField) => new cache_field_js_1.CacheField(cacheField).render()).join("\n "));
71
+ xmlStream.writeXml(cacheFields.map((cacheField) => new cache_field_1.CacheField(cacheField).render()).join("\n "));
70
72
  xmlStream.closeNode();
71
73
  xmlStream.closeNode();
72
74
  }
@@ -75,7 +77,7 @@ class PivotCacheDefinitionXform extends base_xform_js_1.BaseXform {
75
77
  */
76
78
  renderLoaded(xmlStream, model) {
77
79
  const { cacheFields, sourceRef, sourceSheet, recordCount } = model;
78
- xmlStream.openXml(xml_stream_js_1.XmlStream.StdDocAttributes);
80
+ xmlStream.openXml(xml_stream_1.XmlStream.StdDocAttributes);
79
81
  xmlStream.openNode(this.tag, {
80
82
  ...PivotCacheDefinitionXform.PIVOT_CACHE_DEFINITION_ATTRIBUTES,
81
83
  "r:id": model.rId || "rId1",
@@ -95,7 +97,7 @@ class PivotCacheDefinitionXform extends base_xform_js_1.BaseXform {
95
97
  xmlStream.closeNode();
96
98
  xmlStream.openNode("cacheFields", { count: cacheFields.length });
97
99
  xmlStream.writeXml(cacheFields
98
- .map((cacheField) => new cache_field_js_1.CacheField(cacheField).render())
100
+ .map((cacheField) => new cache_field_1.CacheField(cacheField).render())
99
101
  .join("\n "));
100
102
  xmlStream.closeNode();
101
103
  xmlStream.closeNode();
@@ -138,7 +140,7 @@ class PivotCacheDefinitionXform extends base_xform_js_1.BaseXform {
138
140
  break;
139
141
  case "cacheField":
140
142
  if (this.inCacheFields) {
141
- this.currentCacheField = new cache_field_xform_js_1.CacheFieldXform();
143
+ this.currentCacheField = new cache_field_xform_1.CacheFieldXform();
142
144
  this.currentCacheField.parseOpen(node);
143
145
  }
144
146
  break;
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PivotCacheRecordsXform = void 0;
4
- const xml_stream_js_1 = require("../../../utils/xml-stream");
5
- const utils_js_1 = require("../../../utils/utils");
6
- const base_xform_js_1 = require("../base-xform");
7
- class PivotCacheRecordsXform extends base_xform_js_1.BaseXform {
4
+ const xml_stream_1 = require("../../../utils/xml-stream");
5
+ const utils_1 = require("../../../utils/utils");
6
+ const base_xform_1 = require("../base-xform");
7
+ class PivotCacheRecordsXform extends base_xform_1.BaseXform {
8
8
  constructor() {
9
9
  super();
10
10
  this.map = {};
@@ -42,7 +42,7 @@ class PivotCacheRecordsXform extends base_xform_js_1.BaseXform {
42
42
  renderNew(xmlStream, model) {
43
43
  const { source, cacheFields } = model;
44
44
  const sourceBodyRows = source.getSheetValues().slice(2);
45
- xmlStream.openXml(xml_stream_js_1.XmlStream.StdDocAttributes);
45
+ xmlStream.openXml(xml_stream_1.XmlStream.StdDocAttributes);
46
46
  xmlStream.openNode(this.tag, {
47
47
  ...PivotCacheRecordsXform.PIVOT_CACHE_RECORDS_ATTRIBUTES,
48
48
  count: sourceBodyRows.length
@@ -54,7 +54,7 @@ class PivotCacheRecordsXform extends base_xform_js_1.BaseXform {
54
54
  * Render loaded pivot cache records
55
55
  */
56
56
  renderLoaded(xmlStream, model) {
57
- xmlStream.openXml(xml_stream_js_1.XmlStream.StdDocAttributes);
57
+ xmlStream.openXml(xml_stream_1.XmlStream.StdDocAttributes);
58
58
  xmlStream.openNode(this.tag, {
59
59
  ...PivotCacheRecordsXform.PIVOT_CACHE_RECORDS_ATTRIBUTES,
60
60
  count: model.count
@@ -80,7 +80,7 @@ class PivotCacheRecordsXform extends base_xform_js_1.BaseXform {
80
80
  case "n":
81
81
  return `<n v="${value.value}" />`;
82
82
  case "s":
83
- return `<s v="${(0, utils_js_1.xmlEncode)(String(value.value))}" />`;
83
+ return `<s v="${(0, utils_1.xmlEncode)(String(value.value))}" />`;
84
84
  case "b":
85
85
  return `<b v="${value.value ? "1" : "0"}" />`;
86
86
  case "m":
@@ -117,7 +117,7 @@ class PivotCacheRecordsXform extends base_xform_js_1.BaseXform {
117
117
  if (Number.isFinite(value)) {
118
118
  return `<n v="${value}" />`;
119
119
  }
120
- return `<s v="${(0, utils_js_1.xmlEncode)(String(value))}" />`;
120
+ return `<s v="${(0, utils_1.xmlEncode)(String(value))}" />`;
121
121
  }
122
122
  // shared items
123
123
  const sharedItemsIndex = sharedItems.indexOf(value);
@@ -165,7 +165,7 @@ class PivotCacheRecordsXform extends base_xform_js_1.BaseXform {
165
165
  if (this.currentRecord) {
166
166
  this.currentRecord.push({
167
167
  type: "s",
168
- value: (0, utils_js_1.xmlDecode)(attributes.v || "")
168
+ value: (0, utils_1.xmlDecode)(attributes.v || "")
169
169
  });
170
170
  }
171
171
  break;
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PivotTableXform = void 0;
4
- const uuid_1 = require("uuid");
5
- const xml_stream_js_1 = require("../../../utils/xml-stream");
6
- const utils_js_1 = require("../../../utils/utils");
7
- const base_xform_js_1 = require("../base-xform");
8
- class PivotTableXform extends base_xform_js_1.BaseXform {
4
+ const xml_stream_1 = require("../../../utils/xml-stream");
5
+ const utils_1 = require("../../../utils/utils");
6
+ const base_xform_1 = require("../base-xform");
7
+ class PivotTableXform extends base_xform_1.BaseXform {
9
8
  constructor() {
10
9
  super();
11
10
  this.map = {};
@@ -60,8 +59,24 @@ class PivotTableXform extends base_xform_js_1.BaseXform {
60
59
  renderNew(xmlStream, model) {
61
60
  const { rows, columns, values, cacheFields, cacheId, applyWidthHeightFormats } = model;
62
61
  // Generate unique UID for each pivot table to prevent Excel treating them as identical
63
- const uniqueUid = `{${(0, uuid_1.v4)().toUpperCase()}}`;
64
- xmlStream.openXml(xml_stream_js_1.XmlStream.StdDocAttributes);
62
+ const uniqueUid = `{${crypto.randomUUID().toUpperCase()}}`;
63
+ // Build rowItems - need one <i> for each unique value in row fields, plus grand total
64
+ const rowItems = buildRowItems(rows, cacheFields);
65
+ // Build colItems - need one <i> for each unique value in col fields, plus grand total
66
+ const colItems = buildColItems(columns, cacheFields, values.length);
67
+ // Calculate pivot table dimensions
68
+ const rowFieldItemCount = rows.length > 0 ? cacheFields[rows[0]]?.sharedItems?.length || 0 : 0;
69
+ const colFieldItemCount = columns.length > 0 ? cacheFields[columns[0]]?.sharedItems?.length || 0 : 0;
70
+ // Location: A3 is where pivot table starts
71
+ // - firstHeaderRow: 1 (column headers are in first row of pivot table)
72
+ // - firstDataRow: 2 (data starts in second row)
73
+ // - firstDataCol: 1 (data starts in second column, after row labels)
74
+ // Calculate ref based on actual data size
75
+ const endRow = 3 + rowFieldItemCount + 1; // start row + data rows + grand total
76
+ const endCol = 1 + colFieldItemCount + 1; // start col + data cols + grand total
77
+ const endColLetter = String.fromCharCode(64 + endCol);
78
+ const locationRef = `A3:${endColLetter}${endRow}`;
79
+ xmlStream.openXml(xml_stream_1.XmlStream.StdDocAttributes);
65
80
  xmlStream.openNode(this.tag, {
66
81
  ...PivotTableXform.PIVOT_TABLE_ATTRIBUTES,
67
82
  "xr:uid": uniqueUid,
@@ -85,23 +100,23 @@ class PivotTableXform extends base_xform_js_1.BaseXform {
85
100
  multipleFieldFilters: "0"
86
101
  });
87
102
  xmlStream.writeXml(`
88
- <location ref="A3:E15" firstHeaderRow="1" firstDataRow="2" firstDataCol="1" />
103
+ <location ref="${locationRef}" firstHeaderRow="1" firstDataRow="2" firstDataCol="1" />
89
104
  <pivotFields count="${cacheFields.length}">
90
105
  ${renderPivotFields(model)}
91
106
  </pivotFields>
92
107
  <rowFields count="${rows.length}">
93
108
  ${rows.map(rowIndex => `<field x="${rowIndex}" />`).join("\n ")}
94
109
  </rowFields>
95
- <rowItems count="1">
96
- <i t="grand"><x /></i>
110
+ <rowItems count="${rowItems.count}">
111
+ ${rowItems.xml}
97
112
  </rowItems>
98
113
  <colFields count="${columns.length === 0 ? 1 : columns.length}">
99
114
  ${columns.length === 0
100
115
  ? '<field x="-2" />'
101
116
  : columns.map(columnIndex => `<field x="${columnIndex}" />`).join("\n ")}
102
117
  </colFields>
103
- <colItems count="1">
104
- <i t="grand"><x /></i>
118
+ <colItems count="${colItems.count}">
119
+ ${colItems.xml}
105
120
  </colItems>
106
121
  <dataFields count="${values.length}">
107
122
  ${buildDataFields(cacheFields, values, model.metric)}
@@ -141,8 +156,8 @@ class PivotTableXform extends base_xform_js_1.BaseXform {
141
156
  * Render loaded pivot table (preserving original structure)
142
157
  */
143
158
  renderLoaded(xmlStream, model) {
144
- const uniqueUid = model.uid || `{${(0, uuid_1.v4)().toUpperCase()}}`;
145
- xmlStream.openXml(xml_stream_js_1.XmlStream.StdDocAttributes);
159
+ const uniqueUid = model.uid || `{${crypto.randomUUID().toUpperCase()}}`;
160
+ xmlStream.openXml(xml_stream_1.XmlStream.StdDocAttributes);
146
161
  xmlStream.openNode(this.tag, {
147
162
  ...PivotTableXform.PIVOT_TABLE_ATTRIBUTES,
148
163
  "xr:uid": uniqueUid,
@@ -399,7 +414,7 @@ class PivotTableXform extends base_xform_js_1.BaseXform {
399
414
  case "dataField":
400
415
  if (this.inDataFields && this.model) {
401
416
  this.model.dataFields.push({
402
- name: (0, utils_js_1.xmlDecode)(attributes.name || ""),
417
+ name: (0, utils_1.xmlDecode)(attributes.name || ""),
403
418
  fld: parseInt(attributes.fld || "0", 10),
404
419
  baseField: attributes.baseField ? parseInt(attributes.baseField, 10) : 0,
405
420
  baseItem: attributes.baseItem ? parseInt(attributes.baseItem, 10) : 0,
@@ -465,6 +480,70 @@ PivotTableXform.PIVOT_TABLE_ATTRIBUTES = {
465
480
  "xmlns:xr": "http://schemas.microsoft.com/office/spreadsheetml/2014/revision"
466
481
  };
467
482
  // Helpers
483
+ /**
484
+ * Build rowItems XML - one item for each unique value in row fields, plus grand total.
485
+ * Each <i> represents a row in the pivot table.
486
+ * - Regular items: <i><x v="index"/></i> where index is the position in sharedItems
487
+ * - Grand total: <i t="grand"><x/></i>
488
+ */
489
+ function buildRowItems(rows, cacheFields) {
490
+ if (rows.length === 0) {
491
+ // No row fields - just grand total
492
+ return { count: 1, xml: '<i t="grand"><x /></i>' };
493
+ }
494
+ // Get unique values count from the first row field
495
+ const rowFieldIndex = rows[0];
496
+ const sharedItems = cacheFields[rowFieldIndex]?.sharedItems || [];
497
+ const itemCount = sharedItems.length;
498
+ // Build items: one for each unique value + grand total
499
+ const items = [];
500
+ // Regular items - reference each unique value by index
501
+ for (let i = 0; i < itemCount; i++) {
502
+ items.push(`<i><x v="${i}" /></i>`);
503
+ }
504
+ // Grand total row
505
+ items.push('<i t="grand"><x /></i>');
506
+ return {
507
+ count: items.length,
508
+ xml: items.join("\n ")
509
+ };
510
+ }
511
+ /**
512
+ * Build colItems XML - one item for each unique value in column fields, plus grand total.
513
+ * When there are multiple data fields (values), each column value may have sub-columns.
514
+ */
515
+ function buildColItems(columns, cacheFields, valueCount) {
516
+ if (columns.length === 0) {
517
+ // No column fields - columns are based on data fields (values)
518
+ if (valueCount > 1) {
519
+ // Multiple values: one column per value + grand total
520
+ const items = [];
521
+ for (let i = 0; i < valueCount; i++) {
522
+ items.push(`<i><x v="${i}" /></i>`);
523
+ }
524
+ items.push('<i t="grand"><x /></i>');
525
+ return { count: items.length, xml: items.join("\n ") };
526
+ }
527
+ // Single value: just grand total
528
+ return { count: 1, xml: '<i t="grand"><x /></i>' };
529
+ }
530
+ // Get unique values count from the first column field
531
+ const colFieldIndex = columns[0];
532
+ const sharedItems = cacheFields[colFieldIndex]?.sharedItems || [];
533
+ const itemCount = sharedItems.length;
534
+ // Build items: one for each unique value + grand total
535
+ const items = [];
536
+ // Regular items - reference each unique value by index
537
+ for (let i = 0; i < itemCount; i++) {
538
+ items.push(`<i><x v="${i}" /></i>`);
539
+ }
540
+ // Grand total column
541
+ items.push('<i t="grand"><x /></i>');
542
+ return {
543
+ count: items.length,
544
+ xml: items.join("\n ")
545
+ };
546
+ }
468
547
  /**
469
548
  * Build dataField XML elements for all values in the pivot table.
470
549
  * Supports multiple values when columns is empty.
@@ -475,7 +554,7 @@ function buildDataFields(cacheFields, values, metric) {
475
554
  const subtotalAttr = metric === "count" ? ' subtotal="count"' : "";
476
555
  return values
477
556
  .map(valueIndex => `<dataField
478
- name="${metricName} of ${(0, utils_js_1.xmlEncode)(cacheFields[valueIndex].name)}"
557
+ name="${metricName} of ${(0, utils_1.xmlEncode)(cacheFields[valueIndex].name)}"
479
558
  fld="${valueIndex}"
480
559
  baseField="0"
481
560
  baseItem="0"${subtotalAttr}
@@ -505,10 +584,15 @@ function renderPivotField(fieldType, sharedItems) {
505
584
  const defaultAttributes = 'compact="0" outline="0" showAll="0" defaultSubtotal="0"';
506
585
  if (fieldType === "row" || fieldType === "column") {
507
586
  const axis = fieldType === "row" ? "axisRow" : "axisCol";
587
+ // items = one for each shared item + one default item
588
+ const itemsXml = [
589
+ ...sharedItems.map((_item, index) => `<item x="${index}" />`),
590
+ '<item t="default" />' // Required default item for subtotals/grand totals
591
+ ].join("\n ");
508
592
  return `
509
593
  <pivotField axis="${axis}" ${defaultAttributes}>
510
594
  <items count="${sharedItems.length + 1}">
511
- ${sharedItems.map((_item, index) => `<item x="${index}" />`).join("\n ")}
595
+ ${itemsXml}
512
596
  </items>
513
597
  </pivotField>
514
598
  `;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AutoFilterXform = void 0;
4
- const col_cache_js_1 = require("../../../utils/col-cache");
5
- const base_xform_js_1 = require("../base-xform");
6
- class AutoFilterXform extends base_xform_js_1.BaseXform {
4
+ const col_cache_1 = require("../../../utils/col-cache");
5
+ const base_xform_1 = require("../base-xform");
6
+ class AutoFilterXform extends base_xform_1.BaseXform {
7
7
  get tag() {
8
8
  return "autoFilter";
9
9
  }
@@ -18,7 +18,7 @@ class AutoFilterXform extends base_xform_js_1.BaseXform {
18
18
  if (typeof addr === "string") {
19
19
  return addr;
20
20
  }
21
- return col_cache_js_1.colCache.getAddress(addr.row, addr.column).address;
21
+ return col_cache_1.colCache.getAddress(addr.row, addr.column).address;
22
22
  };
23
23
  const firstAddress = getAddress(model.from);
24
24
  const secondAddress = getAddress(model.to);