devextreme-exceljs-fork 4.4.7 → 4.4.9
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/README.md +1 -1
- package/README_zh.md +1 -1
- package/dist/dx-exceljs-fork.bare.js +15848 -20465
- package/dist/dx-exceljs-fork.bare.js.map +317 -361
- package/dist/dx-exceljs-fork.bare.min.js +9 -9
- package/dist/dx-exceljs-fork.bare.min.js.map +1 -1
- package/dist/dx-exceljs-fork.js +16431 -21034
- package/dist/dx-exceljs-fork.js.map +489 -533
- package/dist/dx-exceljs-fork.min.js +9 -9
- 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/dx-exceljs-fork.browser.js +1 -1
- package/dist/es5/dx-exceljs-fork.browser.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/browser-buffer-decode.js +1 -1
- package/dist/es5/utils/browser-buffer-decode.js.map +1 -1
- package/dist/es5/utils/browser-buffer-encode.js +1 -1
- package/dist/es5/utils/browser-buffer-encode.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 +10 -5
- 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/lib/dx-exceljs-fork.browser.js +1 -1
- package/lib/utils/browser-buffer-decode.js +1 -1
- package/lib/utils/browser-buffer-encode.js +1 -1
- package/lib/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +12 -3
- package/package.json +35 -35
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worksheet-reader.js","names":["EventEmitter","require","parseSax","_","utils","colCache","Dimensions","Row","Column","WorksheetReader","constructor","_ref","workbook","id","iterator","options","name","concat","_columns","_keys","_dimensions","destroy","Error","dimensions","columns","getColumn","c","col","l2n","length","n","push","getColumnKey","key","setColumnKey","value","deleteColumnKey","eachColumnKey","f","each","read","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_asyncIterator","parse","_step","next","done","events","eventType","emit","err","return","error","Symbol","asyncIterator","_this","_wrapAsyncGenerator","_iteratorAbruptCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","_awaitAsyncGenerator","_this2","emitSheet","emitHyperlinks","hyperlinks","worksheets","sharedStrings","styles","properties","inCols","inRows","inHyperlinks","cols","row","current","_iteratorAbruptCompletion3","_didIteratorError3","_iteratorError3","_iterator3","_step3","worksheetEvents","node","min","parseInt","attributes","max","width","parseFloat","styleId","style","r","ht","height","s","getStyleModel","ref","t","text","v","hyperlink","rId","fromModel","expandRow","address","decodeAddress","cell","getCell","cellValue","formula","result","xmlDecode","index","sharedString","isDateFmt","numFmt","excelToDate","model","date1904","undefined","module","exports"],"sources":["../../../../lib/stream/xlsx/worksheet-reader.js"],"sourcesContent":["const {EventEmitter} = require('events');\nconst parseSax = require('../../utils/parse-sax');\n\nconst _ = require('../../utils/under-dash');\nconst utils = require('../../utils/utils');\nconst colCache = require('../../utils/col-cache');\nconst Dimensions = require('../../doc/range');\n\nconst Row = require('../../doc/row');\nconst Column = require('../../doc/column');\n\nclass WorksheetReader extends EventEmitter {\n constructor({workbook, id, iterator, options}) {\n super();\n\n this.workbook = workbook;\n this.id = id;\n this.iterator = iterator;\n this.options = options || {};\n\n // and a name\n this.name = `Sheet${this.id}`;\n\n // column definitions\n this._columns = null;\n this._keys = {};\n\n // keep a record of dimensions\n this._dimensions = new Dimensions();\n }\n\n // destroy - not a valid operation for a streaming writer\n // even though some streamers might be able to, it's a bad idea.\n destroy() {\n throw new Error('Invalid Operation: destroy');\n }\n\n // return the current dimensions of the writer\n get dimensions() {\n return this._dimensions;\n }\n\n // =========================================================================\n // Columns\n\n // get the current columns array.\n get columns() {\n return this._columns;\n }\n\n // get a single column by col number. If it doesn't exist, it and any gaps before it\n // are created.\n getColumn(c) {\n if (typeof c === 'string') {\n // if it matches a key'd column, return that\n const col = this._keys[c];\n if (col) {\n return col;\n }\n\n // otherise, assume letter\n c = colCache.l2n(c);\n }\n if (!this._columns) {\n this._columns = [];\n }\n if (c > this._columns.length) {\n let n = this._columns.length + 1;\n while (n <= c) {\n this._columns.push(new Column(this, n++));\n }\n }\n return this._columns[c - 1];\n }\n\n getColumnKey(key) {\n return this._keys[key];\n }\n\n setColumnKey(key, value) {\n this._keys[key] = value;\n }\n\n deleteColumnKey(key) {\n delete this._keys[key];\n }\n\n eachColumnKey(f) {\n _.each(this._keys, f);\n }\n\n async read() {\n try {\n for await (const events of this.parse()) {\n for (const {eventType, value} of events) {\n this.emit(eventType, value);\n }\n }\n this.emit('finished');\n } catch (error) {\n this.emit('error', error);\n }\n }\n\n async *[Symbol.asyncIterator]() {\n for await (const events of this.parse()) {\n for (const {eventType, value} of events) {\n if (eventType === 'row') {\n yield value;\n }\n }\n }\n }\n\n async *parse() {\n const {iterator, options} = this;\n let emitSheet = false;\n let emitHyperlinks = false;\n let hyperlinks = null;\n switch (options.worksheets) {\n case 'emit':\n emitSheet = true;\n break;\n case 'prep':\n break;\n default:\n break;\n }\n switch (options.hyperlinks) {\n case 'emit':\n emitHyperlinks = true;\n break;\n case 'cache':\n this.hyperlinks = hyperlinks = {};\n break;\n default:\n break;\n }\n if (!emitSheet && !emitHyperlinks && !hyperlinks) {\n return;\n }\n\n // references\n const {sharedStrings, styles, properties} = this.workbook;\n\n // xml position\n let inCols = false;\n let inRows = false;\n let inHyperlinks = false;\n\n // parse state\n let cols = null;\n let row = null;\n let c = null;\n let current = null;\n for await (const events of parseSax(iterator)) {\n const worksheetEvents = [];\n for (const {eventType, value} of events) {\n if (eventType === 'opentag') {\n const node = value;\n if (emitSheet) {\n switch (node.name) {\n case 'cols':\n inCols = true;\n cols = [];\n break;\n case 'sheetData':\n inRows = true;\n break;\n\n case 'col':\n if (inCols) {\n cols.push({\n min: parseInt(node.attributes.min, 10),\n max: parseInt(node.attributes.max, 10),\n width: parseFloat(node.attributes.width),\n styleId: parseInt(node.attributes.style || '0', 10),\n });\n }\n break;\n\n case 'row':\n if (inRows) {\n const r = parseInt(node.attributes.r, 10);\n row = new Row(this, r);\n if (node.attributes.ht) {\n row.height = parseFloat(node.attributes.ht);\n }\n if (node.attributes.s) {\n const styleId = parseInt(node.attributes.s, 10);\n const style = styles.getStyleModel(styleId);\n if (style) {\n row.style = style;\n }\n }\n }\n break;\n case 'c':\n if (row) {\n c = {\n ref: node.attributes.r,\n s: parseInt(node.attributes.s, 10),\n t: node.attributes.t,\n };\n }\n break;\n case 'f':\n if (c) {\n current = c.f = {text: ''};\n }\n break;\n case 'v':\n if (c) {\n current = c.v = {text: ''};\n }\n break;\n case 'is':\n case 't':\n if (c) {\n current = c.v = {text: ''};\n }\n break;\n case 'mergeCell':\n break;\n default:\n break;\n }\n }\n\n // =================================================================\n //\n if (emitHyperlinks || hyperlinks) {\n switch (node.name) {\n case 'hyperlinks':\n inHyperlinks = true;\n break;\n case 'hyperlink':\n if (inHyperlinks) {\n const hyperlink = {\n ref: node.attributes.ref,\n rId: node.attributes['r:id'],\n };\n if (emitHyperlinks) {\n worksheetEvents.push({eventType: 'hyperlink', value: hyperlink});\n } else {\n hyperlinks[hyperlink.ref] = hyperlink;\n }\n }\n break;\n default:\n break;\n }\n }\n } else if (eventType === 'text') {\n // only text data is for sheet values\n if (emitSheet) {\n if (current) {\n current.text += value;\n }\n }\n } else if (eventType === 'closetag') {\n const node = value;\n if (emitSheet) {\n switch (node.name) {\n case 'cols':\n inCols = false;\n this._columns = Column.fromModel(cols);\n break;\n case 'sheetData':\n inRows = false;\n break;\n\n case 'row':\n this._dimensions.expandRow(row);\n worksheetEvents.push({eventType: 'row', value: row});\n row = null;\n break;\n\n case 'c':\n if (row && c) {\n const address = colCache.decodeAddress(c.ref);\n const cell = row.getCell(address.col);\n if (c.s) {\n const style = styles.getStyleModel(c.s);\n if (style) {\n cell.style = style;\n }\n }\n\n if (c.f) {\n const cellValue = {\n formula: c.f.text,\n };\n if (c.v) {\n if (c.t === 'str') {\n cellValue.result = utils.xmlDecode(c.v.text);\n } else {\n cellValue.result = parseFloat(c.v.text);\n }\n }\n cell.value = cellValue;\n } else if (c.v) {\n switch (c.t) {\n case 's': {\n const index = parseInt(c.v.text, 10);\n if (sharedStrings) {\n cell.value = sharedStrings[index];\n } else {\n cell.value = {\n sharedString: index,\n };\n }\n break;\n }\n\n case 'inlineStr':\n case 'str':\n cell.value = utils.xmlDecode(c.v.text);\n break;\n\n case 'e':\n cell.value = {error: c.v.text};\n break;\n\n case 'b':\n cell.value = parseInt(c.v.text, 10) !== 0;\n break;\n\n default:\n if (utils.isDateFmt(cell.numFmt)) {\n cell.value = utils.excelToDate(\n parseFloat(c.v.text),\n properties.model && properties.model.date1904\n );\n } else {\n cell.value = parseFloat(c.v.text);\n }\n break;\n }\n }\n if (hyperlinks) {\n const hyperlink = hyperlinks[c.ref];\n if (hyperlink) {\n cell.text = cell.value;\n cell.value = undefined;\n cell.hyperlink = hyperlink;\n }\n }\n c = null;\n }\n break;\n default:\n break;\n }\n }\n if (emitHyperlinks || hyperlinks) {\n switch (node.name) {\n case 'hyperlinks':\n inHyperlinks = false;\n break;\n default:\n break;\n }\n }\n }\n }\n if (worksheetEvents.length > 0) {\n yield worksheetEvents;\n }\n }\n }\n}\n\nmodule.exports = WorksheetReader;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"worksheet-reader.js","names":["EventEmitter","require","parseSax","_","utils","colCache","Dimensions","Row","Column","WorksheetReader","constructor","_ref","workbook","id","iterator","options","name","_columns","_keys","_dimensions","destroy","Error","dimensions","columns","getColumn","c","col","l2n","length","n","push","getColumnKey","key","setColumnKey","value","deleteColumnKey","eachColumnKey","f","each","read","events","parse","eventType","emit","error","Symbol","asyncIterator","emitSheet","emitHyperlinks","hyperlinks","worksheets","sharedStrings","styles","properties","inCols","inRows","inHyperlinks","cols","row","current","worksheetEvents","node","min","parseInt","attributes","max","width","parseFloat","styleId","style","r","ht","height","s","getStyleModel","ref","t","text","v","hyperlink","rId","fromModel","expandRow","address","decodeAddress","cell","getCell","cellValue","formula","result","xmlDecode","index","sharedString","isDateFmt","numFmt","excelToDate","model","date1904","undefined","module","exports"],"sources":["../../../../lib/stream/xlsx/worksheet-reader.js"],"sourcesContent":["const {EventEmitter} = require('events');\nconst parseSax = require('../../utils/parse-sax');\n\nconst _ = require('../../utils/under-dash');\nconst utils = require('../../utils/utils');\nconst colCache = require('../../utils/col-cache');\nconst Dimensions = require('../../doc/range');\n\nconst Row = require('../../doc/row');\nconst Column = require('../../doc/column');\n\nclass WorksheetReader extends EventEmitter {\n constructor({workbook, id, iterator, options}) {\n super();\n\n this.workbook = workbook;\n this.id = id;\n this.iterator = iterator;\n this.options = options || {};\n\n // and a name\n this.name = `Sheet${this.id}`;\n\n // column definitions\n this._columns = null;\n this._keys = {};\n\n // keep a record of dimensions\n this._dimensions = new Dimensions();\n }\n\n // destroy - not a valid operation for a streaming writer\n // even though some streamers might be able to, it's a bad idea.\n destroy() {\n throw new Error('Invalid Operation: destroy');\n }\n\n // return the current dimensions of the writer\n get dimensions() {\n return this._dimensions;\n }\n\n // =========================================================================\n // Columns\n\n // get the current columns array.\n get columns() {\n return this._columns;\n }\n\n // get a single column by col number. If it doesn't exist, it and any gaps before it\n // are created.\n getColumn(c) {\n if (typeof c === 'string') {\n // if it matches a key'd column, return that\n const col = this._keys[c];\n if (col) {\n return col;\n }\n\n // otherise, assume letter\n c = colCache.l2n(c);\n }\n if (!this._columns) {\n this._columns = [];\n }\n if (c > this._columns.length) {\n let n = this._columns.length + 1;\n while (n <= c) {\n this._columns.push(new Column(this, n++));\n }\n }\n return this._columns[c - 1];\n }\n\n getColumnKey(key) {\n return this._keys[key];\n }\n\n setColumnKey(key, value) {\n this._keys[key] = value;\n }\n\n deleteColumnKey(key) {\n delete this._keys[key];\n }\n\n eachColumnKey(f) {\n _.each(this._keys, f);\n }\n\n async read() {\n try {\n for await (const events of this.parse()) {\n for (const {eventType, value} of events) {\n this.emit(eventType, value);\n }\n }\n this.emit('finished');\n } catch (error) {\n this.emit('error', error);\n }\n }\n\n async *[Symbol.asyncIterator]() {\n for await (const events of this.parse()) {\n for (const {eventType, value} of events) {\n if (eventType === 'row') {\n yield value;\n }\n }\n }\n }\n\n async *parse() {\n const {iterator, options} = this;\n let emitSheet = false;\n let emitHyperlinks = false;\n let hyperlinks = null;\n switch (options.worksheets) {\n case 'emit':\n emitSheet = true;\n break;\n case 'prep':\n break;\n default:\n break;\n }\n switch (options.hyperlinks) {\n case 'emit':\n emitHyperlinks = true;\n break;\n case 'cache':\n this.hyperlinks = hyperlinks = {};\n break;\n default:\n break;\n }\n if (!emitSheet && !emitHyperlinks && !hyperlinks) {\n return;\n }\n\n // references\n const {sharedStrings, styles, properties} = this.workbook;\n\n // xml position\n let inCols = false;\n let inRows = false;\n let inHyperlinks = false;\n\n // parse state\n let cols = null;\n let row = null;\n let c = null;\n let current = null;\n for await (const events of parseSax(iterator)) {\n const worksheetEvents = [];\n for (const {eventType, value} of events) {\n if (eventType === 'opentag') {\n const node = value;\n if (emitSheet) {\n switch (node.name) {\n case 'cols':\n inCols = true;\n cols = [];\n break;\n case 'sheetData':\n inRows = true;\n break;\n\n case 'col':\n if (inCols) {\n cols.push({\n min: parseInt(node.attributes.min, 10),\n max: parseInt(node.attributes.max, 10),\n width: parseFloat(node.attributes.width),\n styleId: parseInt(node.attributes.style || '0', 10),\n });\n }\n break;\n\n case 'row':\n if (inRows) {\n const r = parseInt(node.attributes.r, 10);\n row = new Row(this, r);\n if (node.attributes.ht) {\n row.height = parseFloat(node.attributes.ht);\n }\n if (node.attributes.s) {\n const styleId = parseInt(node.attributes.s, 10);\n const style = styles.getStyleModel(styleId);\n if (style) {\n row.style = style;\n }\n }\n }\n break;\n case 'c':\n if (row) {\n c = {\n ref: node.attributes.r,\n s: parseInt(node.attributes.s, 10),\n t: node.attributes.t,\n };\n }\n break;\n case 'f':\n if (c) {\n current = c.f = {text: ''};\n }\n break;\n case 'v':\n if (c) {\n current = c.v = {text: ''};\n }\n break;\n case 'is':\n case 't':\n if (c) {\n current = c.v = {text: ''};\n }\n break;\n case 'mergeCell':\n break;\n default:\n break;\n }\n }\n\n // =================================================================\n //\n if (emitHyperlinks || hyperlinks) {\n switch (node.name) {\n case 'hyperlinks':\n inHyperlinks = true;\n break;\n case 'hyperlink':\n if (inHyperlinks) {\n const hyperlink = {\n ref: node.attributes.ref,\n rId: node.attributes['r:id'],\n };\n if (emitHyperlinks) {\n worksheetEvents.push({eventType: 'hyperlink', value: hyperlink});\n } else {\n hyperlinks[hyperlink.ref] = hyperlink;\n }\n }\n break;\n default:\n break;\n }\n }\n } else if (eventType === 'text') {\n // only text data is for sheet values\n if (emitSheet) {\n if (current) {\n current.text += value;\n }\n }\n } else if (eventType === 'closetag') {\n const node = value;\n if (emitSheet) {\n switch (node.name) {\n case 'cols':\n inCols = false;\n this._columns = Column.fromModel(cols);\n break;\n case 'sheetData':\n inRows = false;\n break;\n\n case 'row':\n this._dimensions.expandRow(row);\n worksheetEvents.push({eventType: 'row', value: row});\n row = null;\n break;\n\n case 'c':\n if (row && c) {\n const address = colCache.decodeAddress(c.ref);\n const cell = row.getCell(address.col);\n if (c.s) {\n const style = styles.getStyleModel(c.s);\n if (style) {\n cell.style = style;\n }\n }\n\n if (c.f) {\n const cellValue = {\n formula: c.f.text,\n };\n if (c.v) {\n if (c.t === 'str') {\n cellValue.result = utils.xmlDecode(c.v.text);\n } else {\n cellValue.result = parseFloat(c.v.text);\n }\n }\n cell.value = cellValue;\n } else if (c.v) {\n switch (c.t) {\n case 's': {\n const index = parseInt(c.v.text, 10);\n if (sharedStrings) {\n cell.value = sharedStrings[index];\n } else {\n cell.value = {\n sharedString: index,\n };\n }\n break;\n }\n\n case 'inlineStr':\n case 'str':\n cell.value = utils.xmlDecode(c.v.text);\n break;\n\n case 'e':\n cell.value = {error: c.v.text};\n break;\n\n case 'b':\n cell.value = parseInt(c.v.text, 10) !== 0;\n break;\n\n default:\n if (utils.isDateFmt(cell.numFmt)) {\n cell.value = utils.excelToDate(\n parseFloat(c.v.text),\n properties.model && properties.model.date1904\n );\n } else {\n cell.value = parseFloat(c.v.text);\n }\n break;\n }\n }\n if (hyperlinks) {\n const hyperlink = hyperlinks[c.ref];\n if (hyperlink) {\n cell.text = cell.value;\n cell.value = undefined;\n cell.hyperlink = hyperlink;\n }\n }\n c = null;\n }\n break;\n default:\n break;\n }\n }\n if (emitHyperlinks || hyperlinks) {\n switch (node.name) {\n case 'hyperlinks':\n inHyperlinks = false;\n break;\n default:\n break;\n }\n }\n }\n }\n if (worksheetEvents.length > 0) {\n yield worksheetEvents;\n }\n }\n }\n}\n\nmodule.exports = WorksheetReader;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
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
3
|
const _ = require('../../utils/under-dash');
|
|
9
4
|
const RelType = require('../../xlsx/rel-type');
|
|
10
5
|
const colCache = require('../../utils/col-cache');
|
|
@@ -76,7 +71,7 @@ class WorksheetWriter {
|
|
|
76
71
|
this.id = options.id;
|
|
77
72
|
|
|
78
73
|
// and a name
|
|
79
|
-
this.name = options.name ||
|
|
74
|
+
this.name = options.name || `Sheet${this.id}`;
|
|
80
75
|
|
|
81
76
|
// add a state
|
|
82
77
|
this.state = options.state || 'visible';
|
|
@@ -195,7 +190,7 @@ class WorksheetWriter {
|
|
|
195
190
|
get stream() {
|
|
196
191
|
if (!this._stream) {
|
|
197
192
|
// eslint-disable-next-line no-underscore-dangle
|
|
198
|
-
this._stream = this._workbook._openStream(
|
|
193
|
+
this._stream = this._workbook._openStream(`/xl/worksheets/sheet${this.id}.xml`);
|
|
199
194
|
|
|
200
195
|
// pause stream to prevent 'data' events
|
|
201
196
|
this._stream.pause();
|
|
@@ -579,9 +574,9 @@ class WorksheetWriter {
|
|
|
579
574
|
_writeMergeCells() {
|
|
580
575
|
if (this._merges.length) {
|
|
581
576
|
xmlBuffer.reset();
|
|
582
|
-
xmlBuffer.addText(
|
|
577
|
+
xmlBuffer.addText(`<mergeCells count="${this._merges.length}">`);
|
|
583
578
|
this._merges.forEach(merge => {
|
|
584
|
-
xmlBuffer.addText(
|
|
579
|
+
xmlBuffer.addText(`<mergeCell ref="${merge}"/>`);
|
|
585
580
|
});
|
|
586
581
|
xmlBuffer.addText('</mergeCells>');
|
|
587
582
|
this.stream.write(xmlBuffer);
|
|
@@ -624,12 +619,13 @@ class WorksheetWriter {
|
|
|
624
619
|
if (this._background.imageId !== undefined) {
|
|
625
620
|
const image = this._workbook.getImage(this._background.imageId);
|
|
626
621
|
const pictureId = this._sheetRelsWriter.addMedia({
|
|
627
|
-
Target:
|
|
622
|
+
Target: `../media/${image.name}`,
|
|
628
623
|
Type: RelType.Image
|
|
629
624
|
});
|
|
630
|
-
this._background =
|
|
625
|
+
this._background = {
|
|
626
|
+
...this._background,
|
|
631
627
|
rId: pictureId
|
|
632
|
-
}
|
|
628
|
+
};
|
|
633
629
|
}
|
|
634
630
|
this.stream.write(xform.picture.toXml({
|
|
635
631
|
rId: this._background.rId
|
|
@@ -639,7 +635,7 @@ class WorksheetWriter {
|
|
|
639
635
|
_writeLegacyData() {
|
|
640
636
|
if (this.hasComments) {
|
|
641
637
|
xmlBuffer.reset();
|
|
642
|
-
xmlBuffer.addText(
|
|
638
|
+
xmlBuffer.addText(`<legacyDrawing r:id="${this._sheetCommentsWriter.vmlRelId}"/>`);
|
|
643
639
|
this.stream.write(xmlBuffer);
|
|
644
640
|
}
|
|
645
641
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worksheet-writer.js","names":["_","require","RelType","colCache","Encryptor","Dimensions","StringBuf","Row","Column","SheetRelsWriter","SheetCommentsWriter","DataValidations","xmlBuffer","ListXform","DataValidationsXform","SheetPropertiesXform","SheetFormatPropertiesXform","ColXform","RowXform","HyperlinkXform","SheetViewXform","SheetProtectionXform","PageMarginsXform","PageSetupXform","AutoFilterXform","PictureXform","ConditionalFormattingsXform","HeaderFooterXform","RowBreaksXform","xform","dataValidations","sheetProperties","sheetFormatProperties","columns","tag","length","childXform","row","hyperlinks","sheetViews","sheetProtection","pageMargins","pageSeteup","autoFilter","picture","conditionalFormattings","headerFooter","rowBreaks","WorksheetWriter","constructor","options","id","name","concat","state","_rows","_columns","_keys","_merges","add","_sheetRelsWriter","_sheetCommentsWriter","_dimensions","_rowZero","committed","_formulae","_siFormulae","conditionalFormatting","properties","Object","assign","defaultRowHeight","dyDescent","outlineLevelCol","outlineLevelRow","differentFirst","differentOddEven","oddHeader","oddFooter","evenHeader","evenFooter","firstHeader","firstFooter","pageSetup","margins","left","right","top","bottom","header","footer","orientation","horizontalDpi","verticalDpi","fitToPage","fitToWidth","fitToHeight","scale","pageOrder","blackAndWhite","draft","cellComments","errors","paperSize","undefined","showRowColHeaders","showGridLines","horizontalCentered","verticalCentered","colBreaks","useSharedStrings","_workbook","workbook","hasComments","_views","views","_media","_writeOpenWorksheet","startedData","stream","_stream","_openStream","pause","destroy","Error","commit","forEach","cRow","_writeRow","_writeOpenSheetData","_writeCloseSheetData","_writeAutoFilter","_writeMergeCells","_writeHyperlinks","_writeConditionalFormatting","_writeDataValidations","_writeSheetProtection","_writePageMargins","_writePageSetup","_writeBackground","_writeHeaderFooter","_writeRowBreaks","_writeLegacyData","_writeCloseWorksheet","end","dimensions","value","_headerRowCount","reduce","pv","cv","headerCount","headers","Math","max","count","defn","column","push","getColumnKey","key","setColumnKey","deleteColumnKey","eachColumnKey","f","each","getColumn","c","col","l2n","n","_nextRow","eachRow","iteratee","includeEmpty","i","getRow","hasValues","number","_commitRow","found","shift","lastRow","findRow","rowNumber","index","addRow","values","findCell","r","address","getAddress","getCell","getCellEx","mergeCells","_len","arguments","cells","Array","_key","merge","intersects","master","j","addConditionalFormatting","cf","removeConditionalFormatting","filter","splice","Function","addBackgroundImage","imageId","_background","getBackgroundImageId","protect","password","Promise","resolve","sheet","spinCount","Number","isFinite","round","algorithmName","saltValue","randomBytes","toString","hashValue","convertPasswordToHash","unprotect","_write","text","reset","addText","write","_writeSheetProperties","xmlBuf","sheetPropertiesModel","outlineProperties","tabColor","toXml","_writeSheetFormatProperties","sheetFormatPropertiesModel","defaultColWidth","_writeColumns","cols","toModel","prepare","styles","height","model","sharedStrings","hyperlinksProxy","merges","formulae","siFormulae","comments","addComments","_hyperlinks","image","getImage","pictureId","addMedia","Target","Type","Image","_objectSpread","rId","vmlRelId","_writeDimensions","module","exports"],"sources":["../../../../lib/stream/xlsx/worksheet-writer.js"],"sourcesContent":["const _ = require('../../utils/under-dash');\n\nconst RelType = require('../../xlsx/rel-type');\n\nconst colCache = require('../../utils/col-cache');\nconst Encryptor = require('../../utils/encryptor');\nconst Dimensions = require('../../doc/range');\nconst StringBuf = require('../../utils/string-buf');\n\nconst Row = require('../../doc/row');\nconst Column = require('../../doc/column');\n\nconst SheetRelsWriter = require('./sheet-rels-writer');\nconst SheetCommentsWriter = require('./sheet-comments-writer');\nconst DataValidations = require('../../doc/data-validations');\n\nconst xmlBuffer = new StringBuf();\n\n// ============================================================================================\n// Xforms\nconst ListXform = require('../../xlsx/xform/list-xform');\nconst DataValidationsXform = require('../../xlsx/xform/sheet/data-validations-xform');\nconst SheetPropertiesXform = require('../../xlsx/xform/sheet/sheet-properties-xform');\nconst SheetFormatPropertiesXform = require('../../xlsx/xform/sheet/sheet-format-properties-xform');\nconst ColXform = require('../../xlsx/xform/sheet/col-xform');\nconst RowXform = require('../../xlsx/xform/sheet/row-xform');\nconst HyperlinkXform = require('../../xlsx/xform/sheet/hyperlink-xform');\nconst SheetViewXform = require('../../xlsx/xform/sheet/sheet-view-xform');\nconst SheetProtectionXform = require('../../xlsx/xform/sheet/sheet-protection-xform');\nconst PageMarginsXform = require('../../xlsx/xform/sheet/page-margins-xform');\nconst PageSetupXform = require('../../xlsx/xform/sheet/page-setup-xform');\nconst AutoFilterXform = require('../../xlsx/xform/sheet/auto-filter-xform');\nconst PictureXform = require('../../xlsx/xform/sheet/picture-xform');\nconst ConditionalFormattingsXform = require('../../xlsx/xform/sheet/cf/conditional-formattings-xform');\nconst HeaderFooterXform = require('../../xlsx/xform/sheet/header-footer-xform');\nconst RowBreaksXform = require('../../xlsx/xform/sheet/row-breaks-xform');\n\n// since prepare and render are functional, we can use singletons\nconst xform = {\n dataValidations: new DataValidationsXform(),\n sheetProperties: new SheetPropertiesXform(),\n sheetFormatProperties: new SheetFormatPropertiesXform(),\n columns: new ListXform({tag: 'cols', length: false, childXform: new ColXform()}),\n row: new RowXform(),\n hyperlinks: new ListXform({tag: 'hyperlinks', length: false, childXform: new HyperlinkXform()}),\n sheetViews: new ListXform({tag: 'sheetViews', length: false, childXform: new SheetViewXform()}),\n sheetProtection: new SheetProtectionXform(),\n pageMargins: new PageMarginsXform(),\n pageSeteup: new PageSetupXform(),\n autoFilter: new AutoFilterXform(),\n picture: new PictureXform(),\n conditionalFormattings: new ConditionalFormattingsXform(),\n headerFooter: new HeaderFooterXform(),\n rowBreaks: new RowBreaksXform(),\n};\n\n// ============================================================================================\n\nclass WorksheetWriter {\n constructor(options) {\n // in a workbook, each sheet will have a number\n this.id = options.id;\n\n // and a name\n this.name = options.name || `Sheet${this.id}`;\n\n // add a state\n this.state = options.state || 'visible';\n\n // rows are stored here while they need to be worked on.\n // when they are committed, they will be deleted.\n this._rows = [];\n\n // column definitions\n this._columns = null;\n\n // column keys (addRow convenience): key ==> this._columns index\n this._keys = {};\n\n // keep a record of all row and column pageBreaks\n this._merges = [];\n this._merges.add = function() {}; // ignore cell instruction\n\n // keep record of all hyperlinks\n this._sheetRelsWriter = new SheetRelsWriter(options);\n\n this._sheetCommentsWriter = new SheetCommentsWriter(this, this._sheetRelsWriter, options);\n\n // keep a record of dimensions\n this._dimensions = new Dimensions();\n\n // first uncommitted row\n this._rowZero = 1;\n\n // committed flag\n this.committed = false;\n\n // for data validations\n this.dataValidations = new DataValidations();\n\n // for sharing formulae\n this._formulae = {};\n this._siFormulae = 0;\n\n // keep a record of conditionalFormattings\n this.conditionalFormatting = [];\n\n // keep a record of all row and column pageBreaks\n this.rowBreaks = [];\n\n // for default row height, outline levels, etc\n this.properties = Object.assign(\n {},\n {\n defaultRowHeight: 15,\n dyDescent: 55,\n outlineLevelCol: 0,\n outlineLevelRow: 0,\n },\n options.properties\n );\n\n this.headerFooter = Object.assign(\n {},\n {\n differentFirst: false,\n differentOddEven: false,\n oddHeader: null,\n oddFooter: null,\n evenHeader: null,\n evenFooter: null,\n firstHeader: null,\n firstFooter: null,\n },\n options.headerFooter\n );\n\n // for all things printing\n this.pageSetup = Object.assign(\n {},\n {\n margins: {left: 0.7, right: 0.7, top: 0.75, bottom: 0.75, header: 0.3, footer: 0.3},\n orientation: 'portrait',\n horizontalDpi: 4294967295,\n verticalDpi: 4294967295,\n fitToPage: !!(\n options.pageSetup &&\n (options.pageSetup.fitToWidth || options.pageSetup.fitToHeight) &&\n !options.pageSetup.scale\n ),\n pageOrder: 'downThenOver',\n blackAndWhite: false,\n draft: false,\n cellComments: 'None',\n errors: 'displayed',\n scale: 100,\n fitToWidth: 1,\n fitToHeight: 1,\n paperSize: undefined,\n showRowColHeaders: false,\n showGridLines: false,\n horizontalCentered: false,\n verticalCentered: false,\n rowBreaks: null,\n colBreaks: null,\n },\n options.pageSetup\n );\n\n // using shared strings creates a smaller xlsx file but may use more memory\n this.useSharedStrings = options.useSharedStrings || false;\n\n this._workbook = options.workbook;\n\n this.hasComments = false;\n\n // views\n this._views = options.views || [];\n\n // auto filter\n this.autoFilter = options.autoFilter || null;\n\n this._media = [];\n\n // worksheet protection\n this.sheetProtection = null;\n\n // start writing to stream now\n this._writeOpenWorksheet();\n\n this.startedData = false;\n }\n\n get workbook() {\n return this._workbook;\n }\n\n get stream() {\n if (!this._stream) {\n // eslint-disable-next-line no-underscore-dangle\n this._stream = this._workbook._openStream(`/xl/worksheets/sheet${this.id}.xml`);\n\n // pause stream to prevent 'data' events\n this._stream.pause();\n }\n return this._stream;\n }\n\n // destroy - not a valid operation for a streaming writer\n // even though some streamers might be able to, it's a bad idea.\n destroy() {\n throw new Error('Invalid Operation: destroy');\n }\n\n commit() {\n if (this.committed) {\n return;\n }\n // commit all rows\n this._rows.forEach(cRow => {\n if (cRow) {\n // write the row to the stream\n this._writeRow(cRow);\n }\n });\n\n // we _cannot_ accept new rows from now on\n this._rows = null;\n\n if (!this.startedData) {\n this._writeOpenSheetData();\n }\n this._writeCloseSheetData();\n this._writeAutoFilter();\n this._writeMergeCells();\n\n // for some reason, Excel can't handle dimensions at the bottom of the file\n // this._writeDimensions();\n\n this._writeHyperlinks();\n this._writeConditionalFormatting();\n this._writeDataValidations();\n this._writeSheetProtection();\n this._writePageMargins();\n this._writePageSetup();\n this._writeBackground();\n this._writeHeaderFooter();\n this._writeRowBreaks();\n\n // Legacy Data tag for comments\n this._writeLegacyData();\n\n this._writeCloseWorksheet();\n // signal end of stream to workbook\n this.stream.end();\n\n this._sheetCommentsWriter.commit();\n // also commit the hyperlinks if any\n this._sheetRelsWriter.commit();\n\n this.committed = true;\n }\n\n // return the current dimensions of the writer\n get dimensions() {\n return this._dimensions;\n }\n\n get views() {\n return this._views;\n }\n\n // =========================================================================\n // Columns\n\n // get the current columns array.\n get columns() {\n return this._columns;\n }\n\n // set the columns from an array of column definitions.\n // Note: any headers defined will overwrite existing values.\n set columns(value) {\n // calculate max header row count\n this._headerRowCount = value.reduce((pv, cv) => {\n const headerCount = (cv.header && 1) || (cv.headers && cv.headers.length) || 0;\n return Math.max(pv, headerCount);\n }, 0);\n\n // construct Column objects\n let count = 1;\n const columns = (this._columns = []);\n value.forEach(defn => {\n const column = new Column(this, count++, false);\n columns.push(column);\n column.defn = defn;\n });\n }\n\n getColumnKey(key) {\n return this._keys[key];\n }\n\n setColumnKey(key, value) {\n this._keys[key] = value;\n }\n\n deleteColumnKey(key) {\n delete this._keys[key];\n }\n\n eachColumnKey(f) {\n _.each(this._keys, f);\n }\n\n // get a single column by col number. If it doesn't exist, it and any gaps before it\n // are created.\n getColumn(c) {\n if (typeof c === 'string') {\n // if it matches a key'd column, return that\n const col = this._keys[c];\n if (col) return col;\n\n // otherwise, assume letter\n c = colCache.l2n(c);\n }\n if (!this._columns) {\n this._columns = [];\n }\n if (c > this._columns.length) {\n let n = this._columns.length + 1;\n while (n <= c) {\n this._columns.push(new Column(this, n++));\n }\n }\n return this._columns[c - 1];\n }\n\n // =========================================================================\n // Rows\n get _nextRow() {\n return this._rowZero + this._rows.length;\n }\n\n // iterate over every uncommitted row in the worksheet, including maybe empty rows\n eachRow(options, iteratee) {\n if (!iteratee) {\n iteratee = options;\n options = undefined;\n }\n if (options && options.includeEmpty) {\n const n = this._nextRow;\n for (let i = this._rowZero; i < n; i++) {\n iteratee(this.getRow(i), i);\n }\n } else {\n this._rows.forEach(row => {\n if (row.hasValues) {\n iteratee(row, row.number);\n }\n });\n }\n }\n\n _commitRow(cRow) {\n // since rows must be written in order, we commit all rows up till and including cRow\n let found = false;\n while (this._rows.length && !found) {\n const row = this._rows.shift();\n this._rowZero++;\n if (row) {\n this._writeRow(row);\n found = row.number === cRow.number;\n this._rowZero = row.number + 1;\n }\n }\n }\n\n get lastRow() {\n // returns last uncommitted row\n if (this._rows.length) {\n return this._rows[this._rows.length - 1];\n }\n return undefined;\n }\n\n // find a row (if exists) by row number\n findRow(rowNumber) {\n const index = rowNumber - this._rowZero;\n return this._rows[index];\n }\n\n getRow(rowNumber) {\n const index = rowNumber - this._rowZero;\n\n // may fail if rows have been comitted\n if (index < 0) {\n throw new Error('Out of bounds: this row has been committed');\n }\n let row = this._rows[index];\n if (!row) {\n this._rows[index] = row = new Row(this, rowNumber);\n }\n return row;\n }\n\n addRow(value) {\n const row = new Row(this, this._nextRow);\n this._rows[row.number - this._rowZero] = row;\n row.values = value;\n return row;\n }\n\n // ================================================================================\n // Cells\n\n // returns the cell at [r,c] or address given by r. If not found, return undefined\n findCell(r, c) {\n const address = colCache.getAddress(r, c);\n const row = this.findRow(address.row);\n return row ? row.findCell(address.column) : undefined;\n }\n\n // return the cell at [r,c] or address given by r. If not found, create a new one.\n getCell(r, c) {\n const address = colCache.getAddress(r, c);\n const row = this.getRow(address.row);\n return row.getCellEx(address);\n }\n\n mergeCells(...cells) {\n // may fail if rows have been comitted\n const dimensions = new Dimensions(cells);\n\n // check cells aren't already merged\n this._merges.forEach(merge => {\n if (merge.intersects(dimensions)) {\n throw new Error('Cannot merge already merged cells');\n }\n });\n\n // apply merge\n const master = this.getCell(dimensions.top, dimensions.left);\n for (let i = dimensions.top; i <= dimensions.bottom; i++) {\n for (let j = dimensions.left; j <= dimensions.right; j++) {\n if (i > dimensions.top || j > dimensions.left) {\n this.getCell(i, j).merge(master);\n }\n }\n }\n\n // index merge\n this._merges.push(dimensions);\n }\n\n // ===========================================================================\n // Conditional Formatting\n addConditionalFormatting(cf) {\n this.conditionalFormatting.push(cf);\n }\n\n removeConditionalFormatting(filter) {\n if (typeof filter === 'number') {\n this.conditionalFormatting.splice(filter, 1);\n } else if (filter instanceof Function) {\n this.conditionalFormatting = this.conditionalFormatting.filter(filter);\n } else {\n this.conditionalFormatting = [];\n }\n }\n\n // =========================================================================\n\n addBackgroundImage(imageId) {\n this._background = {\n imageId,\n };\n }\n\n getBackgroundImageId() {\n return this._background && this._background.imageId;\n }\n\n // =========================================================================\n // Worksheet Protection\n protect(password, options) {\n // TODO: make this function truly async\n // perhaps marshal to worker thread or something\n return new Promise(resolve => {\n this.sheetProtection = {\n sheet: true,\n };\n if (options && 'spinCount' in options) {\n // force spinCount to be integer >= 0\n options.spinCount = Number.isFinite(options.spinCount) ? Math.round(Math.max(0, options.spinCount)) : 100000;\n }\n if (password) {\n this.sheetProtection.algorithmName = 'SHA-512';\n this.sheetProtection.saltValue = Encryptor.randomBytes(16).toString('base64');\n this.sheetProtection.spinCount = options && 'spinCount' in options ? options.spinCount : 100000; // allow user specified spinCount\n this.sheetProtection.hashValue = Encryptor.convertPasswordToHash(\n password,\n 'SHA512',\n this.sheetProtection.saltValue,\n this.sheetProtection.spinCount\n );\n }\n if (options) {\n this.sheetProtection = Object.assign(this.sheetProtection, options);\n if (!password && 'spinCount' in options) {\n delete this.sheetProtection.spinCount;\n }\n }\n resolve();\n });\n }\n\n unprotect() {\n this.sheetProtection = null;\n }\n\n // ================================================================================\n\n _write(text) {\n xmlBuffer.reset();\n xmlBuffer.addText(text);\n this.stream.write(xmlBuffer);\n }\n\n _writeSheetProperties(xmlBuf, properties, pageSetup) {\n const sheetPropertiesModel = {\n outlineProperties: properties && properties.outlineProperties,\n tabColor: properties && properties.tabColor,\n pageSetup:\n pageSetup && pageSetup.fitToPage\n ? {\n fitToPage: pageSetup.fitToPage,\n }\n : undefined,\n };\n\n xmlBuf.addText(xform.sheetProperties.toXml(sheetPropertiesModel));\n }\n\n _writeSheetFormatProperties(xmlBuf, properties) {\n const sheetFormatPropertiesModel = properties\n ? {\n defaultRowHeight: properties.defaultRowHeight,\n dyDescent: properties.dyDescent,\n outlineLevelCol: properties.outlineLevelCol,\n outlineLevelRow: properties.outlineLevelRow,\n }\n : undefined;\n if (properties.defaultColWidth) {\n sheetFormatPropertiesModel.defaultColWidth = properties.defaultColWidth;\n }\n\n xmlBuf.addText(xform.sheetFormatProperties.toXml(sheetFormatPropertiesModel));\n }\n\n _writeOpenWorksheet() {\n xmlBuffer.reset();\n\n xmlBuffer.addText('<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>');\n xmlBuffer.addText(\n '<worksheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\"' +\n ' xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"' +\n ' xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\"' +\n ' mc:Ignorable=\"x14ac\"' +\n ' xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\">'\n );\n\n this._writeSheetProperties(xmlBuffer, this.properties, this.pageSetup);\n\n xmlBuffer.addText(xform.sheetViews.toXml(this.views));\n\n this._writeSheetFormatProperties(xmlBuffer, this.properties);\n\n this.stream.write(xmlBuffer);\n }\n\n _writeColumns() {\n const cols = Column.toModel(this.columns);\n if (cols) {\n xform.columns.prepare(cols, {styles: this._workbook.styles});\n this.stream.write(xform.columns.toXml(cols));\n }\n }\n\n _writeOpenSheetData() {\n this._write('<sheetData>');\n }\n\n _writeRow(row) {\n if (!this.startedData) {\n this._writeColumns();\n this._writeOpenSheetData();\n this.startedData = true;\n }\n\n if (row.hasValues || row.height) {\n const {model} = row;\n const options = {\n styles: this._workbook.styles,\n sharedStrings: this.useSharedStrings ? this._workbook.sharedStrings : undefined,\n hyperlinks: this._sheetRelsWriter.hyperlinksProxy,\n merges: this._merges,\n formulae: this._formulae,\n siFormulae: this._siFormulae,\n comments: [],\n };\n xform.row.prepare(model, options);\n this.stream.write(xform.row.toXml(model));\n\n if (options.comments.length) {\n this.hasComments = true;\n this._sheetCommentsWriter.addComments(options.comments);\n }\n }\n }\n\n _writeCloseSheetData() {\n this._write('</sheetData>');\n }\n\n _writeMergeCells() {\n if (this._merges.length) {\n xmlBuffer.reset();\n xmlBuffer.addText(`<mergeCells count=\"${this._merges.length}\">`);\n this._merges.forEach(merge => {\n xmlBuffer.addText(`<mergeCell ref=\"${merge}\"/>`);\n });\n xmlBuffer.addText('</mergeCells>');\n\n this.stream.write(xmlBuffer);\n }\n }\n\n _writeHyperlinks() {\n // eslint-disable-next-line no-underscore-dangle\n this.stream.write(xform.hyperlinks.toXml(this._sheetRelsWriter._hyperlinks));\n }\n\n _writeConditionalFormatting() {\n const options = {\n styles: this._workbook.styles,\n };\n xform.conditionalFormattings.prepare(this.conditionalFormatting, options);\n this.stream.write(xform.conditionalFormattings.toXml(this.conditionalFormatting));\n }\n\n _writeRowBreaks() {\n this.stream.write(xform.rowBreaks.toXml(this.rowBreaks));\n }\n\n _writeDataValidations() {\n this.stream.write(xform.dataValidations.toXml(this.dataValidations.model));\n }\n\n _writeSheetProtection() {\n this.stream.write(xform.sheetProtection.toXml(this.sheetProtection));\n }\n\n _writePageMargins() {\n this.stream.write(xform.pageMargins.toXml(this.pageSetup.margins));\n }\n\n _writePageSetup() {\n this.stream.write(xform.pageSeteup.toXml(this.pageSetup));\n }\n\n _writeHeaderFooter() {\n this.stream.write(xform.headerFooter.toXml(this.headerFooter));\n }\n\n _writeAutoFilter() {\n this.stream.write(xform.autoFilter.toXml(this.autoFilter));\n }\n\n _writeBackground() {\n if (this._background) {\n if (this._background.imageId !== undefined) {\n const image = this._workbook.getImage(this._background.imageId);\n const pictureId = this._sheetRelsWriter.addMedia({\n Target: `../media/${image.name}`,\n Type: RelType.Image,\n });\n\n this._background = {\n ...this._background,\n rId: pictureId,\n };\n }\n this.stream.write(xform.picture.toXml({rId: this._background.rId}));\n }\n }\n\n _writeLegacyData() {\n if (this.hasComments) {\n xmlBuffer.reset();\n xmlBuffer.addText(`<legacyDrawing r:id=\"${this._sheetCommentsWriter.vmlRelId}\"/>`);\n this.stream.write(xmlBuffer);\n }\n }\n\n _writeDimensions() {\n // for some reason, Excel can't handle dimensions at the bottom of the file\n // and we don't know the dimensions until the commit, so don't write them.\n // this._write('<dimension ref=\"' + this._dimensions + '\"/>');\n }\n\n _writeCloseWorksheet() {\n this._write('</worksheet>');\n }\n}\n\nmodule.exports = WorksheetWriter;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"worksheet-writer.js","names":["_","require","RelType","colCache","Encryptor","Dimensions","StringBuf","Row","Column","SheetRelsWriter","SheetCommentsWriter","DataValidations","xmlBuffer","ListXform","DataValidationsXform","SheetPropertiesXform","SheetFormatPropertiesXform","ColXform","RowXform","HyperlinkXform","SheetViewXform","SheetProtectionXform","PageMarginsXform","PageSetupXform","AutoFilterXform","PictureXform","ConditionalFormattingsXform","HeaderFooterXform","RowBreaksXform","xform","dataValidations","sheetProperties","sheetFormatProperties","columns","tag","length","childXform","row","hyperlinks","sheetViews","sheetProtection","pageMargins","pageSeteup","autoFilter","picture","conditionalFormattings","headerFooter","rowBreaks","WorksheetWriter","constructor","options","id","name","state","_rows","_columns","_keys","_merges","add","_sheetRelsWriter","_sheetCommentsWriter","_dimensions","_rowZero","committed","_formulae","_siFormulae","conditionalFormatting","properties","Object","assign","defaultRowHeight","dyDescent","outlineLevelCol","outlineLevelRow","differentFirst","differentOddEven","oddHeader","oddFooter","evenHeader","evenFooter","firstHeader","firstFooter","pageSetup","margins","left","right","top","bottom","header","footer","orientation","horizontalDpi","verticalDpi","fitToPage","fitToWidth","fitToHeight","scale","pageOrder","blackAndWhite","draft","cellComments","errors","paperSize","undefined","showRowColHeaders","showGridLines","horizontalCentered","verticalCentered","colBreaks","useSharedStrings","_workbook","workbook","hasComments","_views","views","_media","_writeOpenWorksheet","startedData","stream","_stream","_openStream","pause","destroy","Error","commit","forEach","cRow","_writeRow","_writeOpenSheetData","_writeCloseSheetData","_writeAutoFilter","_writeMergeCells","_writeHyperlinks","_writeConditionalFormatting","_writeDataValidations","_writeSheetProtection","_writePageMargins","_writePageSetup","_writeBackground","_writeHeaderFooter","_writeRowBreaks","_writeLegacyData","_writeCloseWorksheet","end","dimensions","value","_headerRowCount","reduce","pv","cv","headerCount","headers","Math","max","count","defn","column","push","getColumnKey","key","setColumnKey","deleteColumnKey","eachColumnKey","f","each","getColumn","c","col","l2n","n","_nextRow","eachRow","iteratee","includeEmpty","i","getRow","hasValues","number","_commitRow","found","shift","lastRow","findRow","rowNumber","index","addRow","values","findCell","r","address","getAddress","getCell","getCellEx","mergeCells","_len","arguments","cells","Array","_key","merge","intersects","master","j","addConditionalFormatting","cf","removeConditionalFormatting","filter","splice","Function","addBackgroundImage","imageId","_background","getBackgroundImageId","protect","password","Promise","resolve","sheet","spinCount","Number","isFinite","round","algorithmName","saltValue","randomBytes","toString","hashValue","convertPasswordToHash","unprotect","_write","text","reset","addText","write","_writeSheetProperties","xmlBuf","sheetPropertiesModel","outlineProperties","tabColor","toXml","_writeSheetFormatProperties","sheetFormatPropertiesModel","defaultColWidth","_writeColumns","cols","toModel","prepare","styles","height","model","sharedStrings","hyperlinksProxy","merges","formulae","siFormulae","comments","addComments","_hyperlinks","image","getImage","pictureId","addMedia","Target","Type","Image","rId","vmlRelId","_writeDimensions","module","exports"],"sources":["../../../../lib/stream/xlsx/worksheet-writer.js"],"sourcesContent":["const _ = require('../../utils/under-dash');\n\nconst RelType = require('../../xlsx/rel-type');\n\nconst colCache = require('../../utils/col-cache');\nconst Encryptor = require('../../utils/encryptor');\nconst Dimensions = require('../../doc/range');\nconst StringBuf = require('../../utils/string-buf');\n\nconst Row = require('../../doc/row');\nconst Column = require('../../doc/column');\n\nconst SheetRelsWriter = require('./sheet-rels-writer');\nconst SheetCommentsWriter = require('./sheet-comments-writer');\nconst DataValidations = require('../../doc/data-validations');\n\nconst xmlBuffer = new StringBuf();\n\n// ============================================================================================\n// Xforms\nconst ListXform = require('../../xlsx/xform/list-xform');\nconst DataValidationsXform = require('../../xlsx/xform/sheet/data-validations-xform');\nconst SheetPropertiesXform = require('../../xlsx/xform/sheet/sheet-properties-xform');\nconst SheetFormatPropertiesXform = require('../../xlsx/xform/sheet/sheet-format-properties-xform');\nconst ColXform = require('../../xlsx/xform/sheet/col-xform');\nconst RowXform = require('../../xlsx/xform/sheet/row-xform');\nconst HyperlinkXform = require('../../xlsx/xform/sheet/hyperlink-xform');\nconst SheetViewXform = require('../../xlsx/xform/sheet/sheet-view-xform');\nconst SheetProtectionXform = require('../../xlsx/xform/sheet/sheet-protection-xform');\nconst PageMarginsXform = require('../../xlsx/xform/sheet/page-margins-xform');\nconst PageSetupXform = require('../../xlsx/xform/sheet/page-setup-xform');\nconst AutoFilterXform = require('../../xlsx/xform/sheet/auto-filter-xform');\nconst PictureXform = require('../../xlsx/xform/sheet/picture-xform');\nconst ConditionalFormattingsXform = require('../../xlsx/xform/sheet/cf/conditional-formattings-xform');\nconst HeaderFooterXform = require('../../xlsx/xform/sheet/header-footer-xform');\nconst RowBreaksXform = require('../../xlsx/xform/sheet/row-breaks-xform');\n\n// since prepare and render are functional, we can use singletons\nconst xform = {\n dataValidations: new DataValidationsXform(),\n sheetProperties: new SheetPropertiesXform(),\n sheetFormatProperties: new SheetFormatPropertiesXform(),\n columns: new ListXform({tag: 'cols', length: false, childXform: new ColXform()}),\n row: new RowXform(),\n hyperlinks: new ListXform({tag: 'hyperlinks', length: false, childXform: new HyperlinkXform()}),\n sheetViews: new ListXform({tag: 'sheetViews', length: false, childXform: new SheetViewXform()}),\n sheetProtection: new SheetProtectionXform(),\n pageMargins: new PageMarginsXform(),\n pageSeteup: new PageSetupXform(),\n autoFilter: new AutoFilterXform(),\n picture: new PictureXform(),\n conditionalFormattings: new ConditionalFormattingsXform(),\n headerFooter: new HeaderFooterXform(),\n rowBreaks: new RowBreaksXform(),\n};\n\n// ============================================================================================\n\nclass WorksheetWriter {\n constructor(options) {\n // in a workbook, each sheet will have a number\n this.id = options.id;\n\n // and a name\n this.name = options.name || `Sheet${this.id}`;\n\n // add a state\n this.state = options.state || 'visible';\n\n // rows are stored here while they need to be worked on.\n // when they are committed, they will be deleted.\n this._rows = [];\n\n // column definitions\n this._columns = null;\n\n // column keys (addRow convenience): key ==> this._columns index\n this._keys = {};\n\n // keep a record of all row and column pageBreaks\n this._merges = [];\n this._merges.add = function() {}; // ignore cell instruction\n\n // keep record of all hyperlinks\n this._sheetRelsWriter = new SheetRelsWriter(options);\n\n this._sheetCommentsWriter = new SheetCommentsWriter(this, this._sheetRelsWriter, options);\n\n // keep a record of dimensions\n this._dimensions = new Dimensions();\n\n // first uncommitted row\n this._rowZero = 1;\n\n // committed flag\n this.committed = false;\n\n // for data validations\n this.dataValidations = new DataValidations();\n\n // for sharing formulae\n this._formulae = {};\n this._siFormulae = 0;\n\n // keep a record of conditionalFormattings\n this.conditionalFormatting = [];\n\n // keep a record of all row and column pageBreaks\n this.rowBreaks = [];\n\n // for default row height, outline levels, etc\n this.properties = Object.assign(\n {},\n {\n defaultRowHeight: 15,\n dyDescent: 55,\n outlineLevelCol: 0,\n outlineLevelRow: 0,\n },\n options.properties\n );\n\n this.headerFooter = Object.assign(\n {},\n {\n differentFirst: false,\n differentOddEven: false,\n oddHeader: null,\n oddFooter: null,\n evenHeader: null,\n evenFooter: null,\n firstHeader: null,\n firstFooter: null,\n },\n options.headerFooter\n );\n\n // for all things printing\n this.pageSetup = Object.assign(\n {},\n {\n margins: {left: 0.7, right: 0.7, top: 0.75, bottom: 0.75, header: 0.3, footer: 0.3},\n orientation: 'portrait',\n horizontalDpi: 4294967295,\n verticalDpi: 4294967295,\n fitToPage: !!(\n options.pageSetup &&\n (options.pageSetup.fitToWidth || options.pageSetup.fitToHeight) &&\n !options.pageSetup.scale\n ),\n pageOrder: 'downThenOver',\n blackAndWhite: false,\n draft: false,\n cellComments: 'None',\n errors: 'displayed',\n scale: 100,\n fitToWidth: 1,\n fitToHeight: 1,\n paperSize: undefined,\n showRowColHeaders: false,\n showGridLines: false,\n horizontalCentered: false,\n verticalCentered: false,\n rowBreaks: null,\n colBreaks: null,\n },\n options.pageSetup\n );\n\n // using shared strings creates a smaller xlsx file but may use more memory\n this.useSharedStrings = options.useSharedStrings || false;\n\n this._workbook = options.workbook;\n\n this.hasComments = false;\n\n // views\n this._views = options.views || [];\n\n // auto filter\n this.autoFilter = options.autoFilter || null;\n\n this._media = [];\n\n // worksheet protection\n this.sheetProtection = null;\n\n // start writing to stream now\n this._writeOpenWorksheet();\n\n this.startedData = false;\n }\n\n get workbook() {\n return this._workbook;\n }\n\n get stream() {\n if (!this._stream) {\n // eslint-disable-next-line no-underscore-dangle\n this._stream = this._workbook._openStream(`/xl/worksheets/sheet${this.id}.xml`);\n\n // pause stream to prevent 'data' events\n this._stream.pause();\n }\n return this._stream;\n }\n\n // destroy - not a valid operation for a streaming writer\n // even though some streamers might be able to, it's a bad idea.\n destroy() {\n throw new Error('Invalid Operation: destroy');\n }\n\n commit() {\n if (this.committed) {\n return;\n }\n // commit all rows\n this._rows.forEach(cRow => {\n if (cRow) {\n // write the row to the stream\n this._writeRow(cRow);\n }\n });\n\n // we _cannot_ accept new rows from now on\n this._rows = null;\n\n if (!this.startedData) {\n this._writeOpenSheetData();\n }\n this._writeCloseSheetData();\n this._writeAutoFilter();\n this._writeMergeCells();\n\n // for some reason, Excel can't handle dimensions at the bottom of the file\n // this._writeDimensions();\n\n this._writeHyperlinks();\n this._writeConditionalFormatting();\n this._writeDataValidations();\n this._writeSheetProtection();\n this._writePageMargins();\n this._writePageSetup();\n this._writeBackground();\n this._writeHeaderFooter();\n this._writeRowBreaks();\n\n // Legacy Data tag for comments\n this._writeLegacyData();\n\n this._writeCloseWorksheet();\n // signal end of stream to workbook\n this.stream.end();\n\n this._sheetCommentsWriter.commit();\n // also commit the hyperlinks if any\n this._sheetRelsWriter.commit();\n\n this.committed = true;\n }\n\n // return the current dimensions of the writer\n get dimensions() {\n return this._dimensions;\n }\n\n get views() {\n return this._views;\n }\n\n // =========================================================================\n // Columns\n\n // get the current columns array.\n get columns() {\n return this._columns;\n }\n\n // set the columns from an array of column definitions.\n // Note: any headers defined will overwrite existing values.\n set columns(value) {\n // calculate max header row count\n this._headerRowCount = value.reduce((pv, cv) => {\n const headerCount = (cv.header && 1) || (cv.headers && cv.headers.length) || 0;\n return Math.max(pv, headerCount);\n }, 0);\n\n // construct Column objects\n let count = 1;\n const columns = (this._columns = []);\n value.forEach(defn => {\n const column = new Column(this, count++, false);\n columns.push(column);\n column.defn = defn;\n });\n }\n\n getColumnKey(key) {\n return this._keys[key];\n }\n\n setColumnKey(key, value) {\n this._keys[key] = value;\n }\n\n deleteColumnKey(key) {\n delete this._keys[key];\n }\n\n eachColumnKey(f) {\n _.each(this._keys, f);\n }\n\n // get a single column by col number. If it doesn't exist, it and any gaps before it\n // are created.\n getColumn(c) {\n if (typeof c === 'string') {\n // if it matches a key'd column, return that\n const col = this._keys[c];\n if (col) return col;\n\n // otherwise, assume letter\n c = colCache.l2n(c);\n }\n if (!this._columns) {\n this._columns = [];\n }\n if (c > this._columns.length) {\n let n = this._columns.length + 1;\n while (n <= c) {\n this._columns.push(new Column(this, n++));\n }\n }\n return this._columns[c - 1];\n }\n\n // =========================================================================\n // Rows\n get _nextRow() {\n return this._rowZero + this._rows.length;\n }\n\n // iterate over every uncommitted row in the worksheet, including maybe empty rows\n eachRow(options, iteratee) {\n if (!iteratee) {\n iteratee = options;\n options = undefined;\n }\n if (options && options.includeEmpty) {\n const n = this._nextRow;\n for (let i = this._rowZero; i < n; i++) {\n iteratee(this.getRow(i), i);\n }\n } else {\n this._rows.forEach(row => {\n if (row.hasValues) {\n iteratee(row, row.number);\n }\n });\n }\n }\n\n _commitRow(cRow) {\n // since rows must be written in order, we commit all rows up till and including cRow\n let found = false;\n while (this._rows.length && !found) {\n const row = this._rows.shift();\n this._rowZero++;\n if (row) {\n this._writeRow(row);\n found = row.number === cRow.number;\n this._rowZero = row.number + 1;\n }\n }\n }\n\n get lastRow() {\n // returns last uncommitted row\n if (this._rows.length) {\n return this._rows[this._rows.length - 1];\n }\n return undefined;\n }\n\n // find a row (if exists) by row number\n findRow(rowNumber) {\n const index = rowNumber - this._rowZero;\n return this._rows[index];\n }\n\n getRow(rowNumber) {\n const index = rowNumber - this._rowZero;\n\n // may fail if rows have been comitted\n if (index < 0) {\n throw new Error('Out of bounds: this row has been committed');\n }\n let row = this._rows[index];\n if (!row) {\n this._rows[index] = row = new Row(this, rowNumber);\n }\n return row;\n }\n\n addRow(value) {\n const row = new Row(this, this._nextRow);\n this._rows[row.number - this._rowZero] = row;\n row.values = value;\n return row;\n }\n\n // ================================================================================\n // Cells\n\n // returns the cell at [r,c] or address given by r. If not found, return undefined\n findCell(r, c) {\n const address = colCache.getAddress(r, c);\n const row = this.findRow(address.row);\n return row ? row.findCell(address.column) : undefined;\n }\n\n // return the cell at [r,c] or address given by r. If not found, create a new one.\n getCell(r, c) {\n const address = colCache.getAddress(r, c);\n const row = this.getRow(address.row);\n return row.getCellEx(address);\n }\n\n mergeCells(...cells) {\n // may fail if rows have been comitted\n const dimensions = new Dimensions(cells);\n\n // check cells aren't already merged\n this._merges.forEach(merge => {\n if (merge.intersects(dimensions)) {\n throw new Error('Cannot merge already merged cells');\n }\n });\n\n // apply merge\n const master = this.getCell(dimensions.top, dimensions.left);\n for (let i = dimensions.top; i <= dimensions.bottom; i++) {\n for (let j = dimensions.left; j <= dimensions.right; j++) {\n if (i > dimensions.top || j > dimensions.left) {\n this.getCell(i, j).merge(master);\n }\n }\n }\n\n // index merge\n this._merges.push(dimensions);\n }\n\n // ===========================================================================\n // Conditional Formatting\n addConditionalFormatting(cf) {\n this.conditionalFormatting.push(cf);\n }\n\n removeConditionalFormatting(filter) {\n if (typeof filter === 'number') {\n this.conditionalFormatting.splice(filter, 1);\n } else if (filter instanceof Function) {\n this.conditionalFormatting = this.conditionalFormatting.filter(filter);\n } else {\n this.conditionalFormatting = [];\n }\n }\n\n // =========================================================================\n\n addBackgroundImage(imageId) {\n this._background = {\n imageId,\n };\n }\n\n getBackgroundImageId() {\n return this._background && this._background.imageId;\n }\n\n // =========================================================================\n // Worksheet Protection\n protect(password, options) {\n // TODO: make this function truly async\n // perhaps marshal to worker thread or something\n return new Promise(resolve => {\n this.sheetProtection = {\n sheet: true,\n };\n if (options && 'spinCount' in options) {\n // force spinCount to be integer >= 0\n options.spinCount = Number.isFinite(options.spinCount) ? Math.round(Math.max(0, options.spinCount)) : 100000;\n }\n if (password) {\n this.sheetProtection.algorithmName = 'SHA-512';\n this.sheetProtection.saltValue = Encryptor.randomBytes(16).toString('base64');\n this.sheetProtection.spinCount = options && 'spinCount' in options ? options.spinCount : 100000; // allow user specified spinCount\n this.sheetProtection.hashValue = Encryptor.convertPasswordToHash(\n password,\n 'SHA512',\n this.sheetProtection.saltValue,\n this.sheetProtection.spinCount\n );\n }\n if (options) {\n this.sheetProtection = Object.assign(this.sheetProtection, options);\n if (!password && 'spinCount' in options) {\n delete this.sheetProtection.spinCount;\n }\n }\n resolve();\n });\n }\n\n unprotect() {\n this.sheetProtection = null;\n }\n\n // ================================================================================\n\n _write(text) {\n xmlBuffer.reset();\n xmlBuffer.addText(text);\n this.stream.write(xmlBuffer);\n }\n\n _writeSheetProperties(xmlBuf, properties, pageSetup) {\n const sheetPropertiesModel = {\n outlineProperties: properties && properties.outlineProperties,\n tabColor: properties && properties.tabColor,\n pageSetup:\n pageSetup && pageSetup.fitToPage\n ? {\n fitToPage: pageSetup.fitToPage,\n }\n : undefined,\n };\n\n xmlBuf.addText(xform.sheetProperties.toXml(sheetPropertiesModel));\n }\n\n _writeSheetFormatProperties(xmlBuf, properties) {\n const sheetFormatPropertiesModel = properties\n ? {\n defaultRowHeight: properties.defaultRowHeight,\n dyDescent: properties.dyDescent,\n outlineLevelCol: properties.outlineLevelCol,\n outlineLevelRow: properties.outlineLevelRow,\n }\n : undefined;\n if (properties.defaultColWidth) {\n sheetFormatPropertiesModel.defaultColWidth = properties.defaultColWidth;\n }\n\n xmlBuf.addText(xform.sheetFormatProperties.toXml(sheetFormatPropertiesModel));\n }\n\n _writeOpenWorksheet() {\n xmlBuffer.reset();\n\n xmlBuffer.addText('<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>');\n xmlBuffer.addText(\n '<worksheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\"' +\n ' xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"' +\n ' xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\"' +\n ' mc:Ignorable=\"x14ac\"' +\n ' xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\">'\n );\n\n this._writeSheetProperties(xmlBuffer, this.properties, this.pageSetup);\n\n xmlBuffer.addText(xform.sheetViews.toXml(this.views));\n\n this._writeSheetFormatProperties(xmlBuffer, this.properties);\n\n this.stream.write(xmlBuffer);\n }\n\n _writeColumns() {\n const cols = Column.toModel(this.columns);\n if (cols) {\n xform.columns.prepare(cols, {styles: this._workbook.styles});\n this.stream.write(xform.columns.toXml(cols));\n }\n }\n\n _writeOpenSheetData() {\n this._write('<sheetData>');\n }\n\n _writeRow(row) {\n if (!this.startedData) {\n this._writeColumns();\n this._writeOpenSheetData();\n this.startedData = true;\n }\n\n if (row.hasValues || row.height) {\n const {model} = row;\n const options = {\n styles: this._workbook.styles,\n sharedStrings: this.useSharedStrings ? this._workbook.sharedStrings : undefined,\n hyperlinks: this._sheetRelsWriter.hyperlinksProxy,\n merges: this._merges,\n formulae: this._formulae,\n siFormulae: this._siFormulae,\n comments: [],\n };\n xform.row.prepare(model, options);\n this.stream.write(xform.row.toXml(model));\n\n if (options.comments.length) {\n this.hasComments = true;\n this._sheetCommentsWriter.addComments(options.comments);\n }\n }\n }\n\n _writeCloseSheetData() {\n this._write('</sheetData>');\n }\n\n _writeMergeCells() {\n if (this._merges.length) {\n xmlBuffer.reset();\n xmlBuffer.addText(`<mergeCells count=\"${this._merges.length}\">`);\n this._merges.forEach(merge => {\n xmlBuffer.addText(`<mergeCell ref=\"${merge}\"/>`);\n });\n xmlBuffer.addText('</mergeCells>');\n\n this.stream.write(xmlBuffer);\n }\n }\n\n _writeHyperlinks() {\n // eslint-disable-next-line no-underscore-dangle\n this.stream.write(xform.hyperlinks.toXml(this._sheetRelsWriter._hyperlinks));\n }\n\n _writeConditionalFormatting() {\n const options = {\n styles: this._workbook.styles,\n };\n xform.conditionalFormattings.prepare(this.conditionalFormatting, options);\n this.stream.write(xform.conditionalFormattings.toXml(this.conditionalFormatting));\n }\n\n _writeRowBreaks() {\n this.stream.write(xform.rowBreaks.toXml(this.rowBreaks));\n }\n\n _writeDataValidations() {\n this.stream.write(xform.dataValidations.toXml(this.dataValidations.model));\n }\n\n _writeSheetProtection() {\n this.stream.write(xform.sheetProtection.toXml(this.sheetProtection));\n }\n\n _writePageMargins() {\n this.stream.write(xform.pageMargins.toXml(this.pageSetup.margins));\n }\n\n _writePageSetup() {\n this.stream.write(xform.pageSeteup.toXml(this.pageSetup));\n }\n\n _writeHeaderFooter() {\n this.stream.write(xform.headerFooter.toXml(this.headerFooter));\n }\n\n _writeAutoFilter() {\n this.stream.write(xform.autoFilter.toXml(this.autoFilter));\n }\n\n _writeBackground() {\n if (this._background) {\n if (this._background.imageId !== undefined) {\n const image = this._workbook.getImage(this._background.imageId);\n const pictureId = this._sheetRelsWriter.addMedia({\n Target: `../media/${image.name}`,\n Type: RelType.Image,\n });\n\n this._background = {\n ...this._background,\n rId: pictureId,\n };\n }\n this.stream.write(xform.picture.toXml({rId: this._background.rId}));\n }\n }\n\n _writeLegacyData() {\n if (this.hasComments) {\n xmlBuffer.reset();\n xmlBuffer.addText(`<legacyDrawing r:id=\"${this._sheetCommentsWriter.vmlRelId}\"/>`);\n this.stream.write(xmlBuffer);\n }\n }\n\n _writeDimensions() {\n // for some reason, Excel can't handle dimensions at the bottom of the file\n // and we don't know the dimensions until the commit, so don't write them.\n // this._write('<dimension ref=\"' + this._dimensions + '\"/>');\n }\n\n _writeCloseWorksheet() {\n this._write('</worksheet>');\n }\n}\n\nmodule.exports = WorksheetWriter;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
// eslint-disable-next-line
|
|
3
|
+
// eslint-disable-next-line n/no-unsupported-features/node-builtins
|
|
4
4
|
const textDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf-8');
|
|
5
5
|
function bufferToString(chunk) {
|
|
6
6
|
if (typeof chunk === 'string') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-buffer-decode.js","names":["textDecoder","TextDecoder","bufferToString","chunk","decode","toString","exports"],"sources":["../../../lib/utils/browser-buffer-decode.js"],"sourcesContent":["// eslint-disable-next-line
|
|
1
|
+
{"version":3,"file":"browser-buffer-decode.js","names":["textDecoder","TextDecoder","bufferToString","chunk","decode","toString","exports"],"sources":["../../../lib/utils/browser-buffer-decode.js"],"sourcesContent":["// eslint-disable-next-line n/no-unsupported-features/node-builtins\nconst textDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf-8');\n\nfunction bufferToString(chunk) {\n if (typeof chunk === 'string') {\n return chunk;\n }\n if (textDecoder) {\n return textDecoder.decode(chunk);\n }\n return chunk.toString();\n}\n\nexports.bufferToString = bufferToString;\n"],"mappings":";;AAAA;AACA,MAAMA,WAAW,GAAG,OAAOC,WAAW,KAAK,WAAW,GAAG,IAAI,GAAG,IAAIA,WAAW,CAAC,OAAO,CAAC;AAExF,SAASC,cAAcA,CAACC,KAAK,EAAE;EAC7B,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOA,KAAK;EACd;EACA,IAAIH,WAAW,EAAE;IACf,OAAOA,WAAW,CAACI,MAAM,CAACD,KAAK,CAAC;EAClC;EACA,OAAOA,KAAK,CAACE,QAAQ,CAAC,CAAC;AACzB;AAEAC,OAAO,CAACJ,cAAc,GAAGA,cAAc","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
// eslint-disable-next-line
|
|
3
|
+
// eslint-disable-next-line n/no-unsupported-features/node-builtins
|
|
4
4
|
const textEncoder = typeof TextEncoder === 'undefined' ? null : new TextEncoder('utf-8');
|
|
5
5
|
const {
|
|
6
6
|
Buffer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-buffer-encode.js","names":["textEncoder","TextEncoder","Buffer","require","stringToBuffer","str","from","encode","buffer","exports"],"sources":["../../../lib/utils/browser-buffer-encode.js"],"sourcesContent":["// eslint-disable-next-line
|
|
1
|
+
{"version":3,"file":"browser-buffer-encode.js","names":["textEncoder","TextEncoder","Buffer","require","stringToBuffer","str","from","encode","buffer","exports"],"sources":["../../../lib/utils/browser-buffer-encode.js"],"sourcesContent":["// eslint-disable-next-line n/no-unsupported-features/node-builtins\nconst textEncoder = typeof TextEncoder === 'undefined' ? null : new TextEncoder('utf-8');\nconst {Buffer} = require('buffer');\n\nfunction stringToBuffer(str) {\n if (typeof str !== 'string') {\n return str;\n }\n if (textEncoder) {\n return Buffer.from(textEncoder.encode(str).buffer);\n }\n return Buffer.from(str);\n}\n\nexports.stringToBuffer = stringToBuffer;\n"],"mappings":";;AAAA;AACA,MAAMA,WAAW,GAAG,OAAOC,WAAW,KAAK,WAAW,GAAG,IAAI,GAAG,IAAIA,WAAW,CAAC,OAAO,CAAC;AACxF,MAAM;EAACC;AAAM,CAAC,GAAGC,OAAO,CAAC,QAAQ,CAAC;AAElC,SAASC,cAAcA,CAACC,GAAG,EAAE;EAC3B,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;IAC3B,OAAOA,GAAG;EACZ;EACA,IAAIL,WAAW,EAAE;IACf,OAAOE,MAAM,CAACI,IAAI,CAACN,WAAW,CAACO,MAAM,CAACF,GAAG,CAAC,CAACG,MAAM,CAAC;EACpD;EACA,OAAON,MAAM,CAACI,IAAI,CAACD,GAAG,CAAC;AACzB;AAEAI,OAAO,CAACL,cAAc,GAAGA,cAAc","ignoreList":[]}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
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
3
|
const addressRegex = /^[A-Z]+\d+$/;
|
|
9
4
|
// =========================================================================
|
|
10
5
|
// Column Letter to Number conversion
|
|
@@ -74,13 +69,13 @@ const colCache = {
|
|
|
74
69
|
this._fill(l.length);
|
|
75
70
|
}
|
|
76
71
|
if (!this._l2n[l]) {
|
|
77
|
-
throw new Error(
|
|
72
|
+
throw new Error(`Out of bounds. Invalid column letter: ${l}`);
|
|
78
73
|
}
|
|
79
74
|
return this._l2n[l];
|
|
80
75
|
},
|
|
81
76
|
n2l(n) {
|
|
82
77
|
if (n < 1 || n > 16384) {
|
|
83
|
-
throw new Error(
|
|
78
|
+
throw new Error(`${n} is out of bounds. Excel supports columns from 1 to 16384`);
|
|
84
79
|
}
|
|
85
80
|
if (!this._n2l[n]) {
|
|
86
81
|
this._fill(this._level(n));
|
|
@@ -93,7 +88,7 @@ const colCache = {
|
|
|
93
88
|
// check if value looks like an address
|
|
94
89
|
validateAddress(value) {
|
|
95
90
|
if (!addressRegex.test(value)) {
|
|
96
|
-
throw new Error(
|
|
91
|
+
throw new Error(`Invalid Address: ${value}`);
|
|
97
92
|
}
|
|
98
93
|
return true;
|
|
99
94
|
},
|
|
@@ -134,7 +129,7 @@ const colCache = {
|
|
|
134
129
|
if (!hasCol) {
|
|
135
130
|
colNumber = undefined;
|
|
136
131
|
} else if (colNumber > 16384) {
|
|
137
|
-
throw new Error(
|
|
132
|
+
throw new Error(`Out of bounds. Invalid column letter: ${col}`);
|
|
138
133
|
}
|
|
139
134
|
if (!hasRow) {
|
|
140
135
|
rowNumber = undefined;
|
|
@@ -146,7 +141,7 @@ const colCache = {
|
|
|
146
141
|
address: value,
|
|
147
142
|
col: colNumber,
|
|
148
143
|
row: rowNumber,
|
|
149
|
-
$col$row:
|
|
144
|
+
$col$row: `$${col}$${row}`
|
|
150
145
|
};
|
|
151
146
|
|
|
152
147
|
// mem fix - cache only the tl 100x100 square
|
|
@@ -179,7 +174,7 @@ const colCache = {
|
|
|
179
174
|
// reconstruct tl, br and dimensions
|
|
180
175
|
result.tl = this.n2l(result.left) + result.top;
|
|
181
176
|
result.br = this.n2l(result.right) + result.bottom;
|
|
182
|
-
result.dimensions =
|
|
177
|
+
result.dimensions = `${result.tl}:${result.br}`;
|
|
183
178
|
return result;
|
|
184
179
|
}
|
|
185
180
|
return this.decodeAddress(value);
|
|
@@ -229,17 +224,17 @@ const colCache = {
|
|
|
229
224
|
address: tl,
|
|
230
225
|
col: left,
|
|
231
226
|
row: top,
|
|
232
|
-
$col$row:
|
|
227
|
+
$col$row: `$${this.n2l(left)}$${top}`,
|
|
233
228
|
sheetName
|
|
234
229
|
},
|
|
235
230
|
br: {
|
|
236
231
|
address: br,
|
|
237
232
|
col: right,
|
|
238
233
|
row: bottom,
|
|
239
|
-
$col$row:
|
|
234
|
+
$col$row: `$${this.n2l(right)}$${bottom}`,
|
|
240
235
|
sheetName
|
|
241
236
|
},
|
|
242
|
-
dimensions:
|
|
237
|
+
dimensions: `${tl}:${br}`
|
|
243
238
|
};
|
|
244
239
|
}
|
|
245
240
|
if (reference.startsWith('#')) {
|
|
@@ -251,9 +246,10 @@ const colCache = {
|
|
|
251
246
|
};
|
|
252
247
|
}
|
|
253
248
|
const address = this.decodeAddress(reference);
|
|
254
|
-
return sheetName ?
|
|
255
|
-
sheetName
|
|
256
|
-
|
|
249
|
+
return sheetName ? {
|
|
250
|
+
sheetName,
|
|
251
|
+
...address
|
|
252
|
+
} : address;
|
|
257
253
|
},
|
|
258
254
|
// convert row,col into address string
|
|
259
255
|
encodeAddress(row, col) {
|
|
@@ -265,7 +261,7 @@ const colCache = {
|
|
|
265
261
|
case 2:
|
|
266
262
|
return colCache.encodeAddress(arguments[0], arguments[1]);
|
|
267
263
|
case 4:
|
|
268
|
-
return
|
|
264
|
+
return `${colCache.encodeAddress(arguments[0], arguments[1])}:${colCache.encodeAddress(arguments[2], arguments[3])}`;
|
|
269
265
|
default:
|
|
270
266
|
throw new Error('Can only encode with 2 or 4 arguments');
|
|
271
267
|
}
|