@yuanliwei/exceljs 4.4.0 → 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 (354) hide show
  1. package/dist/LICENSE +22 -0
  2. package/dist/es5/csv/csv.js +176 -0
  3. package/dist/es5/csv/csv.js.map +1 -0
  4. package/dist/es5/csv/line-buffer.js +67 -0
  5. package/dist/es5/csv/line-buffer.js.map +1 -0
  6. package/dist/es5/csv/stream-converter.js +110 -0
  7. package/dist/es5/csv/stream-converter.js.map +1 -0
  8. package/dist/es5/doc/anchor.js +73 -0
  9. package/dist/es5/doc/anchor.js.map +1 -0
  10. package/dist/es5/doc/cell.js +951 -0
  11. package/dist/es5/doc/cell.js.map +1 -0
  12. package/dist/es5/doc/column.js +274 -0
  13. package/dist/es5/doc/column.js.map +1 -0
  14. package/dist/es5/doc/data-validations.js +18 -0
  15. package/dist/es5/doc/data-validations.js.map +1 -0
  16. package/dist/es5/doc/defined-names.js +171 -0
  17. package/dist/es5/doc/defined-names.js.map +1 -0
  18. package/dist/es5/doc/enums.js +49 -0
  19. package/dist/es5/doc/enums.js.map +1 -0
  20. package/dist/es5/doc/image.js +67 -0
  21. package/dist/es5/doc/image.js.map +1 -0
  22. package/dist/es5/doc/modelcontainer.js +16 -0
  23. package/dist/es5/doc/modelcontainer.js.map +1 -0
  24. package/dist/es5/doc/note.js +60 -0
  25. package/dist/es5/doc/note.js.map +1 -0
  26. package/dist/es5/doc/pivot-table.js +132 -0
  27. package/dist/es5/doc/pivot-table.js.map +1 -0
  28. package/dist/es5/doc/range.js +225 -0
  29. package/dist/es5/doc/range.js.map +1 -0
  30. package/dist/es5/doc/row.js +381 -0
  31. package/dist/es5/doc/row.js.map +1 -0
  32. package/dist/es5/doc/table.js +428 -0
  33. package/dist/es5/doc/table.js.map +1 -0
  34. package/dist/es5/doc/workbook.js +203 -0
  35. package/dist/es5/doc/workbook.js.map +1 -0
  36. package/dist/es5/doc/worksheet.js +911 -0
  37. package/dist/es5/doc/worksheet.js.map +1 -0
  38. package/dist/es5/exceljs.bare.js +14 -0
  39. package/dist/es5/exceljs.bare.js.map +1 -0
  40. package/dist/es5/exceljs.browser.js +36 -0
  41. package/dist/es5/exceljs.browser.js.map +1 -0
  42. package/dist/es5/exceljs.nodejs.js +15 -0
  43. package/dist/es5/exceljs.nodejs.js.map +1 -0
  44. package/dist/es5/index.js +15 -0
  45. package/dist/es5/stream/xlsx/hyperlink-reader.js +107 -0
  46. package/dist/es5/stream/xlsx/hyperlink-reader.js.map +1 -0
  47. package/dist/es5/stream/xlsx/sheet-comments-writer.js +94 -0
  48. package/dist/es5/stream/xlsx/sheet-comments-writer.js.map +1 -0
  49. package/dist/es5/stream/xlsx/sheet-rels-writer.js +93 -0
  50. package/dist/es5/stream/xlsx/sheet-rels-writer.js.map +1 -0
  51. package/dist/es5/stream/xlsx/workbook-reader.js +461 -0
  52. package/dist/es5/stream/xlsx/workbook-reader.js.map +1 -0
  53. package/dist/es5/stream/xlsx/workbook-writer.js +345 -0
  54. package/dist/es5/stream/xlsx/workbook-writer.js.map +1 -0
  55. package/dist/es5/stream/xlsx/worksheet-reader.js +459 -0
  56. package/dist/es5/stream/xlsx/worksheet-reader.js.map +1 -0
  57. package/dist/es5/stream/xlsx/worksheet-writer.js +654 -0
  58. package/dist/es5/stream/xlsx/worksheet-writer.js.map +1 -0
  59. package/dist/es5/utils/auto-drain.js +17 -0
  60. package/dist/es5/utils/auto-drain.js.map +1 -0
  61. package/dist/es5/utils/browser-buffer-decode.js +15 -0
  62. package/dist/es5/utils/browser-buffer-decode.js.map +1 -0
  63. package/dist/es5/utils/browser-buffer-encode.js +17 -0
  64. package/dist/es5/utils/browser-buffer-encode.js.map +1 -0
  65. package/dist/es5/utils/cell-matrix.js +145 -0
  66. package/dist/es5/utils/cell-matrix.js.map +1 -0
  67. package/dist/es5/utils/col-cache.js +274 -0
  68. package/dist/es5/utils/col-cache.js.map +1 -0
  69. package/dist/es5/utils/copy-style.js +41 -0
  70. package/dist/es5/utils/copy-style.js.map +1 -0
  71. package/dist/es5/utils/encryptor.js +58 -0
  72. package/dist/es5/utils/encryptor.js.map +1 -0
  73. package/dist/es5/utils/iterate-stream.js +57 -0
  74. package/dist/es5/utils/iterate-stream.js.map +1 -0
  75. package/dist/es5/utils/parse-sax.js +77 -0
  76. package/dist/es5/utils/parse-sax.js.map +1 -0
  77. package/dist/es5/utils/shared-formula.js +42 -0
  78. package/dist/es5/utils/shared-formula.js.map +1 -0
  79. package/dist/es5/utils/shared-strings.js +32 -0
  80. package/dist/es5/utils/shared-strings.js.map +1 -0
  81. package/dist/es5/utils/stream-base64.js +66 -0
  82. package/dist/es5/utils/stream-base64.js.map +1 -0
  83. package/dist/es5/utils/stream-buf.js +343 -0
  84. package/dist/es5/utils/stream-buf.js.map +1 -0
  85. package/dist/es5/utils/string-buf.js +73 -0
  86. package/dist/es5/utils/string-buf.js.map +1 -0
  87. package/dist/es5/utils/string-builder.js +32 -0
  88. package/dist/es5/utils/string-builder.js.map +1 -0
  89. package/dist/es5/utils/stuttered-pipe.js +61 -0
  90. package/dist/es5/utils/stuttered-pipe.js.map +1 -0
  91. package/dist/es5/utils/typed-stack.js +23 -0
  92. package/dist/es5/utils/typed-stack.js.map +1 -0
  93. package/dist/es5/utils/under-dash.js +164 -0
  94. package/dist/es5/utils/under-dash.js.map +1 -0
  95. package/dist/es5/utils/utils.js +204 -0
  96. package/dist/es5/utils/utils.js.map +1 -0
  97. package/dist/es5/utils/xml-stream.js +151 -0
  98. package/dist/es5/utils/xml-stream.js.map +1 -0
  99. package/dist/es5/utils/zip-stream.js +78 -0
  100. package/dist/es5/utils/zip-stream.js.map +1 -0
  101. package/dist/es5/xlsx/defaultnumformats.js +230 -0
  102. package/dist/es5/xlsx/defaultnumformats.js.map +1 -0
  103. package/dist/es5/xlsx/rel-type.js +21 -0
  104. package/dist/es5/xlsx/rel-type.js.map +1 -0
  105. package/dist/es5/xlsx/xform/base-xform.js +161 -0
  106. package/dist/es5/xlsx/xform/base-xform.js.map +1 -0
  107. package/dist/es5/xlsx/xform/book/defined-name-xform.js +85 -0
  108. package/dist/es5/xlsx/xform/book/defined-name-xform.js.map +1 -0
  109. package/dist/es5/xlsx/xform/book/sheet-xform.js +32 -0
  110. package/dist/es5/xlsx/xform/book/sheet-xform.js.map +1 -0
  111. package/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js +24 -0
  112. package/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js.map +1 -0
  113. package/dist/es5/xlsx/xform/book/workbook-pivot-cache-xform.js +27 -0
  114. package/dist/es5/xlsx/xform/book/workbook-pivot-cache-xform.js.map +1 -0
  115. package/dist/es5/xlsx/xform/book/workbook-properties-xform.js +27 -0
  116. package/dist/es5/xlsx/xform/book/workbook-properties-xform.js.map +1 -0
  117. package/dist/es5/xlsx/xform/book/workbook-view-xform.js +51 -0
  118. package/dist/es5/xlsx/xform/book/workbook-view-xform.js.map +1 -0
  119. package/dist/es5/xlsx/xform/book/workbook-xform.js +241 -0
  120. package/dist/es5/xlsx/xform/book/workbook-xform.js.map +1 -0
  121. package/dist/es5/xlsx/xform/comment/comment-xform.js +107 -0
  122. package/dist/es5/xlsx/xform/comment/comment-xform.js.map +1 -0
  123. package/dist/es5/xlsx/xform/comment/comments-xform.js +76 -0
  124. package/dist/es5/xlsx/xform/comment/comments-xform.js.map +1 -0
  125. package/dist/es5/xlsx/xform/comment/style/vml-position-xform.js +35 -0
  126. package/dist/es5/xlsx/xform/comment/style/vml-position-xform.js.map +1 -0
  127. package/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js +32 -0
  128. package/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js.map +1 -0
  129. package/dist/es5/xlsx/xform/comment/vml-anchor-xform.js +53 -0
  130. package/dist/es5/xlsx/xform/comment/vml-anchor-xform.js.map +1 -0
  131. package/dist/es5/xlsx/xform/comment/vml-client-data-xform.js +96 -0
  132. package/dist/es5/xlsx/xform/comment/vml-client-data-xform.js.map +1 -0
  133. package/dist/es5/xlsx/xform/comment/vml-notes-xform.js +107 -0
  134. package/dist/es5/xlsx/xform/comment/vml-notes-xform.js.map +1 -0
  135. package/dist/es5/xlsx/xform/comment/vml-shape-xform.js +92 -0
  136. package/dist/es5/xlsx/xform/comment/vml-shape-xform.js.map +1 -0
  137. package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js +60 -0
  138. package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js.map +1 -0
  139. package/dist/es5/xlsx/xform/composite-xform.js +51 -0
  140. package/dist/es5/xlsx/xform/composite-xform.js.map +1 -0
  141. package/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js +30 -0
  142. package/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js.map +1 -0
  143. package/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js +27 -0
  144. package/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js.map +1 -0
  145. package/dist/es5/xlsx/xform/core/app-xform.js +93 -0
  146. package/dist/es5/xlsx/xform/core/app-xform.js.map +1 -0
  147. package/dist/es5/xlsx/xform/core/content-types-xform.js +125 -0
  148. package/dist/es5/xlsx/xform/core/content-types-xform.js.map +1 -0
  149. package/dist/es5/xlsx/xform/core/core-xform.js +158 -0
  150. package/dist/es5/xlsx/xform/core/core-xform.js.map +1 -0
  151. package/dist/es5/xlsx/xform/core/relationship-xform.js +23 -0
  152. package/dist/es5/xlsx/xform/core/relationship-xform.js.map +1 -0
  153. package/dist/es5/xlsx/xform/core/relationships-xform.js +65 -0
  154. package/dist/es5/xlsx/xform/core/relationships-xform.js.map +1 -0
  155. package/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js +47 -0
  156. package/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js.map +1 -0
  157. package/dist/es5/xlsx/xform/drawing/blip-fill-xform.js +61 -0
  158. package/dist/es5/xlsx/xform/drawing/blip-fill-xform.js.map +1 -0
  159. package/dist/es5/xlsx/xform/drawing/blip-xform.js +39 -0
  160. package/dist/es5/xlsx/xform/drawing/blip-xform.js.map +1 -0
  161. package/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js +35 -0
  162. package/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js.map +1 -0
  163. package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js +62 -0
  164. package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js.map +1 -0
  165. package/dist/es5/xlsx/xform/drawing/cell-position-xform.js +82 -0
  166. package/dist/es5/xlsx/xform/drawing/cell-position-xform.js.map +1 -0
  167. package/dist/es5/xlsx/xform/drawing/drawing-xform.js +98 -0
  168. package/dist/es5/xlsx/xform/drawing/drawing-xform.js.map +1 -0
  169. package/dist/es5/xlsx/xform/drawing/ext-lst-xform.js +40 -0
  170. package/dist/es5/xlsx/xform/drawing/ext-lst-xform.js.map +1 -0
  171. package/dist/es5/xlsx/xform/drawing/ext-xform.js +38 -0
  172. package/dist/es5/xlsx/xform/drawing/ext-xform.js.map +1 -0
  173. package/dist/es5/xlsx/xform/drawing/hlink-click-xform.js +38 -0
  174. package/dist/es5/xlsx/xform/drawing/hlink-click-xform.js.map +1 -0
  175. package/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js +59 -0
  176. package/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js.map +1 -0
  177. package/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js +63 -0
  178. package/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js.map +1 -0
  179. package/dist/es5/xlsx/xform/drawing/pic-xform.js +67 -0
  180. package/dist/es5/xlsx/xform/drawing/pic-xform.js.map +1 -0
  181. package/dist/es5/xlsx/xform/drawing/sp-pr.js +30 -0
  182. package/dist/es5/xlsx/xform/drawing/sp-pr.js.map +1 -0
  183. package/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js +62 -0
  184. package/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js.map +1 -0
  185. package/dist/es5/xlsx/xform/list-xform.js +85 -0
  186. package/dist/es5/xlsx/xform/list-xform.js.map +1 -0
  187. package/dist/es5/xlsx/xform/pivot-table/cache-field.js +40 -0
  188. package/dist/es5/xlsx/xform/pivot-table/cache-field.js.map +1 -0
  189. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +75 -0
  190. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js.map +1 -0
  191. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js +104 -0
  192. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js.map +1 -0
  193. package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js +114 -0
  194. package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js.map +1 -0
  195. package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js +40 -0
  196. package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js.map +1 -0
  197. package/dist/es5/xlsx/xform/sheet/cell-xform.js +452 -0
  198. package/dist/es5/xlsx/xform/sheet/cell-xform.js.map +1 -0
  199. package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js +271 -0
  200. package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js.map +1 -0
  201. package/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js +25 -0
  202. package/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js.map +1 -0
  203. package/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js +38 -0
  204. package/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js.map +1 -0
  205. package/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js +43 -0
  206. package/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js.map +1 -0
  207. package/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js +77 -0
  208. package/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js.map +1 -0
  209. package/dist/es5/xlsx/xform/sheet/cf/databar-xform.js +42 -0
  210. package/dist/es5/xlsx/xform/sheet/cf/databar-xform.js.map +1 -0
  211. package/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +71 -0
  212. package/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js.map +1 -0
  213. package/dist/es5/xlsx/xform/sheet/cf/formula-xform.js +22 -0
  214. package/dist/es5/xlsx/xform/sheet/cf/formula-xform.js.map +1 -0
  215. package/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js +41 -0
  216. package/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js.map +1 -0
  217. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +26 -0
  218. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js.map +1 -0
  219. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +85 -0
  220. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js.map +1 -0
  221. package/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +38 -0
  222. package/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js.map +1 -0
  223. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +52 -0
  224. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js.map +1 -0
  225. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +43 -0
  226. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js.map +1 -0
  227. package/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +81 -0
  228. package/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js.map +1 -0
  229. package/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js +22 -0
  230. package/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js.map +1 -0
  231. package/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +72 -0
  232. package/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js.map +1 -0
  233. package/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +22 -0
  234. package/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js.map +1 -0
  235. package/dist/es5/xlsx/xform/sheet/col-xform.js +78 -0
  236. package/dist/es5/xlsx/xform/sheet/col-xform.js.map +1 -0
  237. package/dist/es5/xlsx/xform/sheet/data-validations-xform.js +249 -0
  238. package/dist/es5/xlsx/xform/sheet/data-validations-xform.js.map +1 -0
  239. package/dist/es5/xlsx/xform/sheet/dimension-xform.js +28 -0
  240. package/dist/es5/xlsx/xform/sheet/dimension-xform.js.map +1 -0
  241. package/dist/es5/xlsx/xform/sheet/drawing-xform.js +32 -0
  242. package/dist/es5/xlsx/xform/sheet/drawing-xform.js.map +1 -0
  243. package/dist/es5/xlsx/xform/sheet/ext-lst-xform.js +69 -0
  244. package/dist/es5/xlsx/xform/sheet/ext-lst-xform.js.map +1 -0
  245. package/dist/es5/xlsx/xform/sheet/header-footer-xform.js +126 -0
  246. package/dist/es5/xlsx/xform/sheet/header-footer-xform.js.map +1 -0
  247. package/dist/es5/xlsx/xform/sheet/hyperlink-xform.js +50 -0
  248. package/dist/es5/xlsx/xform/sheet/hyperlink-xform.js.map +1 -0
  249. package/dist/es5/xlsx/xform/sheet/merge-cell-xform.js +26 -0
  250. package/dist/es5/xlsx/xform/sheet/merge-cell-xform.js.map +1 -0
  251. package/dist/es5/xlsx/xform/sheet/merges.js +52 -0
  252. package/dist/es5/xlsx/xform/sheet/merges.js.map +1 -0
  253. package/dist/es5/xlsx/xform/sheet/outline-properties-xform.js +35 -0
  254. package/dist/es5/xlsx/xform/sheet/outline-properties-xform.js.map +1 -0
  255. package/dist/es5/xlsx/xform/sheet/page-breaks-xform.js +24 -0
  256. package/dist/es5/xlsx/xform/sheet/page-breaks-xform.js.map +1 -0
  257. package/dist/es5/xlsx/xform/sheet/page-margins-xform.js +46 -0
  258. package/dist/es5/xlsx/xform/sheet/page-margins-xform.js.map +1 -0
  259. package/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js +32 -0
  260. package/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js.map +1 -0
  261. package/dist/es5/xlsx/xform/sheet/page-setup-xform.js +99 -0
  262. package/dist/es5/xlsx/xform/sheet/page-setup-xform.js.map +1 -0
  263. package/dist/es5/xlsx/xform/sheet/picture-xform.js +32 -0
  264. package/dist/es5/xlsx/xform/sheet/picture-xform.js.map +1 -0
  265. package/dist/es5/xlsx/xform/sheet/print-options-xform.js +45 -0
  266. package/dist/es5/xlsx/xform/sheet/print-options-xform.js.map +1 -0
  267. package/dist/es5/xlsx/xform/sheet/row-breaks-xform.js +35 -0
  268. package/dist/es5/xlsx/xform/sheet/row-breaks-xform.js.map +1 -0
  269. package/dist/es5/xlsx/xform/sheet/row-xform.js +128 -0
  270. package/dist/es5/xlsx/xform/sheet/row-xform.js.map +1 -0
  271. package/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js +51 -0
  272. package/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js.map +1 -0
  273. package/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js +83 -0
  274. package/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js.map +1 -0
  275. package/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js +84 -0
  276. package/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js.map +1 -0
  277. package/dist/es5/xlsx/xform/sheet/sheet-view-xform.js +190 -0
  278. package/dist/es5/xlsx/xform/sheet/sheet-view-xform.js.map +1 -0
  279. package/dist/es5/xlsx/xform/sheet/table-part-xform.js +32 -0
  280. package/dist/es5/xlsx/xform/sheet/table-part-xform.js.map +1 -0
  281. package/dist/es5/xlsx/xform/sheet/worksheet-xform.js +515 -0
  282. package/dist/es5/xlsx/xform/sheet/worksheet-xform.js.map +1 -0
  283. package/dist/es5/xlsx/xform/simple/boolean-xform.js +27 -0
  284. package/dist/es5/xlsx/xform/simple/boolean-xform.js.map +1 -0
  285. package/dist/es5/xlsx/xform/simple/date-xform.js +58 -0
  286. package/dist/es5/xlsx/xform/simple/date-xform.js.map +1 -0
  287. package/dist/es5/xlsx/xform/simple/float-xform.js +47 -0
  288. package/dist/es5/xlsx/xform/simple/float-xform.js.map +1 -0
  289. package/dist/es5/xlsx/xform/simple/integer-xform.js +53 -0
  290. package/dist/es5/xlsx/xform/simple/integer-xform.js.map +1 -0
  291. package/dist/es5/xlsx/xform/simple/string-xform.js +47 -0
  292. package/dist/es5/xlsx/xform/simple/string-xform.js.map +1 -0
  293. package/dist/es5/xlsx/xform/static-xform.js +61 -0
  294. package/dist/es5/xlsx/xform/static-xform.js.map +1 -0
  295. package/dist/es5/xlsx/xform/strings/phonetic-text-xform.js +94 -0
  296. package/dist/es5/xlsx/xform/strings/phonetic-text-xform.js.map +1 -0
  297. package/dist/es5/xlsx/xform/strings/rich-text-xform.js +92 -0
  298. package/dist/es5/xlsx/xform/strings/rich-text-xform.js.map +1 -0
  299. package/dist/es5/xlsx/xform/strings/shared-string-xform.js +100 -0
  300. package/dist/es5/xlsx/xform/strings/shared-string-xform.js.map +1 -0
  301. package/dist/es5/xlsx/xform/strings/shared-strings-xform.js +114 -0
  302. package/dist/es5/xlsx/xform/strings/shared-strings-xform.js.map +1 -0
  303. package/dist/es5/xlsx/xform/strings/text-xform.js +39 -0
  304. package/dist/es5/xlsx/xform/strings/text-xform.js.map +1 -0
  305. package/dist/es5/xlsx/xform/style/alignment-xform.js +139 -0
  306. package/dist/es5/xlsx/xform/style/alignment-xform.js.map +1 -0
  307. package/dist/es5/xlsx/xform/style/border-xform.js +185 -0
  308. package/dist/es5/xlsx/xform/style/border-xform.js.map +1 -0
  309. package/dist/es5/xlsx/xform/style/color-xform.js +66 -0
  310. package/dist/es5/xlsx/xform/style/color-xform.js.map +1 -0
  311. package/dist/es5/xlsx/xform/style/dxf-xform.js +106 -0
  312. package/dist/es5/xlsx/xform/style/dxf-xform.js.map +1 -0
  313. package/dist/es5/xlsx/xform/style/fill-xform.js +307 -0
  314. package/dist/es5/xlsx/xform/style/fill-xform.js.map +1 -0
  315. package/dist/es5/xlsx/xform/style/font-xform.js +173 -0
  316. package/dist/es5/xlsx/xform/style/font-xform.js.map +1 -0
  317. package/dist/es5/xlsx/xform/style/numfmt-xform.js +58 -0
  318. package/dist/es5/xlsx/xform/style/numfmt-xform.js.map +1 -0
  319. package/dist/es5/xlsx/xform/style/protection-xform.js +53 -0
  320. package/dist/es5/xlsx/xform/style/protection-xform.js.map +1 -0
  321. package/dist/es5/xlsx/xform/style/style-xform.js +118 -0
  322. package/dist/es5/xlsx/xform/style/style-xform.js.map +1 -0
  323. package/dist/es5/xlsx/xform/style/styles-xform.js +611 -0
  324. package/dist/es5/xlsx/xform/style/styles-xform.js.map +1 -0
  325. package/dist/es5/xlsx/xform/style/underline-xform.js +46 -0
  326. package/dist/es5/xlsx/xform/style/underline-xform.js.map +1 -0
  327. package/dist/es5/xlsx/xform/table/auto-filter-xform.js +75 -0
  328. package/dist/es5/xlsx/xform/table/auto-filter-xform.js.map +1 -0
  329. package/dist/es5/xlsx/xform/table/custom-filter-xform.js +30 -0
  330. package/dist/es5/xlsx/xform/table/custom-filter-xform.js.map +1 -0
  331. package/dist/es5/xlsx/xform/table/filter-column-xform.js +87 -0
  332. package/dist/es5/xlsx/xform/table/filter-column-xform.js.map +1 -0
  333. package/dist/es5/xlsx/xform/table/filter-xform.js +28 -0
  334. package/dist/es5/xlsx/xform/table/filter-xform.js.map +1 -0
  335. package/dist/es5/xlsx/xform/table/table-column-xform.js +40 -0
  336. package/dist/es5/xlsx/xform/table/table-column-xform.js.map +1 -0
  337. package/dist/es5/xlsx/xform/table/table-style-info-xform.js +38 -0
  338. package/dist/es5/xlsx/xform/table/table-style-info-xform.js.map +1 -0
  339. package/dist/es5/xlsx/xform/table/table-xform.js +124 -0
  340. package/dist/es5/xlsx/xform/table/table-xform.js.map +1 -0
  341. package/dist/es5/xlsx/xlsx.js +788 -0
  342. package/dist/es5/xlsx/xlsx.js.map +1 -0
  343. package/dist/es5/xlsx/xml/theme1.js +5 -0
  344. package/dist/es5/xlsx/xml/theme1.js.map +1 -0
  345. package/dist/exceljs.bare.js +60711 -0
  346. package/dist/exceljs.bare.js.map +883 -0
  347. package/dist/exceljs.bare.min.js +45 -0
  348. package/dist/exceljs.bare.min.js.map +1 -0
  349. package/dist/exceljs.js +65487 -0
  350. package/dist/exceljs.js.map +1207 -0
  351. package/dist/exceljs.min.js +45 -0
  352. package/dist/exceljs.min.js.map +1 -0
  353. package/lib/xlsx/xform/strings/shared-string-xform.js +4 -1
  354. package/package.json +1 -1
@@ -0,0 +1,461 @@
1
+ "use strict";
2
+
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
7
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
+ function _asyncGeneratorDelegate(t) { var e = {}, n = !1; function pump(e, r) { return n = !0, r = new Promise(function (n) { n(t[e](r)); }), { done: !1, value: new _OverloadYield(r, 1) }; } return e["undefined" != typeof Symbol && Symbol.iterator || "@@iterator"] = function () { return this; }, e.next = function (t) { return n ? (n = !1, t) : pump("next", t); }, "function" == typeof t.throw && (e.throw = function (t) { if (n) throw n = !1, t; return pump("throw", t); }), "function" == typeof t.return && (e.return = function (t) { return n ? (n = !1, t) : pump("return", t); }), e; }
9
+ function _awaitAsyncGenerator(e) { return new _OverloadYield(e, 0); }
10
+ function _wrapAsyncGenerator(e) { return function () { return new AsyncGenerator(e.apply(this, arguments)); }; }
11
+ function AsyncGenerator(e) { var t, n; function resume(t, n) { try { var r = e[t](n), o = r.value, u = o instanceof _OverloadYield; Promise.resolve(u ? o.v : o).then(function (n) { if (u) { var i = "return" === t && o.k ? t : "next"; if (!o.k || n.done) return resume(i, n); n = e[i](n).value; } settle(!!r.done, n); }, function (e) { resume("throw", e); }); } catch (e) { settle(2, e); } } function settle(e, r) { 2 === e ? t.reject(r) : t.resolve({ value: r, done: e }), (t = t.next) ? resume(t.key, t.arg) : n = null; } this._invoke = function (e, r) { return new Promise(function (o, u) { var i = { key: e, arg: r, resolve: o, reject: u, next: null }; n ? n = n.next = i : (t = n = i, resume(e, r)); }); }, "function" != typeof e.return && (this.return = void 0); }
12
+ AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function () { return this; }, AsyncGenerator.prototype.next = function (e) { return this._invoke("next", e); }, AsyncGenerator.prototype.throw = function (e) { return this._invoke("throw", e); }, AsyncGenerator.prototype.return = function (e) { return this._invoke("return", e); };
13
+ function _OverloadYield(e, d) { this.v = e, this.k = d; }
14
+ function _asyncIterator(r) { var n, t, o, e = 2; for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) { if (t && null != (n = r[t])) return n.call(r); if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r)); t = "@@asyncIterator", o = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
15
+ function AsyncFromSyncIterator(r) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var n = r.done; return Promise.resolve(r.value).then(function (r) { return { value: r, done: n }; }); } return AsyncFromSyncIterator = function (r) { this.s = r, this.n = r.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function () { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function (r) { var n = this.s.return; return void 0 === n ? Promise.resolve({ value: r, done: !0 }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); }, throw: function (r) { var n = this.s.return; return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(r); }
16
+ const fs = require('fs');
17
+ const _require = require('events'),
18
+ EventEmitter = _require.EventEmitter;
19
+ const _require2 = require('readable-stream'),
20
+ PassThrough = _require2.PassThrough,
21
+ Readable = _require2.Readable;
22
+ const nodeStream = require('stream');
23
+ const unzip = require('unzipper');
24
+ const tmp = require('tmp');
25
+ const iterateStream = require('../../utils/iterate-stream');
26
+ const parseSax = require('../../utils/parse-sax');
27
+ const StyleManager = require('../../xlsx/xform/style/styles-xform');
28
+ const WorkbookXform = require('../../xlsx/xform/book/workbook-xform');
29
+ const RelationshipsXform = require('../../xlsx/xform/core/relationships-xform');
30
+ const WorksheetReader = require('./worksheet-reader');
31
+ const HyperlinkReader = require('./hyperlink-reader');
32
+ tmp.setGracefulCleanup();
33
+ class WorkbookReader extends EventEmitter {
34
+ constructor(input) {
35
+ let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
36
+ super();
37
+ this.input = input;
38
+ this.options = _objectSpread({
39
+ worksheets: 'emit',
40
+ sharedStrings: 'cache',
41
+ hyperlinks: 'ignore',
42
+ styles: 'ignore',
43
+ entries: 'ignore'
44
+ }, options);
45
+ this.styles = new StyleManager();
46
+ this.styles.init();
47
+ }
48
+ _getStream(input) {
49
+ if (input instanceof nodeStream.Readable || input instanceof Readable) {
50
+ return input;
51
+ }
52
+ if (typeof input === 'string') {
53
+ return fs.createReadStream(input);
54
+ }
55
+ throw new Error("Could not recognise input: ".concat(input));
56
+ }
57
+ async read(input, options) {
58
+ try {
59
+ var _iteratorAbruptCompletion = false;
60
+ var _didIteratorError = false;
61
+ var _iteratorError;
62
+ try {
63
+ for (var _iterator = _asyncIterator(this.parse(input, options)), _step; _iteratorAbruptCompletion = !(_step = await _iterator.next()).done; _iteratorAbruptCompletion = false) {
64
+ const _step$value = _step.value,
65
+ eventType = _step$value.eventType,
66
+ value = _step$value.value;
67
+ {
68
+ switch (eventType) {
69
+ case 'shared-strings':
70
+ this.emit(eventType, value);
71
+ break;
72
+ case 'worksheet':
73
+ this.emit(eventType, value);
74
+ await value.read();
75
+ break;
76
+ case 'hyperlinks':
77
+ this.emit(eventType, value);
78
+ break;
79
+ }
80
+ }
81
+ }
82
+ } catch (err) {
83
+ _didIteratorError = true;
84
+ _iteratorError = err;
85
+ } finally {
86
+ try {
87
+ if (_iteratorAbruptCompletion && _iterator.return != null) {
88
+ await _iterator.return();
89
+ }
90
+ } finally {
91
+ if (_didIteratorError) {
92
+ throw _iteratorError;
93
+ }
94
+ }
95
+ }
96
+ this.emit('end');
97
+ this.emit('finished');
98
+ } catch (error) {
99
+ this.emit('error', error);
100
+ }
101
+ }
102
+ [Symbol.asyncIterator]() {
103
+ var _this = this;
104
+ return _wrapAsyncGenerator(function* () {
105
+ var _iteratorAbruptCompletion2 = false;
106
+ var _didIteratorError2 = false;
107
+ var _iteratorError2;
108
+ try {
109
+ for (var _iterator2 = _asyncIterator(_this.parse()), _step2; _iteratorAbruptCompletion2 = !(_step2 = yield _awaitAsyncGenerator(_iterator2.next())).done; _iteratorAbruptCompletion2 = false) {
110
+ const _step2$value = _step2.value,
111
+ eventType = _step2$value.eventType,
112
+ value = _step2$value.value;
113
+ {
114
+ if (eventType === 'worksheet') {
115
+ yield value;
116
+ }
117
+ }
118
+ }
119
+ } catch (err) {
120
+ _didIteratorError2 = true;
121
+ _iteratorError2 = err;
122
+ } finally {
123
+ try {
124
+ if (_iteratorAbruptCompletion2 && _iterator2.return != null) {
125
+ yield _awaitAsyncGenerator(_iterator2.return());
126
+ }
127
+ } finally {
128
+ if (_didIteratorError2) {
129
+ throw _iteratorError2;
130
+ }
131
+ }
132
+ }
133
+ })();
134
+ }
135
+ parse(input, options) {
136
+ var _this2 = this;
137
+ return _wrapAsyncGenerator(function* () {
138
+ if (options) _this2.options = options;
139
+ const stream = _this2.stream = _this2._getStream(input || _this2.input);
140
+ const zip = unzip.Parse({
141
+ forceStream: true
142
+ });
143
+ stream.pipe(zip);
144
+
145
+ // worksheets, deferred for parsing after shared strings reading
146
+ const waitingWorkSheets = [];
147
+ var _iteratorAbruptCompletion3 = false;
148
+ var _didIteratorError3 = false;
149
+ var _iteratorError3;
150
+ try {
151
+ for (var _iterator3 = _asyncIterator(iterateStream(zip)), _step3; _iteratorAbruptCompletion3 = !(_step3 = yield _awaitAsyncGenerator(_iterator3.next())).done; _iteratorAbruptCompletion3 = false) {
152
+ const entry = _step3.value;
153
+ {
154
+ let match;
155
+ let sheetNo;
156
+ switch (entry.path) {
157
+ case '_rels/.rels':
158
+ break;
159
+ case 'xl/_rels/workbook.xml.rels':
160
+ yield _awaitAsyncGenerator(_this2._parseRels(entry));
161
+ break;
162
+ case 'xl/workbook.xml':
163
+ yield _awaitAsyncGenerator(_this2._parseWorkbook(entry));
164
+ break;
165
+ case 'xl/sharedStrings.xml':
166
+ yield* _asyncGeneratorDelegate(_asyncIterator(_this2._parseSharedStrings(entry)), _awaitAsyncGenerator);
167
+ break;
168
+ case 'xl/styles.xml':
169
+ yield _awaitAsyncGenerator(_this2._parseStyles(entry));
170
+ break;
171
+ default:
172
+ if (entry.path.match(/xl\/worksheets\/sheet\d+[.]xml/)) {
173
+ match = entry.path.match(/xl\/worksheets\/sheet(\d+)[.]xml/);
174
+ sheetNo = match[1];
175
+ if (_this2.sharedStrings && _this2.workbookRels) {
176
+ yield* _asyncGeneratorDelegate(_asyncIterator(_this2._parseWorksheet(iterateStream(entry), sheetNo)), _awaitAsyncGenerator);
177
+ } else {
178
+ // create temp file for each worksheet
179
+ yield _awaitAsyncGenerator(new Promise((resolve, reject) => {
180
+ tmp.file((err, path, fd, tempFileCleanupCallback) => {
181
+ if (err) {
182
+ return reject(err);
183
+ }
184
+ waitingWorkSheets.push({
185
+ sheetNo,
186
+ path,
187
+ tempFileCleanupCallback
188
+ });
189
+ const tempStream = fs.createWriteStream(path);
190
+ tempStream.on('error', reject);
191
+ entry.pipe(tempStream);
192
+ return tempStream.on('finish', () => {
193
+ return resolve();
194
+ });
195
+ });
196
+ }));
197
+ }
198
+ } else if (entry.path.match(/xl\/worksheets\/_rels\/sheet\d+[.]xml.rels/)) {
199
+ match = entry.path.match(/xl\/worksheets\/_rels\/sheet(\d+)[.]xml.rels/);
200
+ sheetNo = match[1];
201
+ yield* _asyncGeneratorDelegate(_asyncIterator(_this2._parseHyperlinks(iterateStream(entry), sheetNo)), _awaitAsyncGenerator);
202
+ }
203
+ break;
204
+ }
205
+ entry.autodrain();
206
+ }
207
+ }
208
+ } catch (err) {
209
+ _didIteratorError3 = true;
210
+ _iteratorError3 = err;
211
+ } finally {
212
+ try {
213
+ if (_iteratorAbruptCompletion3 && _iterator3.return != null) {
214
+ yield _awaitAsyncGenerator(_iterator3.return());
215
+ }
216
+ } finally {
217
+ if (_didIteratorError3) {
218
+ throw _iteratorError3;
219
+ }
220
+ }
221
+ }
222
+ for (const _ref of waitingWorkSheets) {
223
+ const sheetNo = _ref.sheetNo;
224
+ const path = _ref.path;
225
+ const tempFileCleanupCallback = _ref.tempFileCleanupCallback;
226
+ let fileStream = fs.createReadStream(path);
227
+ // TODO: Remove once node v8 is deprecated
228
+ // Detect and upgrade old fileStreams
229
+ if (!fileStream[Symbol.asyncIterator]) {
230
+ fileStream = fileStream.pipe(new PassThrough());
231
+ }
232
+ yield* _asyncGeneratorDelegate(_asyncIterator(_this2._parseWorksheet(fileStream, sheetNo)), _awaitAsyncGenerator);
233
+ tempFileCleanupCallback();
234
+ }
235
+ })();
236
+ }
237
+ _emitEntry(payload) {
238
+ if (this.options.entries === 'emit') {
239
+ this.emit('entry', payload);
240
+ }
241
+ }
242
+ async _parseRels(entry) {
243
+ const xform = new RelationshipsXform();
244
+ this.workbookRels = await xform.parseStream(iterateStream(entry));
245
+ }
246
+ async _parseWorkbook(entry) {
247
+ this._emitEntry({
248
+ type: 'workbook'
249
+ });
250
+ const workbook = new WorkbookXform();
251
+ await workbook.parseStream(iterateStream(entry));
252
+ this.properties = workbook.map.workbookPr;
253
+ this.model = workbook.model;
254
+ }
255
+ _parseSharedStrings(entry) {
256
+ var _this3 = this;
257
+ return _wrapAsyncGenerator(function* () {
258
+ _this3._emitEntry({
259
+ type: 'shared-strings'
260
+ });
261
+ switch (_this3.options.sharedStrings) {
262
+ case 'cache':
263
+ _this3.sharedStrings = [];
264
+ break;
265
+ case 'emit':
266
+ break;
267
+ default:
268
+ return;
269
+ }
270
+ let text = null;
271
+ let richText = [];
272
+ let index = 0;
273
+ let font = null;
274
+ var _iteratorAbruptCompletion4 = false;
275
+ var _didIteratorError4 = false;
276
+ var _iteratorError4;
277
+ try {
278
+ for (var _iterator4 = _asyncIterator(parseSax(iterateStream(entry))), _step4; _iteratorAbruptCompletion4 = !(_step4 = yield _awaitAsyncGenerator(_iterator4.next())).done; _iteratorAbruptCompletion4 = false) {
279
+ const events = _step4.value;
280
+ {
281
+ for (const _ref2 of events) {
282
+ const eventType = _ref2.eventType;
283
+ const value = _ref2.value;
284
+ if (eventType === 'opentag') {
285
+ const node = value;
286
+ switch (node.name) {
287
+ case 'b':
288
+ font = font || {};
289
+ font.bold = true;
290
+ break;
291
+ case 'charset':
292
+ font = font || {};
293
+ font.charset = parseInt(node.attributes.charset, 10);
294
+ break;
295
+ case 'color':
296
+ font = font || {};
297
+ font.color = {};
298
+ if (node.attributes.rgb) {
299
+ font.color.argb = node.attributes.argb;
300
+ }
301
+ if (node.attributes.val) {
302
+ font.color.argb = node.attributes.val;
303
+ }
304
+ if (node.attributes.theme) {
305
+ font.color.theme = node.attributes.theme;
306
+ }
307
+ break;
308
+ case 'family':
309
+ font = font || {};
310
+ font.family = parseInt(node.attributes.val, 10);
311
+ break;
312
+ case 'i':
313
+ font = font || {};
314
+ font.italic = true;
315
+ break;
316
+ case 'outline':
317
+ font = font || {};
318
+ font.outline = true;
319
+ break;
320
+ case 'rFont':
321
+ font = font || {};
322
+ font.name = node.value;
323
+ break;
324
+ case 'si':
325
+ font = null;
326
+ richText = [];
327
+ text = null;
328
+ break;
329
+ case 'sz':
330
+ font = font || {};
331
+ font.size = parseInt(node.attributes.val, 10);
332
+ break;
333
+ case 'strike':
334
+ break;
335
+ case 't':
336
+ text = null;
337
+ break;
338
+ case 'u':
339
+ font = font || {};
340
+ font.underline = true;
341
+ break;
342
+ case 'vertAlign':
343
+ font = font || {};
344
+ font.vertAlign = node.attributes.val;
345
+ break;
346
+ }
347
+ } else if (eventType === 'text') {
348
+ text = text ? text + value : value;
349
+ } else if (eventType === 'closetag') {
350
+ const node = value;
351
+ switch (node.name) {
352
+ case 'r':
353
+ richText.push({
354
+ font,
355
+ text
356
+ });
357
+ font = null;
358
+ text = null;
359
+ break;
360
+ case 'si':
361
+ if (_this3.options.sharedStrings === 'cache') {
362
+ _this3.sharedStrings.push(richText.length ? {
363
+ richText
364
+ } : text);
365
+ } else if (_this3.options.sharedStrings === 'emit') {
366
+ yield {
367
+ index: index++,
368
+ text: richText.length ? {
369
+ richText
370
+ } : text
371
+ };
372
+ }
373
+ richText = [];
374
+ font = null;
375
+ text = null;
376
+ break;
377
+ }
378
+ }
379
+ }
380
+ }
381
+ }
382
+ } catch (err) {
383
+ _didIteratorError4 = true;
384
+ _iteratorError4 = err;
385
+ } finally {
386
+ try {
387
+ if (_iteratorAbruptCompletion4 && _iterator4.return != null) {
388
+ yield _awaitAsyncGenerator(_iterator4.return());
389
+ }
390
+ } finally {
391
+ if (_didIteratorError4) {
392
+ throw _iteratorError4;
393
+ }
394
+ }
395
+ }
396
+ })();
397
+ }
398
+ async _parseStyles(entry) {
399
+ this._emitEntry({
400
+ type: 'styles'
401
+ });
402
+ if (this.options.styles === 'cache') {
403
+ this.styles = new StyleManager();
404
+ await this.styles.parseStream(iterateStream(entry));
405
+ }
406
+ }
407
+ *_parseWorksheet(iterator, sheetNo) {
408
+ this._emitEntry({
409
+ type: 'worksheet',
410
+ id: sheetNo
411
+ });
412
+ const worksheetReader = new WorksheetReader({
413
+ workbook: this,
414
+ id: sheetNo,
415
+ iterator,
416
+ options: this.options
417
+ });
418
+ const matchingRel = (this.workbookRels || []).find(rel => rel.Target === "worksheets/sheet".concat(sheetNo, ".xml"));
419
+ const matchingSheet = matchingRel && (this.model.sheets || []).find(sheet => sheet.rId === matchingRel.Id);
420
+ if (matchingSheet) {
421
+ worksheetReader.id = matchingSheet.id;
422
+ worksheetReader.name = matchingSheet.name;
423
+ worksheetReader.state = matchingSheet.state;
424
+ }
425
+ if (this.options.worksheets === 'emit') {
426
+ yield {
427
+ eventType: 'worksheet',
428
+ value: worksheetReader
429
+ };
430
+ }
431
+ }
432
+ *_parseHyperlinks(iterator, sheetNo) {
433
+ this._emitEntry({
434
+ type: 'hyperlinks',
435
+ id: sheetNo
436
+ });
437
+ const hyperlinksReader = new HyperlinkReader({
438
+ workbook: this,
439
+ id: sheetNo,
440
+ iterator,
441
+ options: this.options
442
+ });
443
+ if (this.options.hyperlinks === 'emit') {
444
+ yield {
445
+ eventType: 'hyperlinks',
446
+ value: hyperlinksReader
447
+ };
448
+ }
449
+ }
450
+ }
451
+
452
+ // for reference - these are the valid values for options
453
+ WorkbookReader.Options = {
454
+ worksheets: ['emit', 'ignore'],
455
+ sharedStrings: ['cache', 'emit', 'ignore'],
456
+ hyperlinks: ['cache', 'emit', 'ignore'],
457
+ styles: ['cache', 'ignore'],
458
+ entries: ['emit', 'ignore']
459
+ };
460
+ module.exports = WorkbookReader;
461
+ //# sourceMappingURL=workbook-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workbook-reader.js","names":["fs","require","_require","EventEmitter","_require2","PassThrough","Readable","nodeStream","unzip","tmp","iterateStream","parseSax","StyleManager","WorkbookXform","RelationshipsXform","WorksheetReader","HyperlinkReader","setGracefulCleanup","WorkbookReader","constructor","input","options","arguments","length","undefined","_objectSpread","worksheets","sharedStrings","hyperlinks","styles","entries","init","_getStream","createReadStream","Error","concat","read","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_asyncIterator","parse","_step","next","done","_step$value","value","eventType","emit","err","return","error","Symbol","asyncIterator","_this","_wrapAsyncGenerator","_iteratorAbruptCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","_awaitAsyncGenerator","_step2$value","_this2","stream","zip","Parse","forceStream","pipe","waitingWorkSheets","_iteratorAbruptCompletion3","_didIteratorError3","_iteratorError3","_iterator3","_step3","entry","match","sheetNo","path","_parseRels","_parseWorkbook","_asyncGeneratorDelegate","_parseSharedStrings","_parseStyles","workbookRels","_parseWorksheet","Promise","resolve","reject","file","fd","tempFileCleanupCallback","push","tempStream","createWriteStream","on","_parseHyperlinks","autodrain","_ref","fileStream","_emitEntry","payload","xform","parseStream","type","workbook","properties","map","workbookPr","model","_this3","text","richText","index","font","_iteratorAbruptCompletion4","_didIteratorError4","_iteratorError4","_iterator4","_step4","events","_ref2","node","name","bold","charset","parseInt","attributes","color","rgb","argb","val","theme","family","italic","outline","size","underline","vertAlign","iterator","id","worksheetReader","matchingRel","find","rel","Target","matchingSheet","sheets","sheet","rId","Id","state","hyperlinksReader","Options","module","exports"],"sources":["../../../../lib/stream/xlsx/workbook-reader.js"],"sourcesContent":["const fs = require('fs');\nconst {EventEmitter} = require('events');\nconst {PassThrough, Readable} = require('readable-stream');\nconst nodeStream = require('stream');\nconst unzip = require('unzipper');\nconst tmp = require('tmp');\nconst iterateStream = require('../../utils/iterate-stream');\nconst parseSax = require('../../utils/parse-sax');\n\nconst StyleManager = require('../../xlsx/xform/style/styles-xform');\nconst WorkbookXform = require('../../xlsx/xform/book/workbook-xform');\nconst RelationshipsXform = require('../../xlsx/xform/core/relationships-xform');\n\nconst WorksheetReader = require('./worksheet-reader');\nconst HyperlinkReader = require('./hyperlink-reader');\n\ntmp.setGracefulCleanup();\n\nclass WorkbookReader extends EventEmitter {\n constructor(input, options = {}) {\n super();\n\n this.input = input;\n\n this.options = {\n worksheets: 'emit',\n sharedStrings: 'cache',\n hyperlinks: 'ignore',\n styles: 'ignore',\n entries: 'ignore',\n ...options,\n };\n\n this.styles = new StyleManager();\n this.styles.init();\n }\n\n _getStream(input) {\n if (input instanceof nodeStream.Readable || input instanceof Readable) {\n return input;\n }\n if (typeof input === 'string') {\n return fs.createReadStream(input);\n }\n throw new Error(`Could not recognise input: ${input}`);\n }\n\n async read(input, options) {\n try {\n for await (const {eventType, value} of this.parse(input, options)) {\n switch (eventType) {\n case 'shared-strings':\n this.emit(eventType, value);\n break;\n case 'worksheet':\n this.emit(eventType, value);\n await value.read();\n break;\n case 'hyperlinks':\n this.emit(eventType, value);\n break;\n }\n }\n this.emit('end');\n this.emit('finished');\n } catch (error) {\n this.emit('error', error);\n }\n }\n\n async *[Symbol.asyncIterator]() {\n for await (const {eventType, value} of this.parse()) {\n if (eventType === 'worksheet') {\n yield value;\n }\n }\n }\n\n async *parse(input, options) {\n if (options) this.options = options;\n const stream = (this.stream = this._getStream(input || this.input));\n const zip = unzip.Parse({forceStream: true});\n stream.pipe(zip);\n\n // worksheets, deferred for parsing after shared strings reading\n const waitingWorkSheets = [];\n\n for await (const entry of iterateStream(zip)) {\n let match;\n let sheetNo;\n switch (entry.path) {\n case '_rels/.rels':\n break;\n case 'xl/_rels/workbook.xml.rels':\n await this._parseRels(entry);\n break;\n case 'xl/workbook.xml':\n await this._parseWorkbook(entry);\n break;\n case 'xl/sharedStrings.xml':\n yield* this._parseSharedStrings(entry);\n break;\n case 'xl/styles.xml':\n await this._parseStyles(entry);\n break;\n default:\n if (entry.path.match(/xl\\/worksheets\\/sheet\\d+[.]xml/)) {\n match = entry.path.match(/xl\\/worksheets\\/sheet(\\d+)[.]xml/);\n sheetNo = match[1];\n if (this.sharedStrings && this.workbookRels) {\n yield* this._parseWorksheet(iterateStream(entry), sheetNo);\n } else {\n // create temp file for each worksheet\n await new Promise((resolve, reject) => {\n tmp.file((err, path, fd, tempFileCleanupCallback) => {\n if (err) {\n return reject(err);\n }\n waitingWorkSheets.push({sheetNo, path, tempFileCleanupCallback});\n\n const tempStream = fs.createWriteStream(path);\n tempStream.on('error', reject);\n entry.pipe(tempStream);\n return tempStream.on('finish', () => {\n return resolve();\n });\n });\n });\n }\n } else if (entry.path.match(/xl\\/worksheets\\/_rels\\/sheet\\d+[.]xml.rels/)) {\n match = entry.path.match(/xl\\/worksheets\\/_rels\\/sheet(\\d+)[.]xml.rels/);\n sheetNo = match[1];\n yield* this._parseHyperlinks(iterateStream(entry), sheetNo);\n }\n break;\n }\n entry.autodrain();\n }\n\n for (const {sheetNo, path, tempFileCleanupCallback} of waitingWorkSheets) {\n let fileStream = fs.createReadStream(path);\n // TODO: Remove once node v8 is deprecated\n // Detect and upgrade old fileStreams\n if (!fileStream[Symbol.asyncIterator]) {\n fileStream = fileStream.pipe(new PassThrough());\n }\n yield* this._parseWorksheet(fileStream, sheetNo);\n tempFileCleanupCallback();\n }\n }\n\n _emitEntry(payload) {\n if (this.options.entries === 'emit') {\n this.emit('entry', payload);\n }\n }\n\n async _parseRels(entry) {\n const xform = new RelationshipsXform();\n this.workbookRels = await xform.parseStream(iterateStream(entry));\n }\n\n async _parseWorkbook(entry) {\n this._emitEntry({type: 'workbook'});\n\n const workbook = new WorkbookXform();\n await workbook.parseStream(iterateStream(entry));\n\n this.properties = workbook.map.workbookPr;\n this.model = workbook.model;\n }\n\n async *_parseSharedStrings(entry) {\n this._emitEntry({type: 'shared-strings'});\n switch (this.options.sharedStrings) {\n case 'cache':\n this.sharedStrings = [];\n break;\n case 'emit':\n break;\n default:\n return;\n }\n\n let text = null;\n let richText = [];\n let index = 0;\n let font = null;\n for await (const events of parseSax(iterateStream(entry))) {\n for (const {eventType, value} of events) {\n if (eventType === 'opentag') {\n const node = value;\n switch (node.name) {\n case 'b':\n font = font || {};\n font.bold = true;\n break;\n case 'charset':\n font = font || {};\n font.charset = parseInt(node.attributes.charset, 10);\n break;\n case 'color':\n font = font || {};\n font.color = {};\n if (node.attributes.rgb) {\n font.color.argb = node.attributes.argb;\n }\n if (node.attributes.val) {\n font.color.argb = node.attributes.val;\n }\n if (node.attributes.theme) {\n font.color.theme = node.attributes.theme;\n }\n break;\n case 'family':\n font = font || {};\n font.family = parseInt(node.attributes.val, 10);\n break;\n case 'i':\n font = font || {};\n font.italic = true;\n break;\n case 'outline':\n font = font || {};\n font.outline = true;\n break;\n case 'rFont':\n font = font || {};\n font.name = node.value;\n break;\n case 'si':\n font = null;\n richText = [];\n text = null;\n break;\n case 'sz':\n font = font || {};\n font.size = parseInt(node.attributes.val, 10);\n break;\n case 'strike':\n break;\n case 't':\n text = null;\n break;\n case 'u':\n font = font || {};\n font.underline = true;\n break;\n case 'vertAlign':\n font = font || {};\n font.vertAlign = node.attributes.val;\n break;\n }\n } else if (eventType === 'text') {\n text = text ? text + value : value;\n } else if (eventType === 'closetag') {\n const node = value;\n switch (node.name) {\n case 'r':\n richText.push({\n font,\n text,\n });\n\n font = null;\n text = null;\n break;\n case 'si':\n if (this.options.sharedStrings === 'cache') {\n this.sharedStrings.push(richText.length ? {richText} : text);\n } else if (this.options.sharedStrings === 'emit') {\n yield {index: index++, text: richText.length ? {richText} : text};\n }\n\n richText = [];\n font = null;\n text = null;\n break;\n }\n }\n }\n }\n }\n\n async _parseStyles(entry) {\n this._emitEntry({type: 'styles'});\n if (this.options.styles === 'cache') {\n this.styles = new StyleManager();\n await this.styles.parseStream(iterateStream(entry));\n }\n }\n\n *_parseWorksheet(iterator, sheetNo) {\n this._emitEntry({type: 'worksheet', id: sheetNo});\n const worksheetReader = new WorksheetReader({\n workbook: this,\n id: sheetNo,\n iterator,\n options: this.options,\n });\n\n const matchingRel = (this.workbookRels || []).find(rel => rel.Target === `worksheets/sheet${sheetNo}.xml`);\n const matchingSheet = matchingRel && (this.model.sheets || []).find(sheet => sheet.rId === matchingRel.Id);\n if (matchingSheet) {\n worksheetReader.id = matchingSheet.id;\n worksheetReader.name = matchingSheet.name;\n worksheetReader.state = matchingSheet.state;\n }\n if (this.options.worksheets === 'emit') {\n yield {eventType: 'worksheet', value: worksheetReader};\n }\n }\n\n *_parseHyperlinks(iterator, sheetNo) {\n this._emitEntry({type: 'hyperlinks', id: sheetNo});\n const hyperlinksReader = new HyperlinkReader({\n workbook: this,\n id: sheetNo,\n iterator,\n options: this.options,\n });\n if (this.options.hyperlinks === 'emit') {\n yield {eventType: 'hyperlinks', value: hyperlinksReader};\n }\n }\n}\n\n// for reference - these are the valid values for options\nWorkbookReader.Options = {\n worksheets: ['emit', 'ignore'],\n sharedStrings: ['cache', 'emit', 'ignore'],\n hyperlinks: ['cache', 'emit', 'ignore'],\n styles: ['cache', 'ignore'],\n entries: ['emit', 'ignore'],\n};\n\nmodule.exports = WorkbookReader;\n"],"mappings":"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","ignoreList":[]}