devextreme-exceljs-fork 4.4.7 → 4.4.8
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.
- package/dist/dx-exceljs-fork.bare.js +445 -541
- package/dist/dx-exceljs-fork.bare.js.map +18 -18
- package/dist/dx-exceljs-fork.bare.min.js +7 -7
- package/dist/dx-exceljs-fork.bare.min.js.map +1 -1
- package/dist/dx-exceljs-fork.js +445 -541
- package/dist/dx-exceljs-fork.js.map +18 -18
- package/dist/dx-exceljs-fork.min.js +6 -6
- package/dist/dx-exceljs-fork.min.js.map +1 -1
- package/dist/es5/csv/csv.js +1 -1
- package/dist/es5/csv/csv.js.map +1 -1
- package/dist/es5/doc/cell.js +5 -5
- package/dist/es5/doc/cell.js.map +1 -1
- package/dist/es5/doc/pivot-table.js +1 -1
- package/dist/es5/doc/pivot-table.js.map +1 -1
- package/dist/es5/doc/range.js +7 -7
- package/dist/es5/doc/range.js.map +1 -1
- package/dist/es5/doc/row.js +1 -1
- package/dist/es5/doc/row.js.map +1 -1
- package/dist/es5/doc/table.js +10 -10
- package/dist/es5/doc/table.js.map +1 -1
- package/dist/es5/doc/worksheet.js +7 -6
- package/dist/es5/doc/worksheet.js.map +1 -1
- package/dist/es5/stream/xlsx/hyperlink-reader.js +26 -49
- package/dist/es5/stream/xlsx/hyperlink-reader.js.map +1 -1
- package/dist/es5/stream/xlsx/sheet-comments-writer.js +6 -6
- package/dist/es5/stream/xlsx/sheet-comments-writer.js.map +1 -1
- package/dist/es5/stream/xlsx/sheet-rels-writer.js +6 -5
- package/dist/es5/stream/xlsx/sheet-rels-writer.js.map +1 -1
- package/dist/es5/stream/xlsx/workbook-reader.js +215 -320
- package/dist/es5/stream/xlsx/workbook-reader.js.map +1 -1
- package/dist/es5/stream/xlsx/workbook-writer.js +8 -8
- package/dist/es5/stream/xlsx/workbook-writer.js.map +1 -1
- package/dist/es5/stream/xlsx/worksheet-reader.js +265 -341
- package/dist/es5/stream/xlsx/worksheet-reader.js.map +1 -1
- package/dist/es5/stream/xlsx/worksheet-writer.js +9 -13
- package/dist/es5/stream/xlsx/worksheet-writer.js.map +1 -1
- package/dist/es5/utils/col-cache.js +14 -18
- package/dist/es5/utils/col-cache.js.map +1 -1
- package/dist/es5/utils/copy-style.js +12 -10
- package/dist/es5/utils/copy-style.js.map +1 -1
- package/dist/es5/utils/encryptor.js +1 -1
- package/dist/es5/utils/encryptor.js.map +1 -1
- package/dist/es5/utils/iterate-stream.js +26 -37
- package/dist/es5/utils/iterate-stream.js.map +1 -1
- package/dist/es5/utils/parse-sax.js +34 -67
- package/dist/es5/utils/parse-sax.js.map +1 -1
- package/dist/es5/utils/utils.js +1 -1
- package/dist/es5/utils/utils.js.map +1 -1
- package/dist/es5/utils/xml-stream.js +1 -1
- package/dist/es5/utils/xml-stream.js.map +1 -1
- package/dist/es5/xlsx/xform/base-xform.js +12 -35
- package/dist/es5/xlsx/xform/base-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/book/defined-name-xform.js +2 -2
- package/dist/es5/xlsx/xform/book/defined-name-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/book/workbook-xform.js +5 -5
- package/dist/es5/xlsx/xform/book/workbook-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/comment/comment-xform.js +4 -8
- package/dist/es5/xlsx/xform/comment/comment-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/comment/vml-shape-xform.js +1 -1
- package/dist/es5/xlsx/xform/comment/vml-shape-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js +1 -1
- package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/core/content-types-xform.js +5 -5
- package/dist/es5/xlsx/xform/core/content-types-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/core/core-xform.js +2 -2
- package/dist/es5/xlsx/xform/core/core-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/core/relationships-xform.js +2 -2
- package/dist/es5/xlsx/xform/core/relationships-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js +1 -1
- package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/list-xform.js +1 -1
- package/dist/es5/xlsx/xform/list-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/pivot-table/cache-field.js +8 -2
- package/dist/es5/xlsx/xform/pivot-table/cache-field.js.map +1 -1
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +3 -7
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js +7 -11
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js +70 -10
- package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js +1 -1
- package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/cell-xform.js +4 -8
- package/dist/es5/xlsx/xform/sheet/cell-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js +18 -22
- package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +2 -2
- package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/data-validations-xform.js +11 -13
- package/dist/es5/xlsx/xform/sheet/data-validations-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/merges.js +1 -1
- package/dist/es5/xlsx/xform/sheet/merges.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/row-xform.js +2 -2
- package/dist/es5/xlsx/xform/sheet/row-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/worksheet-xform.js +10 -10
- package/dist/es5/xlsx/xform/sheet/worksheet-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/strings/shared-strings-xform.js +2 -2
- package/dist/es5/xlsx/xform/strings/shared-strings-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/style/border-xform.js +3 -7
- package/dist/es5/xlsx/xform/style/border-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/table/auto-filter-xform.js +2 -2
- package/dist/es5/xlsx/xform/table/auto-filter-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/table/filter-column-xform.js +1 -1
- package/dist/es5/xlsx/xform/table/filter-column-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/table/table-xform.js +3 -7
- package/dist/es5/xlsx/xform/table/table-xform.js.map +1 -1
- package/dist/es5/xlsx/xlsx.js +22 -45
- package/dist/es5/xlsx/xlsx.js.map +1 -1
- package/package.json +13 -14
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _awaitAsyncGenerator(e) { return new _OverloadYield(e, 0); }
|
|
4
|
-
function _wrapAsyncGenerator(e) { return function () { return new AsyncGenerator(e.apply(this, arguments)); }; }
|
|
5
|
-
function AsyncGenerator(e) { var r, t; function resume(r, t) { try { var n = e[r](t), o = n.value, u = o instanceof _OverloadYield; Promise.resolve(u ? o.v : o).then(function (t) { if (u) { var i = "return" === r ? "return" : "next"; if (!o.k || t.done) return resume(i, t); t = e[i](t).value; } settle(n.done ? "return" : "normal", t); }, function (e) { resume("throw", e); }); } catch (e) { settle("throw", e); } } function settle(e, n) { switch (e) { case "return": r.resolve({ value: n, done: !0 }); break; case "throw": r.reject(n); break; default: r.resolve({ value: n, done: !1 }); } (r = r.next) ? resume(r.key, r.arg) : t = null; } this._invoke = function (e, n) { return new Promise(function (o, u) { var i = { key: e, arg: n, resolve: o, reject: u, next: null }; t ? t = t.next = i : (r = t = i, resume(e, n)); }); }, "function" != typeof e.return && (this.return = void 0); }
|
|
6
|
-
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); };
|
|
7
|
-
function _OverloadYield(e, d) { this.v = e, this.k = d; }
|
|
8
|
-
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"); }
|
|
9
|
-
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); }
|
|
10
3
|
const {
|
|
11
4
|
EventEmitter
|
|
12
5
|
} = require('events');
|
|
@@ -32,7 +25,7 @@ class WorksheetReader extends EventEmitter {
|
|
|
32
25
|
this.options = options || {};
|
|
33
26
|
|
|
34
27
|
// and a name
|
|
35
|
-
this.name =
|
|
28
|
+
this.name = `Sheet${this.id}`;
|
|
36
29
|
|
|
37
30
|
// column definitions
|
|
38
31
|
this._columns = null;
|
|
@@ -99,33 +92,12 @@ class WorksheetReader extends EventEmitter {
|
|
|
99
92
|
}
|
|
100
93
|
async read() {
|
|
101
94
|
try {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
{
|
|
109
|
-
for (const {
|
|
110
|
-
eventType,
|
|
111
|
-
value
|
|
112
|
-
} of events) {
|
|
113
|
-
this.emit(eventType, value);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
} catch (err) {
|
|
118
|
-
_didIteratorError = true;
|
|
119
|
-
_iteratorError = err;
|
|
120
|
-
} finally {
|
|
121
|
-
try {
|
|
122
|
-
if (_iteratorAbruptCompletion && _iterator.return != null) {
|
|
123
|
-
await _iterator.return();
|
|
124
|
-
}
|
|
125
|
-
} finally {
|
|
126
|
-
if (_didIteratorError) {
|
|
127
|
-
throw _iteratorError;
|
|
128
|
-
}
|
|
95
|
+
for await (const events of this.parse()) {
|
|
96
|
+
for (const {
|
|
97
|
+
eventType,
|
|
98
|
+
value
|
|
99
|
+
} of events) {
|
|
100
|
+
this.emit(eventType, value);
|
|
129
101
|
}
|
|
130
102
|
}
|
|
131
103
|
this.emit('finished');
|
|
@@ -133,335 +105,287 @@ class WorksheetReader extends EventEmitter {
|
|
|
133
105
|
this.emit('error', error);
|
|
134
106
|
}
|
|
135
107
|
}
|
|
136
|
-
[Symbol.asyncIterator]() {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
const events = _step2.value;
|
|
145
|
-
{
|
|
146
|
-
for (const {
|
|
147
|
-
eventType,
|
|
148
|
-
value
|
|
149
|
-
} of events) {
|
|
150
|
-
if (eventType === 'row') {
|
|
151
|
-
yield value;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
} catch (err) {
|
|
157
|
-
_didIteratorError2 = true;
|
|
158
|
-
_iteratorError2 = err;
|
|
159
|
-
} finally {
|
|
160
|
-
try {
|
|
161
|
-
if (_iteratorAbruptCompletion2 && _iterator2.return != null) {
|
|
162
|
-
yield _awaitAsyncGenerator(_iterator2.return());
|
|
163
|
-
}
|
|
164
|
-
} finally {
|
|
165
|
-
if (_didIteratorError2) {
|
|
166
|
-
throw _iteratorError2;
|
|
167
|
-
}
|
|
108
|
+
async *[Symbol.asyncIterator]() {
|
|
109
|
+
for await (const events of this.parse()) {
|
|
110
|
+
for (const {
|
|
111
|
+
eventType,
|
|
112
|
+
value
|
|
113
|
+
} of events) {
|
|
114
|
+
if (eventType === 'row') {
|
|
115
|
+
yield value;
|
|
168
116
|
}
|
|
169
117
|
}
|
|
170
|
-
}
|
|
118
|
+
}
|
|
171
119
|
}
|
|
172
|
-
parse() {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
return;
|
|
203
|
-
}
|
|
120
|
+
async *parse() {
|
|
121
|
+
const {
|
|
122
|
+
iterator,
|
|
123
|
+
options
|
|
124
|
+
} = this;
|
|
125
|
+
let emitSheet = false;
|
|
126
|
+
let emitHyperlinks = false;
|
|
127
|
+
let hyperlinks = null;
|
|
128
|
+
switch (options.worksheets) {
|
|
129
|
+
case 'emit':
|
|
130
|
+
emitSheet = true;
|
|
131
|
+
break;
|
|
132
|
+
case 'prep':
|
|
133
|
+
break;
|
|
134
|
+
default:
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
switch (options.hyperlinks) {
|
|
138
|
+
case 'emit':
|
|
139
|
+
emitHyperlinks = true;
|
|
140
|
+
break;
|
|
141
|
+
case 'cache':
|
|
142
|
+
this.hyperlinks = hyperlinks = {};
|
|
143
|
+
break;
|
|
144
|
+
default:
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
if (!emitSheet && !emitHyperlinks && !hyperlinks) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
204
150
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
151
|
+
// references
|
|
152
|
+
const {
|
|
153
|
+
sharedStrings,
|
|
154
|
+
styles,
|
|
155
|
+
properties
|
|
156
|
+
} = this.workbook;
|
|
211
157
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
158
|
+
// xml position
|
|
159
|
+
let inCols = false;
|
|
160
|
+
let inRows = false;
|
|
161
|
+
let inHyperlinks = false;
|
|
216
162
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
if (node.attributes.s) {
|
|
263
|
-
const styleId = parseInt(node.attributes.s, 10);
|
|
264
|
-
const style = styles.getStyleModel(styleId);
|
|
265
|
-
if (style) {
|
|
266
|
-
row.style = style;
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
break;
|
|
271
|
-
case 'c':
|
|
272
|
-
if (row) {
|
|
273
|
-
c = {
|
|
274
|
-
ref: node.attributes.r,
|
|
275
|
-
s: parseInt(node.attributes.s, 10),
|
|
276
|
-
t: node.attributes.t
|
|
277
|
-
};
|
|
278
|
-
}
|
|
279
|
-
break;
|
|
280
|
-
case 'f':
|
|
281
|
-
if (c) {
|
|
282
|
-
current = c.f = {
|
|
283
|
-
text: ''
|
|
284
|
-
};
|
|
285
|
-
}
|
|
286
|
-
break;
|
|
287
|
-
case 'v':
|
|
288
|
-
if (c) {
|
|
289
|
-
current = c.v = {
|
|
290
|
-
text: ''
|
|
291
|
-
};
|
|
292
|
-
}
|
|
293
|
-
break;
|
|
294
|
-
case 'is':
|
|
295
|
-
case 't':
|
|
296
|
-
if (c) {
|
|
297
|
-
current = c.v = {
|
|
298
|
-
text: ''
|
|
299
|
-
};
|
|
300
|
-
}
|
|
301
|
-
break;
|
|
302
|
-
case 'mergeCell':
|
|
303
|
-
break;
|
|
304
|
-
default:
|
|
305
|
-
break;
|
|
163
|
+
// parse state
|
|
164
|
+
let cols = null;
|
|
165
|
+
let row = null;
|
|
166
|
+
let c = null;
|
|
167
|
+
let current = null;
|
|
168
|
+
for await (const events of parseSax(iterator)) {
|
|
169
|
+
const worksheetEvents = [];
|
|
170
|
+
for (const {
|
|
171
|
+
eventType,
|
|
172
|
+
value
|
|
173
|
+
} of events) {
|
|
174
|
+
if (eventType === 'opentag') {
|
|
175
|
+
const node = value;
|
|
176
|
+
if (emitSheet) {
|
|
177
|
+
switch (node.name) {
|
|
178
|
+
case 'cols':
|
|
179
|
+
inCols = true;
|
|
180
|
+
cols = [];
|
|
181
|
+
break;
|
|
182
|
+
case 'sheetData':
|
|
183
|
+
inRows = true;
|
|
184
|
+
break;
|
|
185
|
+
case 'col':
|
|
186
|
+
if (inCols) {
|
|
187
|
+
cols.push({
|
|
188
|
+
min: parseInt(node.attributes.min, 10),
|
|
189
|
+
max: parseInt(node.attributes.max, 10),
|
|
190
|
+
width: parseFloat(node.attributes.width),
|
|
191
|
+
styleId: parseInt(node.attributes.style || '0', 10)
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
break;
|
|
195
|
+
case 'row':
|
|
196
|
+
if (inRows) {
|
|
197
|
+
const r = parseInt(node.attributes.r, 10);
|
|
198
|
+
row = new Row(this, r);
|
|
199
|
+
if (node.attributes.ht) {
|
|
200
|
+
row.height = parseFloat(node.attributes.ht);
|
|
201
|
+
}
|
|
202
|
+
if (node.attributes.s) {
|
|
203
|
+
const styleId = parseInt(node.attributes.s, 10);
|
|
204
|
+
const style = styles.getStyleModel(styleId);
|
|
205
|
+
if (style) {
|
|
206
|
+
row.style = style;
|
|
207
|
+
}
|
|
306
208
|
}
|
|
307
209
|
}
|
|
210
|
+
break;
|
|
211
|
+
case 'c':
|
|
212
|
+
if (row) {
|
|
213
|
+
c = {
|
|
214
|
+
ref: node.attributes.r,
|
|
215
|
+
s: parseInt(node.attributes.s, 10),
|
|
216
|
+
t: node.attributes.t
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
break;
|
|
220
|
+
case 'f':
|
|
221
|
+
if (c) {
|
|
222
|
+
current = c.f = {
|
|
223
|
+
text: ''
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
break;
|
|
227
|
+
case 'v':
|
|
228
|
+
if (c) {
|
|
229
|
+
current = c.v = {
|
|
230
|
+
text: ''
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
break;
|
|
234
|
+
case 'is':
|
|
235
|
+
case 't':
|
|
236
|
+
if (c) {
|
|
237
|
+
current = c.v = {
|
|
238
|
+
text: ''
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
break;
|
|
242
|
+
case 'mergeCell':
|
|
243
|
+
break;
|
|
244
|
+
default:
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
308
248
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
break;
|
|
332
|
-
default:
|
|
333
|
-
break;
|
|
249
|
+
// =================================================================
|
|
250
|
+
//
|
|
251
|
+
if (emitHyperlinks || hyperlinks) {
|
|
252
|
+
switch (node.name) {
|
|
253
|
+
case 'hyperlinks':
|
|
254
|
+
inHyperlinks = true;
|
|
255
|
+
break;
|
|
256
|
+
case 'hyperlink':
|
|
257
|
+
if (inHyperlinks) {
|
|
258
|
+
const hyperlink = {
|
|
259
|
+
ref: node.attributes.ref,
|
|
260
|
+
rId: node.attributes['r:id']
|
|
261
|
+
};
|
|
262
|
+
if (emitHyperlinks) {
|
|
263
|
+
worksheetEvents.push({
|
|
264
|
+
eventType: 'hyperlink',
|
|
265
|
+
value: hyperlink
|
|
266
|
+
});
|
|
267
|
+
} else {
|
|
268
|
+
hyperlinks[hyperlink.ref] = hyperlink;
|
|
334
269
|
}
|
|
335
270
|
}
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
271
|
+
break;
|
|
272
|
+
default:
|
|
273
|
+
break;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
} else if (eventType === 'text') {
|
|
277
|
+
// only text data is for sheet values
|
|
278
|
+
if (emitSheet) {
|
|
279
|
+
if (current) {
|
|
280
|
+
current.text += value;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
} else if (eventType === 'closetag') {
|
|
284
|
+
const node = value;
|
|
285
|
+
if (emitSheet) {
|
|
286
|
+
switch (node.name) {
|
|
287
|
+
case 'cols':
|
|
288
|
+
inCols = false;
|
|
289
|
+
this._columns = Column.fromModel(cols);
|
|
290
|
+
break;
|
|
291
|
+
case 'sheetData':
|
|
292
|
+
inRows = false;
|
|
293
|
+
break;
|
|
294
|
+
case 'row':
|
|
295
|
+
this._dimensions.expandRow(row);
|
|
296
|
+
worksheetEvents.push({
|
|
297
|
+
eventType: 'row',
|
|
298
|
+
value: row
|
|
299
|
+
});
|
|
300
|
+
row = null;
|
|
301
|
+
break;
|
|
302
|
+
case 'c':
|
|
303
|
+
if (row && c) {
|
|
304
|
+
const address = colCache.decodeAddress(c.ref);
|
|
305
|
+
const cell = row.getCell(address.col);
|
|
306
|
+
if (c.s) {
|
|
307
|
+
const style = styles.getStyleModel(c.s);
|
|
308
|
+
if (style) {
|
|
309
|
+
cell.style = style;
|
|
310
|
+
}
|
|
341
311
|
}
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
const cell = row.getCell(address.col);
|
|
366
|
-
if (c.s) {
|
|
367
|
-
const style = styles.getStyleModel(c.s);
|
|
368
|
-
if (style) {
|
|
369
|
-
cell.style = style;
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
if (c.f) {
|
|
373
|
-
const cellValue = {
|
|
374
|
-
formula: c.f.text
|
|
375
|
-
};
|
|
376
|
-
if (c.v) {
|
|
377
|
-
if (c.t === 'str') {
|
|
378
|
-
cellValue.result = utils.xmlDecode(c.v.text);
|
|
379
|
-
} else {
|
|
380
|
-
cellValue.result = parseFloat(c.v.text);
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
cell.value = cellValue;
|
|
384
|
-
} else if (c.v) {
|
|
385
|
-
switch (c.t) {
|
|
386
|
-
case 's':
|
|
387
|
-
{
|
|
388
|
-
const index = parseInt(c.v.text, 10);
|
|
389
|
-
if (sharedStrings) {
|
|
390
|
-
cell.value = sharedStrings[index];
|
|
391
|
-
} else {
|
|
392
|
-
cell.value = {
|
|
393
|
-
sharedString: index
|
|
394
|
-
};
|
|
395
|
-
}
|
|
396
|
-
break;
|
|
397
|
-
}
|
|
398
|
-
case 'inlineStr':
|
|
399
|
-
case 'str':
|
|
400
|
-
cell.value = utils.xmlDecode(c.v.text);
|
|
401
|
-
break;
|
|
402
|
-
case 'e':
|
|
403
|
-
cell.value = {
|
|
404
|
-
error: c.v.text
|
|
405
|
-
};
|
|
406
|
-
break;
|
|
407
|
-
case 'b':
|
|
408
|
-
cell.value = parseInt(c.v.text, 10) !== 0;
|
|
409
|
-
break;
|
|
410
|
-
default:
|
|
411
|
-
if (utils.isDateFmt(cell.numFmt)) {
|
|
412
|
-
cell.value = utils.excelToDate(parseFloat(c.v.text), properties.model && properties.model.date1904);
|
|
413
|
-
} else {
|
|
414
|
-
cell.value = parseFloat(c.v.text);
|
|
415
|
-
}
|
|
416
|
-
break;
|
|
312
|
+
if (c.f) {
|
|
313
|
+
const cellValue = {
|
|
314
|
+
formula: c.f.text
|
|
315
|
+
};
|
|
316
|
+
if (c.v) {
|
|
317
|
+
if (c.t === 'str') {
|
|
318
|
+
cellValue.result = utils.xmlDecode(c.v.text);
|
|
319
|
+
} else {
|
|
320
|
+
cellValue.result = parseFloat(c.v.text);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
cell.value = cellValue;
|
|
324
|
+
} else if (c.v) {
|
|
325
|
+
switch (c.t) {
|
|
326
|
+
case 's':
|
|
327
|
+
{
|
|
328
|
+
const index = parseInt(c.v.text, 10);
|
|
329
|
+
if (sharedStrings) {
|
|
330
|
+
cell.value = sharedStrings[index];
|
|
331
|
+
} else {
|
|
332
|
+
cell.value = {
|
|
333
|
+
sharedString: index
|
|
334
|
+
};
|
|
417
335
|
}
|
|
336
|
+
break;
|
|
418
337
|
}
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
338
|
+
case 'inlineStr':
|
|
339
|
+
case 'str':
|
|
340
|
+
cell.value = utils.xmlDecode(c.v.text);
|
|
341
|
+
break;
|
|
342
|
+
case 'e':
|
|
343
|
+
cell.value = {
|
|
344
|
+
error: c.v.text
|
|
345
|
+
};
|
|
346
|
+
break;
|
|
347
|
+
case 'b':
|
|
348
|
+
cell.value = parseInt(c.v.text, 10) !== 0;
|
|
349
|
+
break;
|
|
350
|
+
default:
|
|
351
|
+
if (utils.isDateFmt(cell.numFmt)) {
|
|
352
|
+
cell.value = utils.excelToDate(parseFloat(c.v.text), properties.model && properties.model.date1904);
|
|
353
|
+
} else {
|
|
354
|
+
cell.value = parseFloat(c.v.text);
|
|
426
355
|
}
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
break;
|
|
430
|
-
default:
|
|
431
|
-
break;
|
|
356
|
+
break;
|
|
357
|
+
}
|
|
432
358
|
}
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
break;
|
|
359
|
+
if (hyperlinks) {
|
|
360
|
+
const hyperlink = hyperlinks[c.ref];
|
|
361
|
+
if (hyperlink) {
|
|
362
|
+
cell.text = cell.value;
|
|
363
|
+
cell.value = undefined;
|
|
364
|
+
cell.hyperlink = hyperlink;
|
|
365
|
+
}
|
|
441
366
|
}
|
|
367
|
+
c = null;
|
|
442
368
|
}
|
|
443
|
-
|
|
369
|
+
break;
|
|
370
|
+
default:
|
|
371
|
+
break;
|
|
444
372
|
}
|
|
445
|
-
if (worksheetEvents.length > 0) {
|
|
446
|
-
yield worksheetEvents;
|
|
447
|
-
}
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
|
-
} catch (err) {
|
|
451
|
-
_didIteratorError3 = true;
|
|
452
|
-
_iteratorError3 = err;
|
|
453
|
-
} finally {
|
|
454
|
-
try {
|
|
455
|
-
if (_iteratorAbruptCompletion3 && _iterator3.return != null) {
|
|
456
|
-
yield _awaitAsyncGenerator(_iterator3.return());
|
|
457
373
|
}
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
374
|
+
if (emitHyperlinks || hyperlinks) {
|
|
375
|
+
switch (node.name) {
|
|
376
|
+
case 'hyperlinks':
|
|
377
|
+
inHyperlinks = false;
|
|
378
|
+
break;
|
|
379
|
+
default:
|
|
380
|
+
break;
|
|
381
|
+
}
|
|
461
382
|
}
|
|
462
383
|
}
|
|
463
384
|
}
|
|
464
|
-
|
|
385
|
+
if (worksheetEvents.length > 0) {
|
|
386
|
+
yield worksheetEvents;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
465
389
|
}
|
|
466
390
|
}
|
|
467
391
|
module.exports = WorksheetReader;
|