@lyit/exceljs 4.4.1

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 (543) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +3398 -0
  3. package/README_zh.md +2878 -0
  4. package/dist/LICENSE +22 -0
  5. package/dist/es5/csv/csv.js +182 -0
  6. package/dist/es5/csv/csv.js.map +1 -0
  7. package/dist/es5/csv/line-buffer.js +68 -0
  8. package/dist/es5/csv/line-buffer.js.map +1 -0
  9. package/dist/es5/csv/stream-converter.js +110 -0
  10. package/dist/es5/csv/stream-converter.js.map +1 -0
  11. package/dist/es5/doc/anchor.js +73 -0
  12. package/dist/es5/doc/anchor.js.map +1 -0
  13. package/dist/es5/doc/cell.js +960 -0
  14. package/dist/es5/doc/cell.js.map +1 -0
  15. package/dist/es5/doc/column.js +274 -0
  16. package/dist/es5/doc/column.js.map +1 -0
  17. package/dist/es5/doc/data-validations.js +18 -0
  18. package/dist/es5/doc/data-validations.js.map +1 -0
  19. package/dist/es5/doc/defined-names.js +173 -0
  20. package/dist/es5/doc/defined-names.js.map +1 -0
  21. package/dist/es5/doc/enums.js +49 -0
  22. package/dist/es5/doc/enums.js.map +1 -0
  23. package/dist/es5/doc/form-checkbox.js +342 -0
  24. package/dist/es5/doc/form-checkbox.js.map +1 -0
  25. package/dist/es5/doc/image.js +69 -0
  26. package/dist/es5/doc/image.js.map +1 -0
  27. package/dist/es5/doc/modelcontainer.js +16 -0
  28. package/dist/es5/doc/modelcontainer.js.map +1 -0
  29. package/dist/es5/doc/note.js +64 -0
  30. package/dist/es5/doc/note.js.map +1 -0
  31. package/dist/es5/doc/pivot-table.js +247 -0
  32. package/dist/es5/doc/pivot-table.js.map +1 -0
  33. package/dist/es5/doc/range.js +229 -0
  34. package/dist/es5/doc/range.js.map +1 -0
  35. package/dist/es5/doc/row.js +391 -0
  36. package/dist/es5/doc/row.js.map +1 -0
  37. package/dist/es5/doc/table.js +542 -0
  38. package/dist/es5/doc/table.js.map +1 -0
  39. package/dist/es5/doc/workbook.js +221 -0
  40. package/dist/es5/doc/workbook.js.map +1 -0
  41. package/dist/es5/doc/worksheet.js +996 -0
  42. package/dist/es5/doc/worksheet.js.map +1 -0
  43. package/dist/es5/exceljs.bare.js +14 -0
  44. package/dist/es5/exceljs.bare.js.map +1 -0
  45. package/dist/es5/exceljs.browser.js +36 -0
  46. package/dist/es5/exceljs.browser.js.map +1 -0
  47. package/dist/es5/exceljs.nodejs.js +15 -0
  48. package/dist/es5/exceljs.nodejs.js.map +1 -0
  49. package/dist/es5/index.js +15 -0
  50. package/dist/es5/stream/xlsx/hyperlink-reader.js +90 -0
  51. package/dist/es5/stream/xlsx/hyperlink-reader.js.map +1 -0
  52. package/dist/es5/stream/xlsx/sheet-comments-writer.js +94 -0
  53. package/dist/es5/stream/xlsx/sheet-comments-writer.js.map +1 -0
  54. package/dist/es5/stream/xlsx/sheet-rels-writer.js +94 -0
  55. package/dist/es5/stream/xlsx/sheet-rels-writer.js.map +1 -0
  56. package/dist/es5/stream/xlsx/workbook-reader.js +361 -0
  57. package/dist/es5/stream/xlsx/workbook-reader.js.map +1 -0
  58. package/dist/es5/stream/xlsx/workbook-writer.js +347 -0
  59. package/dist/es5/stream/xlsx/workbook-writer.js.map +1 -0
  60. package/dist/es5/stream/xlsx/worksheet-reader.js +392 -0
  61. package/dist/es5/stream/xlsx/worksheet-reader.js.map +1 -0
  62. package/dist/es5/stream/xlsx/worksheet-writer.js +652 -0
  63. package/dist/es5/stream/xlsx/worksheet-writer.js.map +1 -0
  64. package/dist/es5/utils/auto-drain.js +18 -0
  65. package/dist/es5/utils/auto-drain.js.map +1 -0
  66. package/dist/es5/utils/browser-buffer-decode.js +15 -0
  67. package/dist/es5/utils/browser-buffer-decode.js.map +1 -0
  68. package/dist/es5/utils/browser-buffer-encode.js +18 -0
  69. package/dist/es5/utils/browser-buffer-encode.js.map +1 -0
  70. package/dist/es5/utils/cell-matrix.js +149 -0
  71. package/dist/es5/utils/cell-matrix.js.map +1 -0
  72. package/dist/es5/utils/col-cache.js +258 -0
  73. package/dist/es5/utils/col-cache.js.map +1 -0
  74. package/dist/es5/utils/copy-style.js +43 -0
  75. package/dist/es5/utils/copy-style.js.map +1 -0
  76. package/dist/es5/utils/encryptor.js +58 -0
  77. package/dist/es5/utils/encryptor.js.map +1 -0
  78. package/dist/es5/utils/iterate-stream.js +46 -0
  79. package/dist/es5/utils/iterate-stream.js.map +1 -0
  80. package/dist/es5/utils/parse-sax.js +66 -0
  81. package/dist/es5/utils/parse-sax.js.map +1 -0
  82. package/dist/es5/utils/shared-formula.js +42 -0
  83. package/dist/es5/utils/shared-formula.js.map +1 -0
  84. package/dist/es5/utils/shared-strings.js +37 -0
  85. package/dist/es5/utils/shared-strings.js.map +1 -0
  86. package/dist/es5/utils/stream-base64.js +66 -0
  87. package/dist/es5/utils/stream-base64.js.map +1 -0
  88. package/dist/es5/utils/stream-buf.js +365 -0
  89. package/dist/es5/utils/stream-buf.js.map +1 -0
  90. package/dist/es5/utils/string-buf.js +73 -0
  91. package/dist/es5/utils/string-buf.js.map +1 -0
  92. package/dist/es5/utils/string-builder.js +32 -0
  93. package/dist/es5/utils/string-builder.js.map +1 -0
  94. package/dist/es5/utils/stuttered-pipe.js +61 -0
  95. package/dist/es5/utils/stuttered-pipe.js.map +1 -0
  96. package/dist/es5/utils/typed-stack.js +23 -0
  97. package/dist/es5/utils/typed-stack.js.map +1 -0
  98. package/dist/es5/utils/under-dash.js +168 -0
  99. package/dist/es5/utils/under-dash.js.map +1 -0
  100. package/dist/es5/utils/utils.js +205 -0
  101. package/dist/es5/utils/utils.js.map +1 -0
  102. package/dist/es5/utils/xml-stream.js +151 -0
  103. package/dist/es5/utils/xml-stream.js.map +1 -0
  104. package/dist/es5/utils/zip-stream.js +79 -0
  105. package/dist/es5/utils/zip-stream.js.map +1 -0
  106. package/dist/es5/xlsx/defaultnumformats.js +230 -0
  107. package/dist/es5/xlsx/defaultnumformats.js.map +1 -0
  108. package/dist/es5/xlsx/rel-type.js +22 -0
  109. package/dist/es5/xlsx/rel-type.js.map +1 -0
  110. package/dist/es5/xlsx/xform/base-xform.js +139 -0
  111. package/dist/es5/xlsx/xform/base-xform.js.map +1 -0
  112. package/dist/es5/xlsx/xform/book/defined-name-xform.js +85 -0
  113. package/dist/es5/xlsx/xform/book/defined-name-xform.js.map +1 -0
  114. package/dist/es5/xlsx/xform/book/sheet-xform.js +32 -0
  115. package/dist/es5/xlsx/xform/book/sheet-xform.js.map +1 -0
  116. package/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js +24 -0
  117. package/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js.map +1 -0
  118. package/dist/es5/xlsx/xform/book/workbook-pivot-cache-xform.js +27 -0
  119. package/dist/es5/xlsx/xform/book/workbook-pivot-cache-xform.js.map +1 -0
  120. package/dist/es5/xlsx/xform/book/workbook-properties-xform.js +27 -0
  121. package/dist/es5/xlsx/xform/book/workbook-properties-xform.js.map +1 -0
  122. package/dist/es5/xlsx/xform/book/workbook-view-xform.js +51 -0
  123. package/dist/es5/xlsx/xform/book/workbook-view-xform.js.map +1 -0
  124. package/dist/es5/xlsx/xform/book/workbook-xform.js +244 -0
  125. package/dist/es5/xlsx/xform/book/workbook-xform.js.map +1 -0
  126. package/dist/es5/xlsx/xform/comment/comment-xform.js +103 -0
  127. package/dist/es5/xlsx/xform/comment/comment-xform.js.map +1 -0
  128. package/dist/es5/xlsx/xform/comment/comments-xform.js +76 -0
  129. package/dist/es5/xlsx/xform/comment/comments-xform.js.map +1 -0
  130. package/dist/es5/xlsx/xform/comment/style/vml-position-xform.js +35 -0
  131. package/dist/es5/xlsx/xform/comment/style/vml-position-xform.js.map +1 -0
  132. package/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js +32 -0
  133. package/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js.map +1 -0
  134. package/dist/es5/xlsx/xform/comment/vml-anchor-xform.js +53 -0
  135. package/dist/es5/xlsx/xform/comment/vml-anchor-xform.js.map +1 -0
  136. package/dist/es5/xlsx/xform/comment/vml-client-data-xform.js +98 -0
  137. package/dist/es5/xlsx/xform/comment/vml-client-data-xform.js.map +1 -0
  138. package/dist/es5/xlsx/xform/comment/vml-notes-xform.js +235 -0
  139. package/dist/es5/xlsx/xform/comment/vml-notes-xform.js.map +1 -0
  140. package/dist/es5/xlsx/xform/comment/vml-shape-xform.js +93 -0
  141. package/dist/es5/xlsx/xform/comment/vml-shape-xform.js.map +1 -0
  142. package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js +61 -0
  143. package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js.map +1 -0
  144. package/dist/es5/xlsx/xform/composite-xform.js +51 -0
  145. package/dist/es5/xlsx/xform/composite-xform.js.map +1 -0
  146. package/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js +30 -0
  147. package/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js.map +1 -0
  148. package/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js +27 -0
  149. package/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js.map +1 -0
  150. package/dist/es5/xlsx/xform/core/app-xform.js +93 -0
  151. package/dist/es5/xlsx/xform/core/app-xform.js.map +1 -0
  152. package/dist/es5/xlsx/xform/core/content-types-xform.js +198 -0
  153. package/dist/es5/xlsx/xform/core/content-types-xform.js.map +1 -0
  154. package/dist/es5/xlsx/xform/core/core-xform.js +160 -0
  155. package/dist/es5/xlsx/xform/core/core-xform.js.map +1 -0
  156. package/dist/es5/xlsx/xform/core/relationship-xform.js +23 -0
  157. package/dist/es5/xlsx/xform/core/relationship-xform.js.map +1 -0
  158. package/dist/es5/xlsx/xform/core/relationships-xform.js +65 -0
  159. package/dist/es5/xlsx/xform/core/relationships-xform.js.map +1 -0
  160. package/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js +47 -0
  161. package/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js.map +1 -0
  162. package/dist/es5/xlsx/xform/drawing/blip-fill-xform.js +61 -0
  163. package/dist/es5/xlsx/xform/drawing/blip-fill-xform.js.map +1 -0
  164. package/dist/es5/xlsx/xform/drawing/blip-xform.js +39 -0
  165. package/dist/es5/xlsx/xform/drawing/blip-xform.js.map +1 -0
  166. package/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js +35 -0
  167. package/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js.map +1 -0
  168. package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js +62 -0
  169. package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js.map +1 -0
  170. package/dist/es5/xlsx/xform/drawing/cell-position-xform.js +82 -0
  171. package/dist/es5/xlsx/xform/drawing/cell-position-xform.js.map +1 -0
  172. package/dist/es5/xlsx/xform/drawing/ctrl-prop-xform.js +75 -0
  173. package/dist/es5/xlsx/xform/drawing/ctrl-prop-xform.js.map +1 -0
  174. package/dist/es5/xlsx/xform/drawing/drawing-xform.js +98 -0
  175. package/dist/es5/xlsx/xform/drawing/drawing-xform.js.map +1 -0
  176. package/dist/es5/xlsx/xform/drawing/ext-lst-xform.js +40 -0
  177. package/dist/es5/xlsx/xform/drawing/ext-lst-xform.js.map +1 -0
  178. package/dist/es5/xlsx/xform/drawing/ext-xform.js +38 -0
  179. package/dist/es5/xlsx/xform/drawing/ext-xform.js.map +1 -0
  180. package/dist/es5/xlsx/xform/drawing/hlink-click-xform.js +38 -0
  181. package/dist/es5/xlsx/xform/drawing/hlink-click-xform.js.map +1 -0
  182. package/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js +59 -0
  183. package/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js.map +1 -0
  184. package/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js +63 -0
  185. package/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js.map +1 -0
  186. package/dist/es5/xlsx/xform/drawing/pic-xform.js +67 -0
  187. package/dist/es5/xlsx/xform/drawing/pic-xform.js.map +1 -0
  188. package/dist/es5/xlsx/xform/drawing/sp-pr.js +30 -0
  189. package/dist/es5/xlsx/xform/drawing/sp-pr.js.map +1 -0
  190. package/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js +62 -0
  191. package/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js.map +1 -0
  192. package/dist/es5/xlsx/xform/list-xform.js +91 -0
  193. package/dist/es5/xlsx/xform/list-xform.js.map +1 -0
  194. package/dist/es5/xlsx/xform/pivot-table/cache-field.js +72 -0
  195. package/dist/es5/xlsx/xform/pivot-table/cache-field.js.map +1 -0
  196. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +74 -0
  197. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js.map +1 -0
  198. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js +100 -0
  199. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js.map +1 -0
  200. package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js +229 -0
  201. package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js.map +1 -0
  202. package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js +40 -0
  203. package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js.map +1 -0
  204. package/dist/es5/xlsx/xform/sheet/cell-xform.js +450 -0
  205. package/dist/es5/xlsx/xform/sheet/cell-xform.js.map +1 -0
  206. package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js +282 -0
  207. package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js.map +1 -0
  208. package/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js +25 -0
  209. package/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js.map +1 -0
  210. package/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js +38 -0
  211. package/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js.map +1 -0
  212. package/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js +45 -0
  213. package/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js.map +1 -0
  214. package/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js +77 -0
  215. package/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js.map +1 -0
  216. package/dist/es5/xlsx/xform/sheet/cf/databar-xform.js +54 -0
  217. package/dist/es5/xlsx/xform/sheet/cf/databar-xform.js.map +1 -0
  218. package/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +71 -0
  219. package/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js.map +1 -0
  220. package/dist/es5/xlsx/xform/sheet/cf/formula-xform.js +22 -0
  221. package/dist/es5/xlsx/xform/sheet/cf/formula-xform.js.map +1 -0
  222. package/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js +43 -0
  223. package/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js.map +1 -0
  224. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +28 -0
  225. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js.map +1 -0
  226. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +88 -0
  227. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js.map +1 -0
  228. package/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +38 -0
  229. package/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js.map +1 -0
  230. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +52 -0
  231. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js.map +1 -0
  232. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +43 -0
  233. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js.map +1 -0
  234. package/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +82 -0
  235. package/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js.map +1 -0
  236. package/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js +22 -0
  237. package/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js.map +1 -0
  238. package/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +66 -0
  239. package/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js.map +1 -0
  240. package/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +22 -0
  241. package/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js.map +1 -0
  242. package/dist/es5/xlsx/xform/sheet/col-xform.js +78 -0
  243. package/dist/es5/xlsx/xform/sheet/col-xform.js.map +1 -0
  244. package/dist/es5/xlsx/xform/sheet/data-validations-xform.js +247 -0
  245. package/dist/es5/xlsx/xform/sheet/data-validations-xform.js.map +1 -0
  246. package/dist/es5/xlsx/xform/sheet/dimension-xform.js +28 -0
  247. package/dist/es5/xlsx/xform/sheet/dimension-xform.js.map +1 -0
  248. package/dist/es5/xlsx/xform/sheet/drawing-xform.js +32 -0
  249. package/dist/es5/xlsx/xform/sheet/drawing-xform.js.map +1 -0
  250. package/dist/es5/xlsx/xform/sheet/ext-lst-xform.js +69 -0
  251. package/dist/es5/xlsx/xform/sheet/ext-lst-xform.js.map +1 -0
  252. package/dist/es5/xlsx/xform/sheet/header-footer-xform.js +126 -0
  253. package/dist/es5/xlsx/xform/sheet/header-footer-xform.js.map +1 -0
  254. package/dist/es5/xlsx/xform/sheet/hyperlink-xform.js +50 -0
  255. package/dist/es5/xlsx/xform/sheet/hyperlink-xform.js.map +1 -0
  256. package/dist/es5/xlsx/xform/sheet/merge-cell-xform.js +26 -0
  257. package/dist/es5/xlsx/xform/sheet/merge-cell-xform.js.map +1 -0
  258. package/dist/es5/xlsx/xform/sheet/merges.js +52 -0
  259. package/dist/es5/xlsx/xform/sheet/merges.js.map +1 -0
  260. package/dist/es5/xlsx/xform/sheet/outline-properties-xform.js +35 -0
  261. package/dist/es5/xlsx/xform/sheet/outline-properties-xform.js.map +1 -0
  262. package/dist/es5/xlsx/xform/sheet/page-breaks-xform.js +24 -0
  263. package/dist/es5/xlsx/xform/sheet/page-breaks-xform.js.map +1 -0
  264. package/dist/es5/xlsx/xform/sheet/page-margins-xform.js +46 -0
  265. package/dist/es5/xlsx/xform/sheet/page-margins-xform.js.map +1 -0
  266. package/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js +32 -0
  267. package/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js.map +1 -0
  268. package/dist/es5/xlsx/xform/sheet/page-setup-xform.js +99 -0
  269. package/dist/es5/xlsx/xform/sheet/page-setup-xform.js.map +1 -0
  270. package/dist/es5/xlsx/xform/sheet/picture-xform.js +32 -0
  271. package/dist/es5/xlsx/xform/sheet/picture-xform.js.map +1 -0
  272. package/dist/es5/xlsx/xform/sheet/print-options-xform.js +45 -0
  273. package/dist/es5/xlsx/xform/sheet/print-options-xform.js.map +1 -0
  274. package/dist/es5/xlsx/xform/sheet/row-breaks-xform.js +37 -0
  275. package/dist/es5/xlsx/xform/sheet/row-breaks-xform.js.map +1 -0
  276. package/dist/es5/xlsx/xform/sheet/row-xform.js +131 -0
  277. package/dist/es5/xlsx/xform/sheet/row-xform.js.map +1 -0
  278. package/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js +63 -0
  279. package/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js.map +1 -0
  280. package/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js +83 -0
  281. package/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js.map +1 -0
  282. package/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js +84 -0
  283. package/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js.map +1 -0
  284. package/dist/es5/xlsx/xform/sheet/sheet-view-xform.js +190 -0
  285. package/dist/es5/xlsx/xform/sheet/sheet-view-xform.js.map +1 -0
  286. package/dist/es5/xlsx/xform/sheet/table-part-xform.js +32 -0
  287. package/dist/es5/xlsx/xform/sheet/table-part-xform.js.map +1 -0
  288. package/dist/es5/xlsx/xform/sheet/worksheet-xform.js +622 -0
  289. package/dist/es5/xlsx/xform/sheet/worksheet-xform.js.map +1 -0
  290. package/dist/es5/xlsx/xform/simple/boolean-xform.js +27 -0
  291. package/dist/es5/xlsx/xform/simple/boolean-xform.js.map +1 -0
  292. package/dist/es5/xlsx/xform/simple/date-xform.js +58 -0
  293. package/dist/es5/xlsx/xform/simple/date-xform.js.map +1 -0
  294. package/dist/es5/xlsx/xform/simple/float-xform.js +47 -0
  295. package/dist/es5/xlsx/xform/simple/float-xform.js.map +1 -0
  296. package/dist/es5/xlsx/xform/simple/integer-xform.js +53 -0
  297. package/dist/es5/xlsx/xform/simple/integer-xform.js.map +1 -0
  298. package/dist/es5/xlsx/xform/simple/string-xform.js +47 -0
  299. package/dist/es5/xlsx/xform/simple/string-xform.js.map +1 -0
  300. package/dist/es5/xlsx/xform/static-xform.js +61 -0
  301. package/dist/es5/xlsx/xform/static-xform.js.map +1 -0
  302. package/dist/es5/xlsx/xform/strings/phonetic-text-xform.js +98 -0
  303. package/dist/es5/xlsx/xform/strings/phonetic-text-xform.js.map +1 -0
  304. package/dist/es5/xlsx/xform/strings/rich-text-xform.js +92 -0
  305. package/dist/es5/xlsx/xform/strings/rich-text-xform.js.map +1 -0
  306. package/dist/es5/xlsx/xform/strings/shared-string-xform.js +99 -0
  307. package/dist/es5/xlsx/xform/strings/shared-string-xform.js.map +1 -0
  308. package/dist/es5/xlsx/xform/strings/shared-strings-xform.js +116 -0
  309. package/dist/es5/xlsx/xform/strings/shared-strings-xform.js.map +1 -0
  310. package/dist/es5/xlsx/xform/strings/text-xform.js +39 -0
  311. package/dist/es5/xlsx/xform/strings/text-xform.js.map +1 -0
  312. package/dist/es5/xlsx/xform/style/alignment-xform.js +139 -0
  313. package/dist/es5/xlsx/xform/style/alignment-xform.js.map +1 -0
  314. package/dist/es5/xlsx/xform/style/border-xform.js +185 -0
  315. package/dist/es5/xlsx/xform/style/border-xform.js.map +1 -0
  316. package/dist/es5/xlsx/xform/style/color-xform.js +66 -0
  317. package/dist/es5/xlsx/xform/style/color-xform.js.map +1 -0
  318. package/dist/es5/xlsx/xform/style/dxf-xform.js +106 -0
  319. package/dist/es5/xlsx/xform/style/dxf-xform.js.map +1 -0
  320. package/dist/es5/xlsx/xform/style/fill-xform.js +307 -0
  321. package/dist/es5/xlsx/xform/style/fill-xform.js.map +1 -0
  322. package/dist/es5/xlsx/xform/style/font-xform.js +175 -0
  323. package/dist/es5/xlsx/xform/style/font-xform.js.map +1 -0
  324. package/dist/es5/xlsx/xform/style/numfmt-xform.js +58 -0
  325. package/dist/es5/xlsx/xform/style/numfmt-xform.js.map +1 -0
  326. package/dist/es5/xlsx/xform/style/protection-xform.js +53 -0
  327. package/dist/es5/xlsx/xform/style/protection-xform.js.map +1 -0
  328. package/dist/es5/xlsx/xform/style/style-xform.js +118 -0
  329. package/dist/es5/xlsx/xform/style/style-xform.js.map +1 -0
  330. package/dist/es5/xlsx/xform/style/styles-xform.js +611 -0
  331. package/dist/es5/xlsx/xform/style/styles-xform.js.map +1 -0
  332. package/dist/es5/xlsx/xform/style/underline-xform.js +46 -0
  333. package/dist/es5/xlsx/xform/style/underline-xform.js.map +1 -0
  334. package/dist/es5/xlsx/xform/table/auto-filter-xform.js +75 -0
  335. package/dist/es5/xlsx/xform/table/auto-filter-xform.js.map +1 -0
  336. package/dist/es5/xlsx/xform/table/custom-filter-xform.js +30 -0
  337. package/dist/es5/xlsx/xform/table/custom-filter-xform.js.map +1 -0
  338. package/dist/es5/xlsx/xform/table/filter-column-xform.js +92 -0
  339. package/dist/es5/xlsx/xform/table/filter-column-xform.js.map +1 -0
  340. package/dist/es5/xlsx/xform/table/filter-xform.js +28 -0
  341. package/dist/es5/xlsx/xform/table/filter-xform.js.map +1 -0
  342. package/dist/es5/xlsx/xform/table/table-column-xform.js +42 -0
  343. package/dist/es5/xlsx/xform/table/table-column-xform.js.map +1 -0
  344. package/dist/es5/xlsx/xform/table/table-style-info-xform.js +40 -0
  345. package/dist/es5/xlsx/xform/table/table-style-info-xform.js.map +1 -0
  346. package/dist/es5/xlsx/xform/table/table-xform.js +125 -0
  347. package/dist/es5/xlsx/xform/table/table-xform.js.map +1 -0
  348. package/dist/es5/xlsx/xlsx.js +1109 -0
  349. package/dist/es5/xlsx/xlsx.js.map +1 -0
  350. package/dist/es5/xlsx/xml/theme1.js +5 -0
  351. package/dist/es5/xlsx/xml/theme1.js.map +1 -0
  352. package/dist/exceljs.bare.js +65234 -0
  353. package/dist/exceljs.bare.js.map +889 -0
  354. package/dist/exceljs.bare.min.js +45 -0
  355. package/dist/exceljs.bare.min.js.map +1 -0
  356. package/dist/exceljs.js +69987 -0
  357. package/dist/exceljs.js.map +1211 -0
  358. package/dist/exceljs.min.js +45 -0
  359. package/dist/exceljs.min.js.map +1 -0
  360. package/excel.js +13 -0
  361. package/index.d.ts +2041 -0
  362. package/index.ts +2 -0
  363. package/lib/csv/csv.js +191 -0
  364. package/lib/csv/line-buffer.js +74 -0
  365. package/lib/csv/stream-converter.js +135 -0
  366. package/lib/doc/anchor.js +91 -0
  367. package/lib/doc/cell.js +1124 -0
  368. package/lib/doc/column.js +320 -0
  369. package/lib/doc/data/theme1.json +234 -0
  370. package/lib/doc/data-validations.js +19 -0
  371. package/lib/doc/defined-names.js +196 -0
  372. package/lib/doc/enums.js +48 -0
  373. package/lib/doc/form-checkbox.js +336 -0
  374. package/lib/doc/image.js +59 -0
  375. package/lib/doc/modelcontainer.js +18 -0
  376. package/lib/doc/note.js +65 -0
  377. package/lib/doc/pivot-table.js +239 -0
  378. package/lib/doc/range.js +257 -0
  379. package/lib/doc/row.js +424 -0
  380. package/lib/doc/table.js +559 -0
  381. package/lib/doc/workbook.js +240 -0
  382. package/lib/doc/worksheet.js +1041 -0
  383. package/lib/exceljs.bare.js +13 -0
  384. package/lib/exceljs.browser.js +36 -0
  385. package/lib/exceljs.nodejs.js +14 -0
  386. package/lib/stream/xlsx/hyperlink-reader.js +83 -0
  387. package/lib/stream/xlsx/sheet-comments-writer.js +121 -0
  388. package/lib/stream/xlsx/sheet-rels-writer.js +119 -0
  389. package/lib/stream/xlsx/workbook-reader.js +336 -0
  390. package/lib/stream/xlsx/workbook-writer.js +347 -0
  391. package/lib/stream/xlsx/worksheet-reader.js +374 -0
  392. package/lib/stream/xlsx/worksheet-writer.js +717 -0
  393. package/lib/utils/auto-drain.js +15 -0
  394. package/lib/utils/browser-buffer-decode.js +14 -0
  395. package/lib/utils/browser-buffer-encode.js +15 -0
  396. package/lib/utils/cell-matrix.js +165 -0
  397. package/lib/utils/col-cache.js +287 -0
  398. package/lib/utils/copy-style.js +43 -0
  399. package/lib/utils/encryptor.js +55 -0
  400. package/lib/utils/iterate-stream.js +48 -0
  401. package/lib/utils/parse-sax.js +43 -0
  402. package/lib/utils/shared-formula.js +44 -0
  403. package/lib/utils/shared-strings.js +42 -0
  404. package/lib/utils/stream-base64.js +72 -0
  405. package/lib/utils/stream-buf.js +387 -0
  406. package/lib/utils/string-buf.js +82 -0
  407. package/lib/utils/string-builder.js +35 -0
  408. package/lib/utils/stuttered-pipe.js +67 -0
  409. package/lib/utils/typed-stack.js +24 -0
  410. package/lib/utils/under-dash.js +184 -0
  411. package/lib/utils/utils.js +206 -0
  412. package/lib/utils/xml-stream.js +169 -0
  413. package/lib/utils/zip-stream.js +87 -0
  414. package/lib/xlsx/.rels +11 -0
  415. package/lib/xlsx/calcChain.xml +6 -0
  416. package/lib/xlsx/core.xml +7 -0
  417. package/lib/xlsx/defaultnumformats.js +153 -0
  418. package/lib/xlsx/rel-type.js +27 -0
  419. package/lib/xlsx/styles.xml +41 -0
  420. package/lib/xlsx/workbook.xml +16 -0
  421. package/lib/xlsx/xform/base-xform.js +145 -0
  422. package/lib/xlsx/xform/book/defined-name-xform.js +91 -0
  423. package/lib/xlsx/xform/book/sheet-xform.js +34 -0
  424. package/lib/xlsx/xform/book/workbook-calc-properties-xform.js +26 -0
  425. package/lib/xlsx/xform/book/workbook-pivot-cache-xform.js +29 -0
  426. package/lib/xlsx/xform/book/workbook-properties-xform.js +29 -0
  427. package/lib/xlsx/xform/book/workbook-view-xform.js +53 -0
  428. package/lib/xlsx/xform/book/workbook-xform.js +265 -0
  429. package/lib/xlsx/xform/comment/comment-xform.js +105 -0
  430. package/lib/xlsx/xform/comment/comments-xform.js +82 -0
  431. package/lib/xlsx/xform/comment/style/vml-position-xform.js +39 -0
  432. package/lib/xlsx/xform/comment/style/vml-protection-xform.js +36 -0
  433. package/lib/xlsx/xform/comment/vml-anchor-xform.js +60 -0
  434. package/lib/xlsx/xform/comment/vml-client-data-xform.js +92 -0
  435. package/lib/xlsx/xform/comment/vml-notes-xform.js +217 -0
  436. package/lib/xlsx/xform/comment/vml-shape-xform.js +95 -0
  437. package/lib/xlsx/xform/comment/vml-textbox-xform.js +64 -0
  438. package/lib/xlsx/xform/composite-xform.js +56 -0
  439. package/lib/xlsx/xform/core/app-heading-pairs-xform.js +32 -0
  440. package/lib/xlsx/xform/core/app-titles-of-parts-xform.js +28 -0
  441. package/lib/xlsx/xform/core/app-xform.js +100 -0
  442. package/lib/xlsx/xform/core/content-types-xform.js +211 -0
  443. package/lib/xlsx/xform/core/core-xform.js +142 -0
  444. package/lib/xlsx/xform/core/relationship-xform.js +25 -0
  445. package/lib/xlsx/xform/core/relationships-xform.js +73 -0
  446. package/lib/xlsx/xform/drawing/base-cell-anchor-xform.js +48 -0
  447. package/lib/xlsx/xform/drawing/blip-fill-xform.js +71 -0
  448. package/lib/xlsx/xform/drawing/blip-xform.js +42 -0
  449. package/lib/xlsx/xform/drawing/c-nv-pic-pr-xform.js +38 -0
  450. package/lib/xlsx/xform/drawing/c-nv-pr-xform.js +68 -0
  451. package/lib/xlsx/xform/drawing/cell-position-xform.js +77 -0
  452. package/lib/xlsx/xform/drawing/ctrl-prop-xform.js +74 -0
  453. package/lib/xlsx/xform/drawing/drawing-xform.js +109 -0
  454. package/lib/xlsx/xform/drawing/ext-lst-xform.js +43 -0
  455. package/lib/xlsx/xform/drawing/ext-xform.js +44 -0
  456. package/lib/xlsx/xform/drawing/hlink-click-xform.js +41 -0
  457. package/lib/xlsx/xform/drawing/nv-pic-pr-xform.js +65 -0
  458. package/lib/xlsx/xform/drawing/one-cell-anchor-xform.js +63 -0
  459. package/lib/xlsx/xform/drawing/pic-xform.js +77 -0
  460. package/lib/xlsx/xform/drawing/sp-pr.js +17 -0
  461. package/lib/xlsx/xform/drawing/two-cell-anchor-xform.js +62 -0
  462. package/lib/xlsx/xform/list-xform.js +95 -0
  463. package/lib/xlsx/xform/pivot-table/cache-field.js +74 -0
  464. package/lib/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +77 -0
  465. package/lib/xlsx/xform/pivot-table/pivot-cache-records-xform.js +107 -0
  466. package/lib/xlsx/xform/pivot-table/pivot-table-xform.js +265 -0
  467. package/lib/xlsx/xform/sheet/auto-filter-xform.js +38 -0
  468. package/lib/xlsx/xform/sheet/cell-xform.js +498 -0
  469. package/lib/xlsx/xform/sheet/cf/cf-rule-xform.js +308 -0
  470. package/lib/xlsx/xform/sheet/cf/cfvo-xform.js +27 -0
  471. package/lib/xlsx/xform/sheet/cf/color-scale-xform.js +45 -0
  472. package/lib/xlsx/xform/sheet/cf/conditional-formatting-xform.js +48 -0
  473. package/lib/xlsx/xform/sheet/cf/conditional-formattings-xform.js +92 -0
  474. package/lib/xlsx/xform/sheet/cf/databar-xform.js +56 -0
  475. package/lib/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +87 -0
  476. package/lib/xlsx/xform/sheet/cf/formula-xform.js +25 -0
  477. package/lib/xlsx/xform/sheet/cf/icon-set-xform.js +47 -0
  478. package/lib/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +27 -0
  479. package/lib/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +98 -0
  480. package/lib/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +43 -0
  481. package/lib/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +62 -0
  482. package/lib/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +50 -0
  483. package/lib/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +102 -0
  484. package/lib/xlsx/xform/sheet/cf-ext/f-ext-xform.js +25 -0
  485. package/lib/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +73 -0
  486. package/lib/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +25 -0
  487. package/lib/xlsx/xform/sheet/col-xform.js +86 -0
  488. package/lib/xlsx/xform/sheet/data-validations-xform.js +257 -0
  489. package/lib/xlsx/xform/sheet/dimension-xform.js +29 -0
  490. package/lib/xlsx/xform/sheet/drawing-xform.js +33 -0
  491. package/lib/xlsx/xform/sheet/ext-lst-xform.js +86 -0
  492. package/lib/xlsx/xform/sheet/header-footer-xform.js +146 -0
  493. package/lib/xlsx/xform/sheet/hyperlink-xform.js +54 -0
  494. package/lib/xlsx/xform/sheet/merge-cell-xform.js +27 -0
  495. package/lib/xlsx/xform/sheet/merges.js +56 -0
  496. package/lib/xlsx/xform/sheet/outline-properties-xform.js +43 -0
  497. package/lib/xlsx/xform/sheet/page-breaks-xform.js +27 -0
  498. package/lib/xlsx/xform/sheet/page-margins-xform.js +49 -0
  499. package/lib/xlsx/xform/sheet/page-setup-properties-xform.js +35 -0
  500. package/lib/xlsx/xform/sheet/page-setup-xform.js +103 -0
  501. package/lib/xlsx/xform/sheet/picture-xform.js +33 -0
  502. package/lib/xlsx/xform/sheet/print-options-xform.js +49 -0
  503. package/lib/xlsx/xform/sheet/row-breaks-xform.js +39 -0
  504. package/lib/xlsx/xform/sheet/row-xform.js +145 -0
  505. package/lib/xlsx/xform/sheet/sheet-format-properties-xform.js +67 -0
  506. package/lib/xlsx/xform/sheet/sheet-properties-xform.js +90 -0
  507. package/lib/xlsx/xform/sheet/sheet-protection-xform.js +89 -0
  508. package/lib/xlsx/xform/sheet/sheet-view-xform.js +202 -0
  509. package/lib/xlsx/xform/sheet/table-part-xform.js +33 -0
  510. package/lib/xlsx/xform/sheet/worksheet-xform.js +657 -0
  511. package/lib/xlsx/xform/simple/boolean-xform.js +31 -0
  512. package/lib/xlsx/xform/simple/date-xform.js +66 -0
  513. package/lib/xlsx/xform/simple/float-xform.js +51 -0
  514. package/lib/xlsx/xform/simple/integer-xform.js +57 -0
  515. package/lib/xlsx/xform/simple/string-xform.js +51 -0
  516. package/lib/xlsx/xform/static-xform.js +64 -0
  517. package/lib/xlsx/xform/strings/phonetic-text-xform.js +98 -0
  518. package/lib/xlsx/xform/strings/rich-text-xform.js +101 -0
  519. package/lib/xlsx/xform/strings/shared-string-xform.js +102 -0
  520. package/lib/xlsx/xform/strings/shared-strings-xform.js +132 -0
  521. package/lib/xlsx/xform/strings/text-xform.js +44 -0
  522. package/lib/xlsx/xform/style/alignment-xform.js +172 -0
  523. package/lib/xlsx/xform/style/border-xform.js +207 -0
  524. package/lib/xlsx/xform/style/color-xform.js +63 -0
  525. package/lib/xlsx/xform/style/dxf-xform.js +111 -0
  526. package/lib/xlsx/xform/style/fill-xform.js +364 -0
  527. package/lib/xlsx/xform/style/font-xform.js +102 -0
  528. package/lib/xlsx/xform/style/numfmt-xform.js +63 -0
  529. package/lib/xlsx/xform/style/protection-xform.js +60 -0
  530. package/lib/xlsx/xform/style/style-xform.js +125 -0
  531. package/lib/xlsx/xform/style/styles-xform.js +527 -0
  532. package/lib/xlsx/xform/style/underline-xform.js +47 -0
  533. package/lib/xlsx/xform/table/auto-filter-xform.js +81 -0
  534. package/lib/xlsx/xform/table/custom-filter-xform.js +33 -0
  535. package/lib/xlsx/xform/table/filter-column-xform.js +99 -0
  536. package/lib/xlsx/xform/table/filter-xform.js +31 -0
  537. package/lib/xlsx/xform/table/table-column-xform.js +44 -0
  538. package/lib/xlsx/xform/table/table-style-info-xform.js +41 -0
  539. package/lib/xlsx/xform/table/table-xform.js +134 -0
  540. package/lib/xlsx/xlsx.js +1160 -0
  541. package/lib/xlsx/xml/theme1.js +3 -0
  542. package/lib/xlsx/xml/theme1.xml +318 -0
  543. package/package.json +159 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xlsx.js","names":["fs","require","JSZip","PassThrough","ZipStream","StreamBuf","utils","XmlStream","bufferToString","StylesXform","CoreXform","SharedStringsXform","RelationshipsXform","ContentTypesXform","AppXform","WorkbookXform","WorksheetXform","DrawingXform","TableXform","PivotCacheRecordsXform","PivotCacheDefinitionXform","PivotTableXform","CommentsXform","VmlNotesXform","CtrlPropXform","theme1Xml","RelType","fsReadFileAsync","filename","options","Promise","resolve","reject","readFile","error","data","XLSX","constructor","workbook","exists","Error","stream","createReadStream","read","close","parseRels","xform","parseStream","parseWorkbook","parseSharedStrings","reconcile","model","workbookXform","worksheetXform","drawingXform","tableXform","drawingOptions","media","mediaIndex","Object","keys","drawings","forEach","name","drawing","drawingRel","drawingRels","rels","reduce","o","rel","Id","anchors","anchor","hyperlinks","picture","rId","hyperlink","Target","tableOptions","styles","values","tables","table","sheetOptions","sharedStrings","date1904","properties","comments","vmlDrawings","preservedPivotTablesXml","preservedPivotTablesRels","preservedDrawingsXml","preservedDrawingsRels","worksheets","worksheet","relationships","worksheetRels","sheetNo","preservedPivotTables","pivotTables","pivotCacheDefinitions","preservedPivotCacheDefinitionsXml","pivotCacheRecords","preservedPivotCacheRecordsXml","preservedCaches","cacheIdToFilename","length","pivotTable","xml","cacheIdMatch","match","cacheId","cacheDefRel","find","Type","PivotCacheDefinition","targetMatch","push","definitionFilename","isPreserved","preservedPivotCaches","worksheetHash","globalRels","workbookRels","sheetDefs","preservedPivotCacheDefinitionsRels","_processWorksheetEntry","path","_processCommentEntry","_processTableEntry","_processWorksheetRelsEntry","_processMediaEntry","entry","lastDot","lastIndexOf","extension","substr","streamBuf","on","medium","type","buffer","toBuffer","pipe","_processDrawingEntry","async","hasChart","includes","write","end","_processDrawingRelsEntry","_processVmlDrawingEntry","vmlDrawing","_processPivotTableEntry","zipEntry","_processPivotTableRelsEntry","_processPivotCacheDefinitionEntry","_processPivotCacheDefinitionRelsEntry","_processPivotCacheRecordsEntry","_processChartEntry","preservedChartsXml","_processChartRelsEntry","preservedChartsRels","_processChartStyleEntry","preservedChartStylesXml","_processChartColorsEntry","preservedChartColorsXml","_processThemeEntry","themes","toString","createInputStream","Symbol","asyncIterator","chunks","chunk","load","Buffer","concat","base64","from","zip","loadAsync","files","dir","entryName","writableObjectMode","readableObjectMode","content","process","browser","chunkSize","i","substring","sheets","definedNames","views","calcProperties","appXform","appProperties","company","manager","coreXform","coreProperties","assign","addMedia","all","map","append","dataimg64","indexOf","addDrawings","relsXform","toXml","preservedDrawing","prepare","addTables","tableXml","target","addCtrlProps","formControlRefs","ctrlPropXform","ref","ctrlPropXml","id","addPivotTables","hasProgrammaticPivots","hasPreservedPivots","pivotCacheRecordsXform","pivotCacheDefinitionXform","pivotTableXform","preserved","tableNum","PivotCacheRecords","index","addCharts","hasPreservedCharts","addContentTypes","addApp","addCore","addThemes","theme1","addOfficeRels","OfficeDocument","CoreProperties","ExtenderProperties","addWorkbookRels","count","Styles","Theme","SharedStrings","cache","Worksheet","addSharedStrings","addStyles","addWorkbook","addWorksheets","relationshipsXform","commentsXform","vmlNotesXform","xmlStream","render","formControls","_finalize","finalize","prepareModel","creator","lastModifiedBy","created","Date","modified","useSharedStrings","undefined","useStyles","Mock","worksheetOptions","drawingsCount","commentRefs","tableCount","ZipWriter","writeFile","createWriteStream","then","catch","err","writeBuffer","module","exports"],"sources":["../../../lib/xlsx/xlsx.js"],"sourcesContent":["const fs = require('fs');\r\nconst JSZip = require('jszip');\r\nconst {PassThrough} = require('readable-stream');\r\nconst ZipStream = require('../utils/zip-stream');\r\nconst StreamBuf = require('../utils/stream-buf');\r\n\r\nconst utils = require('../utils/utils');\r\nconst XmlStream = require('../utils/xml-stream');\r\nconst {bufferToString} = require('../utils/browser-buffer-decode');\r\n\r\nconst StylesXform = require('./xform/style/styles-xform');\r\n\r\nconst CoreXform = require('./xform/core/core-xform');\r\nconst SharedStringsXform = require('./xform/strings/shared-strings-xform');\r\nconst RelationshipsXform = require('./xform/core/relationships-xform');\r\nconst ContentTypesXform = require('./xform/core/content-types-xform');\r\nconst AppXform = require('./xform/core/app-xform');\r\nconst WorkbookXform = require('./xform/book/workbook-xform');\r\nconst WorksheetXform = require('./xform/sheet/worksheet-xform');\r\nconst DrawingXform = require('./xform/drawing/drawing-xform');\r\nconst TableXform = require('./xform/table/table-xform');\r\nconst PivotCacheRecordsXform = require('./xform/pivot-table/pivot-cache-records-xform');\r\nconst PivotCacheDefinitionXform = require('./xform/pivot-table/pivot-cache-definition-xform');\r\nconst PivotTableXform = require('./xform/pivot-table/pivot-table-xform');\r\nconst CommentsXform = require('./xform/comment/comments-xform');\r\nconst VmlNotesXform = require('./xform/comment/vml-notes-xform');\r\nconst CtrlPropXform = require('./xform/drawing/ctrl-prop-xform');\r\n\r\nconst theme1Xml = require('./xml/theme1');\r\nconst RelType = require('./rel-type');\r\n\r\nfunction fsReadFileAsync(filename, options) {\r\n return new Promise((resolve, reject) => {\r\n fs.readFile(filename, options, (error, data) => {\r\n if (error) {\r\n reject(error);\r\n } else {\r\n resolve(data);\r\n }\r\n });\r\n });\r\n}\r\n\r\nclass XLSX {\r\n constructor(workbook) {\r\n this.workbook = workbook;\r\n }\r\n\r\n // ===============================================================================\r\n // Workbook\r\n // =========================================================================\r\n // Read\r\n\r\n async readFile(filename, options) {\r\n if (!(await utils.fs.exists(filename))) {\r\n throw new Error(`File not found: ${filename}`);\r\n }\r\n const stream = fs.createReadStream(filename);\r\n try {\r\n const workbook = await this.read(stream, options);\r\n stream.close();\r\n return workbook;\r\n } catch (error) {\r\n stream.close();\r\n throw error;\r\n }\r\n }\r\n\r\n parseRels(stream) {\r\n const xform = new RelationshipsXform();\r\n return xform.parseStream(stream);\r\n }\r\n\r\n parseWorkbook(stream) {\r\n const xform = new WorkbookXform();\r\n return xform.parseStream(stream);\r\n }\r\n\r\n parseSharedStrings(stream) {\r\n const xform = new SharedStringsXform();\r\n return xform.parseStream(stream);\r\n }\r\n\r\n reconcile(model, options) {\r\n const workbookXform = new WorkbookXform();\r\n const worksheetXform = new WorksheetXform(options);\r\n const drawingXform = new DrawingXform();\r\n const tableXform = new TableXform();\r\n\r\n workbookXform.reconcile(model);\r\n\r\n // reconcile drawings with their rels\r\n const drawingOptions = {\r\n media: model.media,\r\n mediaIndex: model.mediaIndex,\r\n };\r\n Object.keys(model.drawings).forEach(name => {\r\n const drawing = model.drawings[name];\r\n const drawingRel = model.drawingRels[name];\r\n if (drawingRel) {\r\n drawingOptions.rels = drawingRel.reduce((o, rel) => {\r\n o[rel.Id] = rel;\r\n return o;\r\n }, {});\r\n (drawing.anchors || []).forEach(anchor => {\r\n const hyperlinks = anchor.picture && anchor.picture.hyperlinks;\r\n if (hyperlinks && drawingOptions.rels[hyperlinks.rId]) {\r\n hyperlinks.hyperlink = drawingOptions.rels[hyperlinks.rId].Target;\r\n delete hyperlinks.rId;\r\n }\r\n });\r\n drawingXform.reconcile(drawing, drawingOptions);\r\n }\r\n });\r\n\r\n // reconcile tables with the default styles\r\n const tableOptions = {\r\n styles: model.styles,\r\n };\r\n Object.values(model.tables).forEach(table => {\r\n tableXform.reconcile(table, tableOptions);\r\n });\r\n\r\n const sheetOptions = {\r\n styles: model.styles,\r\n sharedStrings: model.sharedStrings,\r\n media: model.media,\r\n mediaIndex: model.mediaIndex,\r\n date1904: model.properties && model.properties.date1904,\r\n drawings: model.drawings,\r\n comments: model.comments,\r\n tables: model.tables,\r\n vmlDrawings: model.vmlDrawings,\r\n preservedPivotTablesXml: model.preservedPivotTablesXml,\r\n preservedPivotTablesRels: model.preservedPivotTablesRels,\r\n preservedDrawingsXml: model.preservedDrawingsXml,\r\n preservedDrawingsRels: model.preservedDrawingsRels,\r\n };\r\n model.worksheets.forEach(worksheet => {\r\n worksheet.relationships = model.worksheetRels[worksheet.sheetNo];\r\n worksheetXform.reconcile(worksheet, sheetOptions);\r\n });\r\n\r\n // Collect preserved pivot tables for write\r\n model.preservedPivotTables = {\r\n pivotTables: model.preservedPivotTablesXml,\r\n pivotCacheDefinitions: model.preservedPivotCacheDefinitionsXml,\r\n pivotCacheRecords: model.preservedPivotCacheRecordsXml,\r\n };\r\n\r\n // Extract cache IDs from preserved pivot tables and create pivot cache entries\r\n // These will be used by workbook-xform to write the <pivotCaches> section\r\n const preservedCaches = [];\r\n const cacheIdToFilename = {}; // Map cacheId to actual filename\r\n\r\n // First, build a map of cacheId to definition filename by checking the pivot table rels\r\n model.worksheets.forEach(worksheet => {\r\n if (worksheet.pivotTables && worksheet.pivotTables.length > 0) {\r\n worksheet.pivotTables.forEach(pivotTable => {\r\n if (pivotTable.xml && pivotTable.rels) {\r\n // Extract cacheId from the pivot table XML\r\n const cacheIdMatch = pivotTable.xml.match(/cacheId=\"(\\d+)\"/);\r\n if (cacheIdMatch) {\r\n const cacheId = cacheIdMatch[1];\r\n // Find the pivot cache definition relationship\r\n // pivotTable.rels should have a relationship to the cache definition\r\n const cacheDefRel = pivotTable.rels.find(\r\n rel => rel.Type === RelType.PivotCacheDefinition\r\n );\r\n if (cacheDefRel) {\r\n // Extract filename from Target like \"../pivotCache/pivotCacheDefinition1.xml\"\r\n const targetMatch = cacheDefRel.Target.match(/pivotCacheDefinition\\d+\\.xml/);\r\n if (targetMatch) {\r\n cacheIdToFilename[cacheId] = targetMatch[0];\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n });\r\n\r\n // Now create the preserved cache entries with correct filenames\r\n Object.keys(cacheIdToFilename).forEach(cacheId => {\r\n preservedCaches.push({\r\n cacheId,\r\n definitionFilename: cacheIdToFilename[cacheId],\r\n isPreserved: true,\r\n });\r\n });\r\n\r\n model.preservedPivotCaches = preservedCaches;\r\n\r\n // delete unnecessary parts\r\n delete model.worksheetHash;\r\n delete model.worksheetRels;\r\n delete model.globalRels;\r\n delete model.sharedStrings;\r\n delete model.workbookRels;\r\n delete model.sheetDefs;\r\n delete model.styles;\r\n delete model.mediaIndex;\r\n delete model.drawings;\r\n delete model.drawingRels;\r\n delete model.vmlDrawings;\r\n delete model.preservedPivotTablesRels;\r\n delete model.preservedPivotCacheDefinitionsRels;\r\n // Keep the XML dictionaries through preservedPivotTables\r\n }\r\n\r\n async _processWorksheetEntry(stream, model, sheetNo, options, path) {\r\n const xform = new WorksheetXform(options);\r\n const worksheet = await xform.parseStream(stream);\r\n worksheet.sheetNo = sheetNo;\r\n model.worksheetHash[path] = worksheet;\r\n model.worksheets.push(worksheet);\r\n }\r\n\r\n async _processCommentEntry(stream, model, name) {\r\n const xform = new CommentsXform();\r\n const comments = await xform.parseStream(stream);\r\n model.comments[`../${name}.xml`] = comments;\r\n }\r\n\r\n async _processTableEntry(stream, model, name) {\r\n const xform = new TableXform();\r\n const table = await xform.parseStream(stream);\r\n model.tables[`../tables/${name}.xml`] = table;\r\n }\r\n\r\n async _processWorksheetRelsEntry(stream, model, sheetNo) {\r\n const xform = new RelationshipsXform();\r\n const relationships = await xform.parseStream(stream);\r\n model.worksheetRels[sheetNo] = relationships;\r\n }\r\n\r\n async _processMediaEntry(entry, model, filename) {\r\n const lastDot = filename.lastIndexOf('.');\r\n // if we can't determine extension, ignore it\r\n if (lastDot >= 1) {\r\n const extension = filename.substr(lastDot + 1);\r\n const name = filename.substr(0, lastDot);\r\n await new Promise((resolve, reject) => {\r\n const streamBuf = new StreamBuf();\r\n streamBuf.on('finish', () => {\r\n model.mediaIndex[filename] = model.media.length;\r\n model.mediaIndex[name] = model.media.length;\r\n const medium = {\r\n type: 'image',\r\n name,\r\n extension,\r\n buffer: streamBuf.toBuffer(),\r\n };\r\n model.media.push(medium);\r\n resolve();\r\n });\r\n entry.on('error', error => {\r\n reject(error);\r\n });\r\n entry.pipe(streamBuf);\r\n });\r\n }\r\n }\r\n\r\n async _processDrawingEntry(entry, model, name) {\r\n // Check if drawing contains chart references\r\n const xml = await entry.async('string');\r\n const hasChart = xml.includes('drawingml/2006/chart');\r\n\r\n if (hasChart) {\r\n // Preserve as raw XML if it contains charts\r\n model.preservedDrawingsXml[name] = xml;\r\n } else {\r\n // Parse normally for images and other content\r\n // Re-create a stream from the XML we already read using StreamBuf\r\n const stream = new StreamBuf();\r\n stream.write(xml);\r\n stream.end();\r\n const xform = new DrawingXform();\r\n const drawing = await xform.parseStream(stream);\r\n model.drawings[name] = drawing;\r\n }\r\n }\r\n\r\n async _processDrawingRelsEntry(entry, model, name) {\r\n const xform = new RelationshipsXform();\r\n const relationships = await xform.parseStream(entry);\r\n model.drawingRels[name] = relationships;\r\n\r\n // Also preserve raw relationships for preserved drawings\r\n if (model.preservedDrawingsXml[name]) {\r\n model.preservedDrawingsRels[name] = relationships;\r\n }\r\n }\r\n\r\n async _processVmlDrawingEntry(entry, model, name) {\r\n const xform = new VmlNotesXform();\r\n const vmlDrawing = await xform.parseStream(entry);\r\n model.vmlDrawings[`../drawings/${name}.vml`] = vmlDrawing;\r\n }\r\n\r\n async _processPivotTableEntry(zipEntry, model, name) {\r\n // Read XML directly from zip entry\r\n const xml = await zipEntry.async('string');\r\n model.preservedPivotTablesXml[name] = xml;\r\n }\r\n\r\n async _processPivotTableRelsEntry(stream, model, name) {\r\n const xform = new RelationshipsXform();\r\n const relationships = await xform.parseStream(stream);\r\n model.preservedPivotTablesRels[name] = relationships;\r\n }\r\n\r\n async _processPivotCacheDefinitionEntry(zipEntry, model, name) {\r\n // Read XML directly from zip entry\r\n const xml = await zipEntry.async('string');\r\n model.preservedPivotCacheDefinitionsXml[name] = xml;\r\n }\r\n\r\n async _processPivotCacheDefinitionRelsEntry(stream, model, name) {\r\n const xform = new RelationshipsXform();\r\n const relationships = await xform.parseStream(stream);\r\n model.preservedPivotCacheDefinitionsRels[name] = relationships;\r\n }\r\n\r\n async _processPivotCacheRecordsEntry(zipEntry, model, name) {\r\n // Read XML directly from zip entry\r\n const xml = await zipEntry.async('string');\r\n model.preservedPivotCacheRecordsXml[name] = xml;\r\n }\r\n\r\n async _processChartEntry(zipEntry, model, name) {\r\n // Read XML directly from zip entry\r\n const xml = await zipEntry.async('string');\r\n model.preservedChartsXml[name] = xml;\r\n }\r\n\r\n async _processChartRelsEntry(stream, model, name) {\r\n const xform = new RelationshipsXform();\r\n const relationships = await xform.parseStream(stream);\r\n model.preservedChartsRels[name] = relationships;\r\n }\r\n\r\n async _processChartStyleEntry(zipEntry, model, name) {\r\n // Read XML directly from zip entry\r\n const xml = await zipEntry.async('string');\r\n model.preservedChartStylesXml[name] = xml;\r\n }\r\n\r\n async _processChartColorsEntry(zipEntry, model, name) {\r\n // Read XML directly from zip entry\r\n const xml = await zipEntry.async('string');\r\n model.preservedChartColorsXml[name] = xml;\r\n }\r\n\r\n async _processThemeEntry(entry, model, name) {\r\n await new Promise((resolve, reject) => {\r\n // TODO: stream entry into buffer and store the xml in the model.themes[]\r\n const stream = new StreamBuf();\r\n entry.on('error', reject);\r\n stream.on('error', reject);\r\n stream.on('finish', () => {\r\n model.themes[name] = stream.read().toString();\r\n resolve();\r\n });\r\n entry.pipe(stream);\r\n });\r\n }\r\n\r\n /**\r\n * @deprecated since version 4.0. You should use `#read` instead. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md\r\n */\r\n createInputStream() {\r\n throw new Error(\r\n '`XLSX#createInputStream` is deprecated. You should use `XLSX#read` instead. This method will be removed in version 5.0. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md'\r\n );\r\n }\r\n\r\n async read(stream, options) {\r\n // TODO: Remove once node v8 is deprecated\r\n // Detect and upgrade old streams\r\n if (!stream[Symbol.asyncIterator] && stream.pipe) {\r\n stream = stream.pipe(new PassThrough());\r\n }\r\n const chunks = [];\r\n for await (const chunk of stream) {\r\n chunks.push(chunk);\r\n }\r\n return this.load(Buffer.concat(chunks), options);\r\n }\r\n\r\n async load(data, options) {\r\n let buffer;\r\n if (options && options.base64) {\r\n buffer = Buffer.from(data.toString(), 'base64');\r\n } else {\r\n buffer = data;\r\n }\r\n\r\n const model = {\r\n worksheets: [],\r\n worksheetHash: {},\r\n worksheetRels: [],\r\n themes: {},\r\n media: [],\r\n mediaIndex: {},\r\n drawings: {},\r\n drawingRels: {},\r\n comments: {},\r\n tables: {},\r\n vmlDrawings: {},\r\n pivotTables: [], // Keep as array for programmatic pivots\r\n preservedPivotTablesXml: {},\r\n preservedPivotTablesRels: {},\r\n preservedPivotCacheDefinitionsXml: {},\r\n preservedPivotCacheDefinitionsRels: {},\r\n preservedPivotCacheRecordsXml: {},\r\n preservedChartsXml: {},\r\n preservedChartsRels: {},\r\n preservedChartStylesXml: {},\r\n preservedChartColorsXml: {},\r\n preservedDrawingsXml: {},\r\n preservedDrawingsRels: {},\r\n };\r\n\r\n const zip = await JSZip.loadAsync(buffer);\r\n for (const entry of Object.values(zip.files)) {\r\n /* eslint-disable no-await-in-loop */\r\n if (!entry.dir) {\r\n let entryName = entry.name;\r\n if (entryName[0] === '/') {\r\n entryName = entryName.substr(1);\r\n }\r\n let stream;\r\n if (\r\n entryName.match(/xl\\/media\\//) ||\r\n // themes are not parsed as stream\r\n entryName.match(/xl\\/theme\\/([a-zA-Z0-9]+)[.]xml/)\r\n ) {\r\n stream = new PassThrough();\r\n stream.write(await entry.async('nodebuffer'));\r\n } else {\r\n // use object mode to avoid buffer-string convention\r\n stream = new PassThrough({\r\n writableObjectMode: true,\r\n readableObjectMode: true,\r\n });\r\n let content;\r\n // https://www.npmjs.com/package/process\r\n if (process.browser) {\r\n // running in browser, use TextDecoder if possible\r\n content = bufferToString(await entry.async('nodebuffer'));\r\n } else {\r\n // running in node.js\r\n content = await entry.async('string');\r\n }\r\n const chunkSize = 16 * 1024;\r\n for (let i = 0; i < content.length; i += chunkSize) {\r\n stream.write(content.substring(i, i + chunkSize));\r\n }\r\n }\r\n stream.end();\r\n switch (entryName) {\r\n case '_rels/.rels':\r\n model.globalRels = await this.parseRels(stream);\r\n break;\r\n\r\n case 'xl/workbook.xml': {\r\n const workbook = await this.parseWorkbook(stream);\r\n if (workbook) {\r\n model.sheets = workbook.sheets;\r\n model.definedNames = workbook.definedNames;\r\n model.views = workbook.views;\r\n model.properties = workbook.properties;\r\n model.calcProperties = workbook.calcProperties;\r\n }\r\n break;\r\n }\r\n\r\n case 'xl/_rels/workbook.xml.rels':\r\n model.workbookRels = await this.parseRels(stream);\r\n break;\r\n\r\n case 'xl/sharedStrings.xml':\r\n model.sharedStrings = new SharedStringsXform();\r\n await model.sharedStrings.parseStream(stream);\r\n break;\r\n\r\n case 'xl/styles.xml':\r\n model.styles = new StylesXform();\r\n await model.styles.parseStream(stream);\r\n break;\r\n\r\n case 'docProps/app.xml': {\r\n const appXform = new AppXform();\r\n const appProperties = await appXform.parseStream(stream);\r\n if (appProperties) {\r\n model.company = appProperties.company;\r\n model.manager = appProperties.manager;\r\n }\r\n break;\r\n }\r\n\r\n case 'docProps/core.xml': {\r\n const coreXform = new CoreXform();\r\n const coreProperties = await coreXform.parseStream(stream);\r\n if (coreProperties) {\r\n Object.assign(model, coreProperties);\r\n }\r\n break;\r\n }\r\n\r\n default: {\r\n let match = entryName.match(/xl\\/worksheets\\/sheet(\\d+)[.]xml/);\r\n if (match) {\r\n await this._processWorksheetEntry(stream, model, match[1], options, entryName);\r\n break;\r\n }\r\n match = entryName.match(/xl\\/worksheets\\/_rels\\/sheet(\\d+)[.]xml.rels/);\r\n if (match) {\r\n await this._processWorksheetRelsEntry(stream, model, match[1]);\r\n break;\r\n }\r\n match = entryName.match(/xl\\/theme\\/([a-zA-Z0-9]+)[.]xml/);\r\n if (match) {\r\n await this._processThemeEntry(stream, model, match[1]);\r\n break;\r\n }\r\n match = entryName.match(/xl\\/media\\/([a-zA-Z0-9]+[.][a-zA-Z0-9]{3,4})$/);\r\n if (match) {\r\n await this._processMediaEntry(stream, model, match[1]);\r\n break;\r\n }\r\n match = entryName.match(/xl\\/drawings\\/([a-zA-Z0-9]+)[.]xml/);\r\n if (match) {\r\n await this._processDrawingEntry(entry, model, match[1]);\r\n break;\r\n }\r\n match = entryName.match(/xl\\/(comments\\d+)[.]xml/);\r\n if (match) {\r\n await this._processCommentEntry(stream, model, match[1]);\r\n break;\r\n }\r\n match = entryName.match(/xl\\/tables\\/(table\\d+)[.]xml/);\r\n if (match) {\r\n await this._processTableEntry(stream, model, match[1]);\r\n break;\r\n }\r\n match = entryName.match(/xl\\/drawings\\/_rels\\/([a-zA-Z0-9]+)[.]xml[.]rels/);\r\n if (match) {\r\n await this._processDrawingRelsEntry(stream, model, match[1]);\r\n break;\r\n }\r\n match = entryName.match(/xl\\/drawings\\/(vmlDrawing\\d+)[.]vml/);\r\n if (match) {\r\n await this._processVmlDrawingEntry(stream, model, match[1]);\r\n break;\r\n }\r\n match = entryName.match(/xl\\/pivotTables\\/(pivotTable\\d+)[.]xml/);\r\n if (match) {\r\n await this._processPivotTableEntry(entry, model, match[1]);\r\n break;\r\n }\r\n match = entryName.match(/xl\\/pivotTables\\/_rels\\/(pivotTable\\d+)[.]xml[.]rels/);\r\n if (match) {\r\n await this._processPivotTableRelsEntry(stream, model, match[1]);\r\n break;\r\n }\r\n match = entryName.match(/xl\\/pivotCache\\/(pivotCacheDefinition\\d+)[.]xml/);\r\n if (match) {\r\n await this._processPivotCacheDefinitionEntry(entry, model, match[1]);\r\n break;\r\n }\r\n match = entryName.match(/xl\\/pivotCache\\/_rels\\/(pivotCacheDefinition\\d+)[.]xml[.]rels/);\r\n if (match) {\r\n await this._processPivotCacheDefinitionRelsEntry(stream, model, match[1]);\r\n break;\r\n }\r\n match = entryName.match(/xl\\/pivotCache\\/(pivotCacheRecords\\d+)[.]xml/);\r\n if (match) {\r\n await this._processPivotCacheRecordsEntry(entry, model, match[1]);\r\n break;\r\n }\r\n match = entryName.match(/xl\\/charts\\/(chart\\d+)[.]xml/);\r\n if (match) {\r\n await this._processChartEntry(entry, model, match[1]);\r\n break;\r\n }\r\n match = entryName.match(/xl\\/charts\\/_rels\\/(chart\\d+)[.]xml[.]rels/);\r\n if (match) {\r\n await this._processChartRelsEntry(stream, model, match[1]);\r\n break;\r\n }\r\n match = entryName.match(/xl\\/charts\\/(style\\d+)[.]xml/);\r\n if (match) {\r\n await this._processChartStyleEntry(entry, model, match[1]);\r\n break;\r\n }\r\n match = entryName.match(/xl\\/charts\\/(colors\\d+)[.]xml/);\r\n if (match) {\r\n await this._processChartColorsEntry(entry, model, match[1]);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.reconcile(model, options);\r\n\r\n // apply model\r\n this.workbook.model = model;\r\n return this.workbook;\r\n }\r\n\r\n // =========================================================================\r\n // Write\r\n\r\n async addMedia(zip, model) {\r\n await Promise.all(\r\n model.media.map(async medium => {\r\n if (medium.type === 'image') {\r\n const filename = `xl/media/${medium.name}.${medium.extension}`;\r\n if (medium.filename) {\r\n const data = await fsReadFileAsync(medium.filename);\r\n return zip.append(data, {name: filename});\r\n }\r\n if (medium.buffer) {\r\n return zip.append(medium.buffer, {name: filename});\r\n }\r\n if (medium.base64) {\r\n const dataimg64 = medium.base64;\r\n const content = dataimg64.substring(dataimg64.indexOf(',') + 1);\r\n return zip.append(content, {name: filename, base64: true});\r\n }\r\n }\r\n throw new Error('Unsupported media');\r\n })\r\n );\r\n }\r\n\r\n addDrawings(zip, model) {\r\n const drawingXform = new DrawingXform();\r\n const relsXform = new RelationshipsXform();\r\n\r\n // First add preserved drawings (with charts)\r\n if (model.preservedDrawingsXml) {\r\n Object.keys(model.preservedDrawingsXml).forEach(name => {\r\n zip.append(model.preservedDrawingsXml[name], {\r\n name: `xl/drawings/${name}.xml`,\r\n });\r\n });\r\n }\r\n\r\n if (model.preservedDrawingsRels) {\r\n Object.keys(model.preservedDrawingsRels).forEach(name => {\r\n const xml = relsXform.toXml(model.preservedDrawingsRels[name]);\r\n zip.append(xml, {\r\n name: `xl/drawings/_rels/${name}.xml.rels`,\r\n });\r\n });\r\n }\r\n\r\n // Then add programmatic drawings\r\n model.worksheets.forEach(worksheet => {\r\n const {drawing, preservedDrawing} = worksheet;\r\n // Skip if this is a preserved drawing (already written above)\r\n if (drawing && !preservedDrawing) {\r\n drawingXform.prepare(drawing, {});\r\n let xml = drawingXform.toXml(drawing);\r\n zip.append(xml, {name: `xl/drawings/${drawing.name}.xml`});\r\n\r\n xml = relsXform.toXml(drawing.rels);\r\n zip.append(xml, {name: `xl/drawings/_rels/${drawing.name}.xml.rels`});\r\n }\r\n });\r\n }\r\n\r\n addTables(zip, model) {\r\n const tableXform = new TableXform();\r\n\r\n model.worksheets.forEach(worksheet => {\r\n const {tables} = worksheet;\r\n tables.forEach(table => {\r\n tableXform.prepare(table, {});\r\n const tableXml = tableXform.toXml(table);\r\n zip.append(tableXml, {name: `xl/tables/${table.target}`});\r\n });\r\n });\r\n }\r\n\r\n addCtrlProps(zip, model) {\r\n if (!model.formControlRefs || !model.formControlRefs.length) return;\r\n\r\n const ctrlPropXform = new CtrlPropXform();\r\n\r\n model.formControlRefs.forEach(ref => {\r\n const ctrlPropXml = ctrlPropXform.toXml(ref.model);\r\n zip.append(ctrlPropXml, {name: `xl/ctrlProps/ctrlProp${ref.id}.xml`});\r\n });\r\n }\r\n\r\n addPivotTables(zip, model) {\r\n const hasProgrammaticPivots = model.pivotTables && model.pivotTables.length > 0;\r\n const hasPreservedPivots = model.preservedPivotTables &&\r\n Object.keys(model.preservedPivotTables.pivotTables || {}).length > 0;\r\n\r\n if (!hasProgrammaticPivots && !hasPreservedPivots) return;\r\n\r\n const pivotCacheRecordsXform = new PivotCacheRecordsXform();\r\n const pivotCacheDefinitionXform = new PivotCacheDefinitionXform();\r\n const pivotTableXform = new PivotTableXform();\r\n const relsXform = new RelationshipsXform();\r\n\r\n // First, write preserved pivot tables (from round-trip)\r\n if (hasPreservedPivots) {\r\n const preserved = model.preservedPivotTables;\r\n\r\n // Write pivot tables\r\n Object.keys(preserved.pivotTables).forEach(name => {\r\n zip.append(preserved.pivotTables[name], {\r\n name: `xl/pivotTables/${name}.xml`,\r\n });\r\n });\r\n\r\n // Write pivot cache definitions\r\n Object.keys(preserved.pivotCacheDefinitions).forEach(name => {\r\n zip.append(preserved.pivotCacheDefinitions[name], {\r\n name: `xl/pivotCache/${name}.xml`,\r\n });\r\n });\r\n\r\n // Write pivot cache records\r\n Object.keys(preserved.pivotCacheRecords).forEach(name => {\r\n zip.append(preserved.pivotCacheRecords[name], {\r\n name: `xl/pivotCache/${name}.xml`,\r\n });\r\n });\r\n\r\n // Write rels for pivot tables\r\n Object.keys(preserved.pivotTables).forEach(name => {\r\n const tableNum = name.match(/\\d+/)[0];\r\n const xml = relsXform.toXml([\r\n {\r\n Id: 'rId1',\r\n Type: XLSX.RelType.PivotCacheDefinition,\r\n Target: `../pivotCache/pivotCacheDefinition${tableNum}.xml`,\r\n },\r\n ]);\r\n zip.append(xml, {\r\n name: `xl/pivotTables/_rels/${name}.xml.rels`,\r\n });\r\n });\r\n\r\n // Write rels for pivot cache definitions\r\n Object.keys(preserved.pivotCacheDefinitions).forEach(name => {\r\n const tableNum = name.match(/\\d+/)[0];\r\n const xml = relsXform.toXml([\r\n {\r\n Id: 'rId1',\r\n Type: XLSX.RelType.PivotCacheRecords,\r\n Target: `pivotCacheRecords${tableNum}.xml`,\r\n },\r\n ]);\r\n zip.append(xml, {\r\n name: `xl/pivotCache/_rels/${name}.xml.rels`,\r\n });\r\n });\r\n }\r\n\r\n // Then, process programmatic pivot tables\r\n if (!hasProgrammaticPivots) return;\r\n\r\n // Process each pivot table\r\n model.pivotTables.forEach((pivotTable, index) => {\r\n const tableNum = index + 1;\r\n\r\n // pivot cache records\r\n // --------------------------------------------------\r\n // copy of the source data.\r\n //\r\n // Note: cells in the columns of the source data which are part\r\n // of the \"rows\" or \"columns\" of the pivot table configuration are\r\n // replaced by references to their __cache field__ identifiers.\r\n // See \"pivot cache definition\" below.\r\n\r\n let xml = pivotCacheRecordsXform.toXml(pivotTable);\r\n zip.append(xml, {\r\n name: `xl/pivotCache/pivotCacheRecords${tableNum}.xml`,\r\n });\r\n\r\n // pivot cache definition\r\n // --------------------------------------------------\r\n // cache source (source data):\r\n // ref=\"A1:E7\" on sheet=\"Sheet1\"\r\n // cache fields:\r\n // - 0: \"A\" (a1, a2, a3)\r\n // - 1: \"B\" (b1, b2)\r\n // - ...\r\n\r\n xml = pivotCacheDefinitionXform.toXml(pivotTable);\r\n zip.append(xml, {\r\n name: `xl/pivotCache/pivotCacheDefinition${tableNum}.xml`,\r\n });\r\n\r\n xml = relsXform.toXml([\r\n {\r\n Id: 'rId1',\r\n Type: XLSX.RelType.PivotCacheRecords,\r\n Target: `pivotCacheRecords${tableNum}.xml`,\r\n },\r\n ]);\r\n zip.append(xml, {\r\n name: `xl/pivotCache/_rels/pivotCacheDefinition${tableNum}.xml.rels`,\r\n });\r\n\r\n // pivot tables (on destination worksheet)\r\n // --------------------------------------------------\r\n // location: ref=\"A3:E15\"\r\n // pivotFields\r\n // rowFields and rowItems\r\n // colFields and colItems\r\n // dataFields\r\n // pivotTableStyleInfo\r\n\r\n xml = pivotTableXform.toXml(pivotTable);\r\n zip.append(xml, {name: `xl/pivotTables/pivotTable${tableNum}.xml`});\r\n\r\n xml = relsXform.toXml([\r\n {\r\n Id: 'rId1',\r\n Type: XLSX.RelType.PivotCacheDefinition,\r\n Target: `../pivotCache/pivotCacheDefinition${tableNum}.xml`,\r\n },\r\n ]);\r\n zip.append(xml, {\r\n name: `xl/pivotTables/_rels/pivotTable${tableNum}.xml.rels`,\r\n });\r\n });\r\n }\r\n\r\n addCharts(zip, model) {\r\n const hasPreservedCharts = model.preservedChartsXml &&\r\n Object.keys(model.preservedChartsXml).length > 0;\r\n\r\n if (!hasPreservedCharts) return;\r\n\r\n const relsXform = new RelationshipsXform();\r\n\r\n // Write chart XML files\r\n Object.keys(model.preservedChartsXml).forEach(name => {\r\n zip.append(model.preservedChartsXml[name], {\r\n name: `xl/charts/${name}.xml`,\r\n });\r\n });\r\n\r\n // Write chart relationship files\r\n Object.keys(model.preservedChartsRels || {}).forEach(name => {\r\n const xml = relsXform.toXml(model.preservedChartsRels[name]);\r\n zip.append(xml, {\r\n name: `xl/charts/_rels/${name}.xml.rels`,\r\n });\r\n });\r\n\r\n // Write chart style files\r\n Object.keys(model.preservedChartStylesXml || {}).forEach(name => {\r\n zip.append(model.preservedChartStylesXml[name], {\r\n name: `xl/charts/${name}.xml`,\r\n });\r\n });\r\n\r\n // Write chart colors files\r\n Object.keys(model.preservedChartColorsXml || {}).forEach(name => {\r\n zip.append(model.preservedChartColorsXml[name], {\r\n name: `xl/charts/${name}.xml`,\r\n });\r\n });\r\n }\r\n\r\n async addContentTypes(zip, model) {\r\n const xform = new ContentTypesXform();\r\n const xml = xform.toXml(model);\r\n zip.append(xml, {name: '[Content_Types].xml'});\r\n }\r\n\r\n async addApp(zip, model) {\r\n const xform = new AppXform();\r\n const xml = xform.toXml(model);\r\n zip.append(xml, {name: 'docProps/app.xml'});\r\n }\r\n\r\n async addCore(zip, model) {\r\n const coreXform = new CoreXform();\r\n zip.append(coreXform.toXml(model), {name: 'docProps/core.xml'});\r\n }\r\n\r\n async addThemes(zip, model) {\r\n const themes = model.themes || {theme1: theme1Xml};\r\n Object.keys(themes).forEach(name => {\r\n const xml = themes[name];\r\n const path = `xl/theme/${name}.xml`;\r\n zip.append(xml, {name: path});\r\n });\r\n }\r\n\r\n async addOfficeRels(zip) {\r\n const xform = new RelationshipsXform();\r\n const xml = xform.toXml([\r\n {\r\n Id: 'rId1',\r\n Type: XLSX.RelType.OfficeDocument,\r\n Target: 'xl/workbook.xml',\r\n },\r\n {\r\n Id: 'rId2',\r\n Type: XLSX.RelType.CoreProperties,\r\n Target: 'docProps/core.xml',\r\n },\r\n {\r\n Id: 'rId3',\r\n Type: XLSX.RelType.ExtenderProperties,\r\n Target: 'docProps/app.xml',\r\n },\r\n ]);\r\n zip.append(xml, {name: '_rels/.rels'});\r\n }\r\n\r\n async addWorkbookRels(zip, model) {\r\n let count = 1;\r\n const relationships = [\r\n {Id: `rId${count++}`, Type: XLSX.RelType.Styles, Target: 'styles.xml'},\r\n {\r\n Id: `rId${count++}`,\r\n Type: XLSX.RelType.Theme,\r\n Target: 'theme/theme1.xml',\r\n },\r\n ];\r\n if (model.sharedStrings.count) {\r\n relationships.push({\r\n Id: `rId${count++}`,\r\n Type: XLSX.RelType.SharedStrings,\r\n Target: 'sharedStrings.xml',\r\n });\r\n }\r\n // Add relationships for programmatic pivot tables\r\n if ((model.pivotTables || []).length) {\r\n model.pivotTables.forEach((pivotTable, index) => {\r\n const tableNum = index + 1;\r\n pivotTable.rId = `rId${count++}`;\r\n relationships.push({\r\n Id: pivotTable.rId,\r\n Type: XLSX.RelType.PivotCacheDefinition,\r\n Target: `pivotCache/pivotCacheDefinition${tableNum}.xml`,\r\n });\r\n });\r\n }\r\n\r\n // Add relationships for preserved pivot tables (from round-trip)\r\n if (model.preservedPivotCaches && model.preservedPivotCaches.length) {\r\n model.preservedPivotCaches.forEach(cache => {\r\n cache.rId = `rId${count++}`;\r\n relationships.push({\r\n Id: cache.rId,\r\n Type: XLSX.RelType.PivotCacheDefinition,\r\n Target: `pivotCache/${cache.definitionFilename}`,\r\n });\r\n });\r\n }\r\n model.worksheets.forEach(worksheet => {\r\n worksheet.rId = `rId${count++}`;\r\n relationships.push({\r\n Id: worksheet.rId,\r\n Type: XLSX.RelType.Worksheet,\r\n Target: `worksheets/sheet${worksheet.id}.xml`,\r\n });\r\n });\r\n const xform = new RelationshipsXform();\r\n const xml = xform.toXml(relationships);\r\n zip.append(xml, {name: 'xl/_rels/workbook.xml.rels'});\r\n }\r\n\r\n async addSharedStrings(zip, model) {\r\n if (model.sharedStrings && model.sharedStrings.count) {\r\n zip.append(model.sharedStrings.xml, {name: 'xl/sharedStrings.xml'});\r\n }\r\n }\r\n\r\n async addStyles(zip, model) {\r\n const {xml} = model.styles;\r\n if (xml) {\r\n zip.append(xml, {name: 'xl/styles.xml'});\r\n }\r\n }\r\n\r\n async addWorkbook(zip, model) {\r\n const xform = new WorkbookXform();\r\n zip.append(xform.toXml(model), {name: 'xl/workbook.xml'});\r\n }\r\n\r\n async addWorksheets(zip, model) {\r\n // preparation phase\r\n const worksheetXform = new WorksheetXform();\r\n const relationshipsXform = new RelationshipsXform();\r\n const commentsXform = new CommentsXform();\r\n const vmlNotesXform = new VmlNotesXform();\r\n\r\n // write sheets\r\n model.worksheets.forEach(worksheet => {\r\n let xmlStream = new XmlStream();\r\n worksheetXform.render(xmlStream, worksheet);\r\n zip.append(xmlStream.xml, {\r\n name: `xl/worksheets/sheet${worksheet.id}.xml`,\r\n });\r\n\r\n if (worksheet.rels && worksheet.rels.length) {\r\n xmlStream = new XmlStream();\r\n relationshipsXform.render(xmlStream, worksheet.rels);\r\n zip.append(xmlStream.xml, {\r\n name: `xl/worksheets/_rels/sheet${worksheet.id}.xml.rels`,\r\n });\r\n }\r\n\r\n if (worksheet.comments.length > 0) {\r\n xmlStream = new XmlStream();\r\n commentsXform.render(xmlStream, worksheet);\r\n zip.append(xmlStream.xml, {name: `xl/comments${worksheet.id}.xml`});\r\n\r\n xmlStream = new XmlStream();\r\n vmlNotesXform.render(xmlStream, worksheet);\r\n zip.append(xmlStream.xml, {\r\n name: `xl/drawings/vmlDrawing${worksheet.id}.vml`,\r\n });\r\n } else if (worksheet.formControls && worksheet.formControls.length > 0) {\r\n // VML file for form controls (no comments)\r\n xmlStream = new XmlStream();\r\n vmlNotesXform.render(xmlStream, worksheet);\r\n zip.append(xmlStream.xml, {\r\n name: `xl/drawings/vmlDrawing${worksheet.id}.vml`,\r\n });\r\n }\r\n });\r\n }\r\n\r\n _finalize(zip) {\r\n return new Promise((resolve, reject) => {\r\n zip.on('finish', () => {\r\n resolve(this);\r\n });\r\n zip.on('error', reject);\r\n zip.finalize();\r\n });\r\n }\r\n\r\n prepareModel(model, options) {\r\n // ensure following properties have sane values\r\n model.creator = model.creator || 'ExcelJS';\r\n model.lastModifiedBy = model.lastModifiedBy || 'ExcelJS';\r\n model.created = model.created || new Date();\r\n model.modified = model.modified || new Date();\r\n\r\n model.useSharedStrings =\r\n options.useSharedStrings !== undefined ? options.useSharedStrings : true;\r\n model.useStyles = options.useStyles !== undefined ? options.useStyles : true;\r\n\r\n // Manage the shared strings\r\n model.sharedStrings = new SharedStringsXform();\r\n\r\n // add a style manager to handle cell formats, fonts, etc.\r\n model.styles = model.useStyles ? new StylesXform(true) : new StylesXform.Mock();\r\n\r\n // prepare all of the things before the render\r\n const workbookXform = new WorkbookXform();\r\n const worksheetXform = new WorksheetXform();\r\n\r\n workbookXform.prepare(model);\r\n\r\n const worksheetOptions = {\r\n sharedStrings: model.sharedStrings,\r\n styles: model.styles,\r\n date1904: model.properties.date1904,\r\n drawingsCount: 0,\r\n media: model.media,\r\n };\r\n worksheetOptions.drawings = model.drawings = [];\r\n worksheetOptions.commentRefs = model.commentRefs = [];\r\n worksheetOptions.formControlRefs = model.formControlRefs = [];\r\n let tableCount = 0;\r\n model.tables = [];\r\n model.worksheets.forEach(worksheet => {\r\n // assign unique filenames to tables\r\n worksheet.tables.forEach(table => {\r\n tableCount++;\r\n table.target = `table${tableCount}.xml`;\r\n table.id = tableCount;\r\n model.tables.push(table);\r\n });\r\n\r\n worksheetXform.prepare(worksheet, worksheetOptions);\r\n });\r\n\r\n // TODO: workbook drawing list\r\n }\r\n\r\n async write(stream, options) {\r\n options = options || {};\r\n const {model} = this.workbook;\r\n const zip = new ZipStream.ZipWriter(options.zip);\r\n zip.pipe(stream);\r\n\r\n this.prepareModel(model, options);\r\n\r\n // render\r\n await this.addContentTypes(zip, model);\r\n await this.addOfficeRels(zip, model);\r\n await this.addWorkbookRels(zip, model);\r\n await this.addWorksheets(zip, model);\r\n await this.addSharedStrings(zip, model); // always after worksheets\r\n await this.addDrawings(zip, model);\r\n await this.addTables(zip, model);\r\n await this.addCtrlProps(zip, model);\r\n await this.addPivotTables(zip, model);\r\n await this.addCharts(zip, model);\r\n await Promise.all([this.addThemes(zip, model), this.addStyles(zip, model)]);\r\n await this.addMedia(zip, model);\r\n await Promise.all([this.addApp(zip, model), this.addCore(zip, model)]);\r\n await this.addWorkbook(zip, model);\r\n return this._finalize(zip);\r\n }\r\n\r\n writeFile(filename, options) {\r\n const stream = fs.createWriteStream(filename);\r\n\r\n return new Promise((resolve, reject) => {\r\n stream.on('finish', () => {\r\n resolve();\r\n });\r\n stream.on('error', error => {\r\n reject(error);\r\n });\r\n\r\n this.write(stream, options)\r\n .then(() => {\r\n stream.end();\r\n })\r\n .catch(err => {\r\n reject(err);\r\n });\r\n });\r\n }\r\n\r\n async writeBuffer(options) {\r\n const stream = new StreamBuf();\r\n await this.write(stream, options);\r\n return stream.read();\r\n }\r\n}\r\n\r\nXLSX.RelType = require('./rel-type');\r\n\r\nmodule.exports = XLSX;\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ /* eslint-disable */
4
+ module.exports = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Theme"> <a:themeElements> <a:clrScheme name="Office"> <a:dk1> <a:sysClr val="windowText" lastClr="000000"/> </a:dk1> <a:lt1> <a:sysClr val="window" lastClr="FFFFFF"/> </a:lt1> <a:dk2> <a:srgbClr val="1F497D"/> </a:dk2> <a:lt2> <a:srgbClr val="EEECE1"/> </a:lt2> <a:accent1> <a:srgbClr val="4F81BD"/> </a:accent1> <a:accent2> <a:srgbClr val="C0504D"/> </a:accent2> <a:accent3> <a:srgbClr val="9BBB59"/> </a:accent3> <a:accent4> <a:srgbClr val="8064A2"/> </a:accent4> <a:accent5> <a:srgbClr val="4BACC6"/> </a:accent5> <a:accent6> <a:srgbClr val="F79646"/> </a:accent6> <a:hlink> <a:srgbClr val="0000FF"/> </a:hlink> <a:folHlink> <a:srgbClr val="800080"/> </a:folHlink> </a:clrScheme> <a:fontScheme name="Office"> <a:majorFont> <a:latin typeface="Cambria"/> <a:ea typeface=""/> <a:cs typeface=""/> <a:font script="Jpan" typeface="MS Pゴシック"/> <a:font script="Hang" typeface="맑은 고딕"/> <a:font script="Hans" typeface="宋体"/> <a:font script="Hant" typeface="新細明體"/> <a:font script="Arab" typeface="Times New Roman"/> <a:font script="Hebr" typeface="Times New Roman"/> <a:font script="Thai" typeface="Tahoma"/> <a:font script="Ethi" typeface="Nyala"/> <a:font script="Beng" typeface="Vrinda"/> <a:font script="Gujr" typeface="Shruti"/> <a:font script="Khmr" typeface="MoolBoran"/> <a:font script="Knda" typeface="Tunga"/> <a:font script="Guru" typeface="Raavi"/> <a:font script="Cans" typeface="Euphemia"/> <a:font script="Cher" typeface="Plantagenet Cherokee"/> <a:font script="Yiii" typeface="Microsoft Yi Baiti"/> <a:font script="Tibt" typeface="Microsoft Himalaya"/> <a:font script="Thaa" typeface="MV Boli"/> <a:font script="Deva" typeface="Mangal"/> <a:font script="Telu" typeface="Gautami"/> <a:font script="Taml" typeface="Latha"/> <a:font script="Syrc" typeface="Estrangelo Edessa"/> <a:font script="Orya" typeface="Kalinga"/> <a:font script="Mlym" typeface="Kartika"/> <a:font script="Laoo" typeface="DokChampa"/> <a:font script="Sinh" typeface="Iskoola Pota"/> <a:font script="Mong" typeface="Mongolian Baiti"/> <a:font script="Viet" typeface="Times New Roman"/> <a:font script="Uigh" typeface="Microsoft Uighur"/> <a:font script="Geor" typeface="Sylfaen"/> </a:majorFont> <a:minorFont> <a:latin typeface="Calibri"/> <a:ea typeface=""/> <a:cs typeface=""/> <a:font script="Jpan" typeface="MS Pゴシック"/> <a:font script="Hang" typeface="맑은 고딕"/> <a:font script="Hans" typeface="宋体"/> <a:font script="Hant" typeface="新細明體"/> <a:font script="Arab" typeface="Arial"/> <a:font script="Hebr" typeface="Arial"/> <a:font script="Thai" typeface="Tahoma"/> <a:font script="Ethi" typeface="Nyala"/> <a:font script="Beng" typeface="Vrinda"/> <a:font script="Gujr" typeface="Shruti"/> <a:font script="Khmr" typeface="DaunPenh"/> <a:font script="Knda" typeface="Tunga"/> <a:font script="Guru" typeface="Raavi"/> <a:font script="Cans" typeface="Euphemia"/> <a:font script="Cher" typeface="Plantagenet Cherokee"/> <a:font script="Yiii" typeface="Microsoft Yi Baiti"/> <a:font script="Tibt" typeface="Microsoft Himalaya"/> <a:font script="Thaa" typeface="MV Boli"/> <a:font script="Deva" typeface="Mangal"/> <a:font script="Telu" typeface="Gautami"/> <a:font script="Taml" typeface="Latha"/> <a:font script="Syrc" typeface="Estrangelo Edessa"/> <a:font script="Orya" typeface="Kalinga"/> <a:font script="Mlym" typeface="Kartika"/> <a:font script="Laoo" typeface="DokChampa"/> <a:font script="Sinh" typeface="Iskoola Pota"/> <a:font script="Mong" typeface="Mongolian Baiti"/> <a:font script="Viet" typeface="Arial"/> <a:font script="Uigh" typeface="Microsoft Uighur"/> <a:font script="Geor" typeface="Sylfaen"/> </a:minorFont> </a:fontScheme> <a:fmtScheme name="Office"> <a:fillStyleLst> <a:solidFill> <a:schemeClr val="phClr"/> </a:solidFill> <a:gradFill rotWithShape="1"> <a:gsLst> <a:gs pos="0"> <a:schemeClr val="phClr"> <a:tint val="50000"/> <a:satMod val="300000"/> </a:schemeClr> </a:gs> <a:gs pos="35000"> <a:schemeClr val="phClr"> <a:tint val="37000"/> <a:satMod val="300000"/> </a:schemeClr> </a:gs> <a:gs pos="100000"> <a:schemeClr val="phClr"> <a:tint val="15000"/> <a:satMod val="350000"/> </a:schemeClr> </a:gs> </a:gsLst> <a:lin ang="16200000" scaled="1"/> </a:gradFill> <a:gradFill rotWithShape="1"> <a:gsLst> <a:gs pos="0"> <a:schemeClr val="phClr"> <a:tint val="100000"/> <a:shade val="100000"/> <a:satMod val="130000"/> </a:schemeClr> </a:gs> <a:gs pos="100000"> <a:schemeClr val="phClr"> <a:tint val="50000"/> <a:shade val="100000"/> <a:satMod val="350000"/> </a:schemeClr> </a:gs> </a:gsLst> <a:lin ang="16200000" scaled="0"/> </a:gradFill> </a:fillStyleLst> <a:lnStyleLst> <a:ln w="9525" cap="flat" cmpd="sng" algn="ctr"> <a:solidFill> <a:schemeClr val="phClr"> <a:shade val="95000"/> <a:satMod val="105000"/> </a:schemeClr> </a:solidFill> <a:prstDash val="solid"/> </a:ln> <a:ln w="25400" cap="flat" cmpd="sng" algn="ctr"> <a:solidFill> <a:schemeClr val="phClr"/> </a:solidFill> <a:prstDash val="solid"/> </a:ln> <a:ln w="38100" cap="flat" cmpd="sng" algn="ctr"> <a:solidFill> <a:schemeClr val="phClr"/> </a:solidFill> <a:prstDash val="solid"/> </a:ln> </a:lnStyleLst> <a:effectStyleLst> <a:effectStyle> <a:effectLst> <a:outerShdw blurRad="40000" dist="20000" dir="5400000" rotWithShape="0"> <a:srgbClr val="000000"> <a:alpha val="38000"/> </a:srgbClr> </a:outerShdw> </a:effectLst> </a:effectStyle> <a:effectStyle> <a:effectLst> <a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"> <a:srgbClr val="000000"> <a:alpha val="35000"/> </a:srgbClr> </a:outerShdw> </a:effectLst> </a:effectStyle> <a:effectStyle> <a:effectLst> <a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"> <a:srgbClr val="000000"> <a:alpha val="35000"/> </a:srgbClr> </a:outerShdw> </a:effectLst> <a:scene3d> <a:camera prst="orthographicFront"> <a:rot lat="0" lon="0" rev="0"/> </a:camera> <a:lightRig rig="threePt" dir="t"> <a:rot lat="0" lon="0" rev="1200000"/> </a:lightRig> </a:scene3d> <a:sp3d> <a:bevelT w="63500" h="25400"/> </a:sp3d> </a:effectStyle> </a:effectStyleLst> <a:bgFillStyleLst> <a:solidFill> <a:schemeClr val="phClr"/> </a:solidFill> <a:gradFill rotWithShape="1"> <a:gsLst> <a:gs pos="0"> <a:schemeClr val="phClr"> <a:tint val="40000"/> <a:satMod val="350000"/> </a:schemeClr> </a:gs> <a:gs pos="40000"> <a:schemeClr val="phClr"> <a:tint val="45000"/> <a:shade val="99000"/> <a:satMod val="350000"/> </a:schemeClr> </a:gs> <a:gs pos="100000"> <a:schemeClr val="phClr"> <a:shade val="20000"/> <a:satMod val="255000"/> </a:schemeClr> </a:gs> </a:gsLst> <a:path path="circle"> <a:fillToRect l="50000" t="-80000" r="50000" b="180000"/> </a:path> </a:gradFill> <a:gradFill rotWithShape="1"> <a:gsLst> <a:gs pos="0"> <a:schemeClr val="phClr"> <a:tint val="80000"/> <a:satMod val="300000"/> </a:schemeClr> </a:gs> <a:gs pos="100000"> <a:schemeClr val="phClr"> <a:shade val="30000"/> <a:satMod val="200000"/> </a:schemeClr> </a:gs> </a:gsLst> <a:path path="circle"> <a:fillToRect l="50000" t="50000" r="50000" b="50000"/> </a:path> </a:gradFill> </a:bgFillStyleLst> </a:fmtScheme> </a:themeElements> <a:objectDefaults> <a:spDef> <a:spPr/> <a:bodyPr/> <a:lstStyle/> <a:style> <a:lnRef idx="1"> <a:schemeClr val="accent1"/> </a:lnRef> <a:fillRef idx="3"> <a:schemeClr val="accent1"/> </a:fillRef> <a:effectRef idx="2"> <a:schemeClr val="accent1"/> </a:effectRef> <a:fontRef idx="minor"> <a:schemeClr val="lt1"/> </a:fontRef> </a:style> </a:spDef> <a:lnDef> <a:spPr/> <a:bodyPr/> <a:lstStyle/> <a:style> <a:lnRef idx="2"> <a:schemeClr val="accent1"/> </a:lnRef> <a:fillRef idx="0"> <a:schemeClr val="accent1"/> </a:fillRef> <a:effectRef idx="1"> <a:schemeClr val="accent1"/> </a:effectRef> <a:fontRef idx="minor"> <a:schemeClr val="tx1"/> </a:fontRef> </a:style> </a:lnDef> </a:objectDefaults> <a:extraClrSchemeLst/> </a:theme>';
5
+ //# sourceMappingURL=theme1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme1.js","names":["module","exports"],"sources":["../../../../lib/xlsx/xml/theme1.js"],"sourcesContent":["/* eslint-disable */\r\nmodule.exports =\r\n '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\n<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\"> <a:themeElements> <a:clrScheme name=\"Office\"> <a:dk1> <a:sysClr val=\"windowText\" lastClr=\"000000\"/> </a:dk1> <a:lt1> <a:sysClr val=\"window\" lastClr=\"FFFFFF\"/> </a:lt1> <a:dk2> <a:srgbClr val=\"1F497D\"/> </a:dk2> <a:lt2> <a:srgbClr val=\"EEECE1\"/> </a:lt2> <a:accent1> <a:srgbClr val=\"4F81BD\"/> </a:accent1> <a:accent2> <a:srgbClr val=\"C0504D\"/> </a:accent2> <a:accent3> <a:srgbClr val=\"9BBB59\"/> </a:accent3> <a:accent4> <a:srgbClr val=\"8064A2\"/> </a:accent4> <a:accent5> <a:srgbClr val=\"4BACC6\"/> </a:accent5> <a:accent6> <a:srgbClr val=\"F79646\"/> </a:accent6> <a:hlink> <a:srgbClr val=\"0000FF\"/> </a:hlink> <a:folHlink> <a:srgbClr val=\"800080\"/> </a:folHlink> </a:clrScheme> <a:fontScheme name=\"Office\"> <a:majorFont> <a:latin typeface=\"Cambria\"/> <a:ea typeface=\"\"/> <a:cs typeface=\"\"/> <a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/> <a:font script=\"Hang\" typeface=\"맑은 고딕\"/> <a:font script=\"Hans\" typeface=\"宋体\"/> <a:font script=\"Hant\" typeface=\"新細明體\"/> <a:font script=\"Arab\" typeface=\"Times New Roman\"/> <a:font script=\"Hebr\" typeface=\"Times New Roman\"/> <a:font script=\"Thai\" typeface=\"Tahoma\"/> <a:font script=\"Ethi\" typeface=\"Nyala\"/> <a:font script=\"Beng\" typeface=\"Vrinda\"/> <a:font script=\"Gujr\" typeface=\"Shruti\"/> <a:font script=\"Khmr\" typeface=\"MoolBoran\"/> <a:font script=\"Knda\" typeface=\"Tunga\"/> <a:font script=\"Guru\" typeface=\"Raavi\"/> <a:font script=\"Cans\" typeface=\"Euphemia\"/> <a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/> <a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/> <a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/> <a:font script=\"Thaa\" typeface=\"MV Boli\"/> <a:font script=\"Deva\" typeface=\"Mangal\"/> <a:font script=\"Telu\" typeface=\"Gautami\"/> <a:font script=\"Taml\" typeface=\"Latha\"/> <a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/> <a:font script=\"Orya\" typeface=\"Kalinga\"/> <a:font script=\"Mlym\" typeface=\"Kartika\"/> <a:font script=\"Laoo\" typeface=\"DokChampa\"/> <a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/> <a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/> <a:font script=\"Viet\" typeface=\"Times New Roman\"/> <a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/> <a:font script=\"Geor\" typeface=\"Sylfaen\"/> </a:majorFont> <a:minorFont> <a:latin typeface=\"Calibri\"/> <a:ea typeface=\"\"/> <a:cs typeface=\"\"/> <a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/> <a:font script=\"Hang\" typeface=\"맑은 고딕\"/> <a:font script=\"Hans\" typeface=\"宋体\"/> <a:font script=\"Hant\" typeface=\"新細明體\"/> <a:font script=\"Arab\" typeface=\"Arial\"/> <a:font script=\"Hebr\" typeface=\"Arial\"/> <a:font script=\"Thai\" typeface=\"Tahoma\"/> <a:font script=\"Ethi\" typeface=\"Nyala\"/> <a:font script=\"Beng\" typeface=\"Vrinda\"/> <a:font script=\"Gujr\" typeface=\"Shruti\"/> <a:font script=\"Khmr\" typeface=\"DaunPenh\"/> <a:font script=\"Knda\" typeface=\"Tunga\"/> <a:font script=\"Guru\" typeface=\"Raavi\"/> <a:font script=\"Cans\" typeface=\"Euphemia\"/> <a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/> <a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/> <a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/> <a:font script=\"Thaa\" typeface=\"MV Boli\"/> <a:font script=\"Deva\" typeface=\"Mangal\"/> <a:font script=\"Telu\" typeface=\"Gautami\"/> <a:font script=\"Taml\" typeface=\"Latha\"/> <a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/> <a:font script=\"Orya\" typeface=\"Kalinga\"/> <a:font script=\"Mlym\" typeface=\"Kartika\"/> <a:font script=\"Laoo\" typeface=\"DokChampa\"/> <a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/> <a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/> <a:font script=\"Viet\" typeface=\"Arial\"/> <a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/> <a:font script=\"Geor\" typeface=\"Sylfaen\"/> </a:minorFont> </a:fontScheme> <a:fmtScheme name=\"Office\"> <a:fillStyleLst> <a:solidFill> <a:schemeClr val=\"phClr\"/> </a:solidFill> <a:gradFill rotWithShape=\"1\"> <a:gsLst> <a:gs pos=\"0\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"50000\"/> <a:satMod val=\"300000\"/> </a:schemeClr> </a:gs> <a:gs pos=\"35000\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"37000\"/> <a:satMod val=\"300000\"/> </a:schemeClr> </a:gs> <a:gs pos=\"100000\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"15000\"/> <a:satMod val=\"350000\"/> </a:schemeClr> </a:gs> </a:gsLst> <a:lin ang=\"16200000\" scaled=\"1\"/> </a:gradFill> <a:gradFill rotWithShape=\"1\"> <a:gsLst> <a:gs pos=\"0\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"100000\"/> <a:shade val=\"100000\"/> <a:satMod val=\"130000\"/> </a:schemeClr> </a:gs> <a:gs pos=\"100000\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"50000\"/> <a:shade val=\"100000\"/> <a:satMod val=\"350000\"/> </a:schemeClr> </a:gs> </a:gsLst> <a:lin ang=\"16200000\" scaled=\"0\"/> </a:gradFill> </a:fillStyleLst> <a:lnStyleLst> <a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"> <a:solidFill> <a:schemeClr val=\"phClr\"> <a:shade val=\"95000\"/> <a:satMod val=\"105000\"/> </a:schemeClr> </a:solidFill> <a:prstDash val=\"solid\"/> </a:ln> <a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"> <a:solidFill> <a:schemeClr val=\"phClr\"/> </a:solidFill> <a:prstDash val=\"solid\"/> </a:ln> <a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"> <a:solidFill> <a:schemeClr val=\"phClr\"/> </a:solidFill> <a:prstDash val=\"solid\"/> </a:ln> </a:lnStyleLst> <a:effectStyleLst> <a:effectStyle> <a:effectLst> <a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\"> <a:srgbClr val=\"000000\"> <a:alpha val=\"38000\"/> </a:srgbClr> </a:outerShdw> </a:effectLst> </a:effectStyle> <a:effectStyle> <a:effectLst> <a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"> <a:srgbClr val=\"000000\"> <a:alpha val=\"35000\"/> </a:srgbClr> </a:outerShdw> </a:effectLst> </a:effectStyle> <a:effectStyle> <a:effectLst> <a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"> <a:srgbClr val=\"000000\"> <a:alpha val=\"35000\"/> </a:srgbClr> </a:outerShdw> </a:effectLst> <a:scene3d> <a:camera prst=\"orthographicFront\"> <a:rot lat=\"0\" lon=\"0\" rev=\"0\"/> </a:camera> <a:lightRig rig=\"threePt\" dir=\"t\"> <a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/> </a:lightRig> </a:scene3d> <a:sp3d> <a:bevelT w=\"63500\" h=\"25400\"/> </a:sp3d> </a:effectStyle> </a:effectStyleLst> <a:bgFillStyleLst> <a:solidFill> <a:schemeClr val=\"phClr\"/> </a:solidFill> <a:gradFill rotWithShape=\"1\"> <a:gsLst> <a:gs pos=\"0\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"40000\"/> <a:satMod val=\"350000\"/> </a:schemeClr> </a:gs> <a:gs pos=\"40000\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"45000\"/> <a:shade val=\"99000\"/> <a:satMod val=\"350000\"/> </a:schemeClr> </a:gs> <a:gs pos=\"100000\"> <a:schemeClr val=\"phClr\"> <a:shade val=\"20000\"/> <a:satMod val=\"255000\"/> </a:schemeClr> </a:gs> </a:gsLst> <a:path path=\"circle\"> <a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/> </a:path> </a:gradFill> <a:gradFill rotWithShape=\"1\"> <a:gsLst> <a:gs pos=\"0\"> <a:schemeClr val=\"phClr\"> <a:tint val=\"80000\"/> <a:satMod val=\"300000\"/> </a:schemeClr> </a:gs> <a:gs pos=\"100000\"> <a:schemeClr val=\"phClr\"> <a:shade val=\"30000\"/> <a:satMod val=\"200000\"/> </a:schemeClr> </a:gs> </a:gsLst> <a:path path=\"circle\"> <a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/> </a:path> </a:gradFill> </a:bgFillStyleLst> </a:fmtScheme> </a:themeElements> <a:objectDefaults> <a:spDef> <a:spPr/> <a:bodyPr/> <a:lstStyle/> <a:style> <a:lnRef idx=\"1\"> <a:schemeClr val=\"accent1\"/> </a:lnRef> <a:fillRef idx=\"3\"> <a:schemeClr val=\"accent1\"/> </a:fillRef> <a:effectRef idx=\"2\"> <a:schemeClr val=\"accent1\"/> </a:effectRef> <a:fontRef idx=\"minor\"> <a:schemeClr val=\"lt1\"/> </a:fontRef> </a:style> </a:spDef> <a:lnDef> <a:spPr/> <a:bodyPr/> <a:lstStyle/> <a:style> <a:lnRef idx=\"2\"> <a:schemeClr val=\"accent1\"/> </a:lnRef> <a:fillRef idx=\"0\"> <a:schemeClr val=\"accent1\"/> </a:fillRef> <a:effectRef idx=\"1\"> <a:schemeClr val=\"accent1\"/> </a:effectRef> <a:fontRef idx=\"minor\"> <a:schemeClr val=\"tx1\"/> </a:fontRef> </a:style> </a:lnDef> </a:objectDefaults> <a:extraClrSchemeLst/> </a:theme>';\r\n"],"mappings":";;AAAA;AACAA,MAAM,CAACC,OAAO,GACZ,wtPAAwtP","ignoreList":[]}