mirror of
https://github.com/bdnugget/excel.js.git
synced 2026-11-07 05:17:27 +00:00
libxmljs -> pure js
This commit is contained in:
1 parent
7e2015776c
commit
d364a43364
6 files changed
+56
-40
No files matched your search
+2
-1
@@ -1,3 +1,4 @@
|
||||
node_modules
|
||||
npm-debug.log
|
||||
.idea
|
||||
.idea
|
||||
commonjs/
|
||||
+24
-22
@@ -13,13 +13,17 @@ var _stream = require('stream');
|
||||
|
||||
var _stream2 = _interopRequireDefault(_stream);
|
||||
|
||||
var _nodeUnzip = require('node-unzip-2');
|
||||
var _unzipper = require('unzipper');
|
||||
|
||||
var _nodeUnzip2 = _interopRequireDefault(_nodeUnzip);
|
||||
var _unzipper2 = _interopRequireDefault(_unzipper);
|
||||
|
||||
var _libxmljs = require('libxmljs');
|
||||
var _xpath = require('xpath');
|
||||
|
||||
var _libxmljs2 = _interopRequireDefault(_libxmljs);
|
||||
var _xpath2 = _interopRequireDefault(_xpath);
|
||||
|
||||
var _xmldom = require('xmldom');
|
||||
|
||||
var _xmldom2 = _interopRequireDefault(_xmldom);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
@@ -27,6 +31,9 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
|
||||
|
||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
|
||||
var ns = { a: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main' };
|
||||
var select = _xpath2.default.useNamespaces(ns);
|
||||
|
||||
function extractFiles(path, sheet) {
|
||||
var files = _defineProperty({
|
||||
strings: {},
|
||||
@@ -39,7 +46,7 @@ function extractFiles(path, sheet) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var filePromises = [];
|
||||
|
||||
stream.pipe(_nodeUnzip2.default.Parse()).on('error', reject).on('close', function () {
|
||||
stream.pipe(_unzipper2.default.Parse()).on('error', reject).on('close', function () {
|
||||
Promise.all(filePromises).then(function () {
|
||||
return resolve(files);
|
||||
});
|
||||
@@ -86,16 +93,16 @@ function calculateDimensions(cells) {
|
||||
}
|
||||
|
||||
function extractData(files) {
|
||||
var ns = { a: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main' };
|
||||
var sheet = void 0;
|
||||
var values = void 0;
|
||||
var data = [];
|
||||
|
||||
try {
|
||||
sheet = _libxmljs2.default.parseXml(files.sheet.contents);
|
||||
values = _libxmljs2.default.parseXml(files.strings.contents).find('//a:si', ns).map(function (string) {
|
||||
return string.find('.//a:t[not(ancestor::a:rPh)]', ns).map(function (t) {
|
||||
return t.text();
|
||||
sheet = new _xmldom2.default.DOMParser().parseFromString(files.sheet.contents);
|
||||
var valuesDoc = new _xmldom2.default.DOMParser().parseFromString(files.strings.contents);
|
||||
values = select('//a:si', valuesDoc).map(function (string) {
|
||||
return select('.//a:t[not(ancestor::a:rPh)]', string).map(function (t) {
|
||||
return t.textContent;
|
||||
}).join('');
|
||||
});
|
||||
} catch (parseError) {
|
||||
@@ -117,12 +124,7 @@ function extractData(files) {
|
||||
};
|
||||
|
||||
var na = {
|
||||
value: function value() {
|
||||
return '';
|
||||
},
|
||||
text: function text() {
|
||||
return '';
|
||||
}
|
||||
textContent: ''
|
||||
};
|
||||
|
||||
var CellCoords = function CellCoords(cell) {
|
||||
@@ -136,9 +138,9 @@ function extractData(files) {
|
||||
var Cell = function Cell(cellNode) {
|
||||
_classCallCheck(this, Cell);
|
||||
|
||||
var r = cellNode.attr('r').value();
|
||||
var type = (cellNode.attr('t') || na).value();
|
||||
var value = (cellNode.get('a:v', ns) || na).text();
|
||||
var r = cellNode.getAttribute('r');
|
||||
var type = cellNode.getAttribute('t') || '';
|
||||
var value = (select('a:v', cellNode, 1) || na).textContent;
|
||||
var coords = new CellCoords(r);
|
||||
|
||||
this.column = coords.column;
|
||||
@@ -147,13 +149,13 @@ function extractData(files) {
|
||||
this.type = type;
|
||||
};
|
||||
|
||||
var cells = sheet.find('/a:worksheet/a:sheetData/a:row/a:c', ns).map(function (node) {
|
||||
var cells = select('/a:worksheet/a:sheetData/a:row/a:c', sheet).map(function (node) {
|
||||
return new Cell(node);
|
||||
});
|
||||
|
||||
var d = sheet.get('//a:dimension/@ref', ns);
|
||||
var d = select('//a:dimension/@ref', sheet, 1);
|
||||
if (d) {
|
||||
d = d.value().split(':').map(function (_) {
|
||||
d = d.textContent.split(':').map(function (_) {
|
||||
return new CellCoords(_);
|
||||
});
|
||||
} else {
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"sources":["../excelParser.js"],"names":["parseXlsx","extractFiles","path","sheet","files","strings","stream","createReadStream","Promise","resolve","reject","filePromises","pipe","Parse","on","all","then","entry","file","contents","push","data","toString","autodrain","calculateDimensions","cells","comparator","a","b","allRows","map","cell","row","sort","allCols","column","minRow","maxRow","length","minCol","maxCol","extractData","ns","values","parseXml","find","string","t","text","join","parseError","colToInt","col","letters","trim","split","n","i","indexOf","na","value","CellCoords","parseInt","Cell","cellNode","r","attr","type","get","coords","node","d","_","cols","rows","times","action"],"mappings":"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 truncated
|
||||
{"version":3,"sources":["../excelParser.js"],"names":["parseXlsx","ns","a","select","useNamespaces","extractFiles","path","sheet","files","strings","stream","createReadStream","Promise","resolve","reject","filePromises","pipe","Parse","on","all","then","entry","file","contents","push","data","toString","autodrain","calculateDimensions","cells","comparator","b","allRows","map","cell","row","sort","allCols","column","minRow","maxRow","length","minCol","maxCol","extractData","values","DOMParser","parseFromString","valuesDoc","string","t","textContent","join","parseError","colToInt","col","letters","trim","split","n","i","indexOf","na","CellCoords","parseInt","Cell","cellNode","r","getAttribute","type","value","coords","node","d","_","cols","rows","times","action"],"mappings":"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 truncated
|
||||
+16
-15
@@ -1,7 +1,11 @@
|
||||
import fs from 'fs';
|
||||
import Stream from 'stream';
|
||||
import unzip from 'unzipper';
|
||||
import libxmljs from 'libxmljs';
|
||||
import xpath from 'xpath';
|
||||
import XMLDOM from 'xmldom';
|
||||
|
||||
const ns = { a: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main' };
|
||||
const select = xpath.useNamespaces(ns);
|
||||
|
||||
function extractFiles(path, sheet) {
|
||||
const files = {
|
||||
@@ -61,17 +65,15 @@ function calculateDimensions (cells) {
|
||||
}
|
||||
|
||||
function extractData(files) {
|
||||
const ns = { a: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main' };
|
||||
let sheet;
|
||||
let values;
|
||||
const data = [];
|
||||
|
||||
try {
|
||||
sheet = libxmljs.parseXml(files.sheet.contents);
|
||||
values = libxmljs.parseXml(files.strings.contents)
|
||||
.find('//a:si', ns)
|
||||
.map(string => string.find('.//a:t[not(ancestor::a:rPh)]', ns)
|
||||
.map(t => t.text()).join(''));
|
||||
sheet = new XMLDOM.DOMParser().parseFromString(files.sheet.contents);
|
||||
const valuesDoc = new XMLDOM.DOMParser().parseFromString(files.strings.contents);
|
||||
values = select('//a:si', valuesDoc)
|
||||
.map(string => select('.//a:t[not(ancestor::a:rPh)]', string).map(t => t.textContent).join(''));
|
||||
} catch(parseError){
|
||||
return [];
|
||||
}
|
||||
@@ -91,8 +93,7 @@ function extractData(files) {
|
||||
};
|
||||
|
||||
const na = {
|
||||
value: () => '',
|
||||
text: () => ''
|
||||
textContent: ''
|
||||
};
|
||||
|
||||
class CellCoords {
|
||||
@@ -105,9 +106,9 @@ function extractData(files) {
|
||||
|
||||
class Cell {
|
||||
constructor(cellNode) {
|
||||
const r = cellNode.attr('r').value();
|
||||
const type = (cellNode.attr('t') || na).value();
|
||||
const value = (cellNode.get('a:v', ns) || na ).text();
|
||||
const r = cellNode.getAttribute('r');
|
||||
const type = cellNode.getAttribute('t') || '';
|
||||
const value = (select('a:v', cellNode, 1) || na).textContent;
|
||||
const coords = new CellCoords(r)
|
||||
|
||||
this.column = coords.column;
|
||||
@@ -117,11 +118,11 @@ function extractData(files) {
|
||||
}
|
||||
}
|
||||
|
||||
const cells = sheet.find('/a:worksheet/a:sheetData/a:row/a:c', ns).map(node => new Cell(node));
|
||||
const cells = select('/a:worksheet/a:sheetData/a:row/a:c', sheet).map(node => new Cell(node));
|
||||
|
||||
let d = sheet.get('//a:dimension/@ref', ns);
|
||||
let d = select('//a:dimension/@ref', sheet, 1);
|
||||
if (d) {
|
||||
d = d.value().split(':').map(_ => new CellCoords(_));
|
||||
d = d.textContent.split(':').map(_ => new CellCoords(_));
|
||||
} else {
|
||||
d = calculateDimensions(cells);
|
||||
}
|
||||
|
||||
Generated
+10
@@ -2448,6 +2448,16 @@
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
||||
},
|
||||
"xmldom": {
|
||||
"version": "0.1.27",
|
||||
"resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz",
|
||||
"integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk="
|
||||
},
|
||||
"xpath": {
|
||||
"version": "0.0.27",
|
||||
"resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.27.tgz",
|
||||
"integrity": "sha512-fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ=="
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
-1
@@ -24,7 +24,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"libxmljs": "^0.18.0",
|
||||
"unzipper": "^0.8.11"
|
||||
"unzipper": "^0.8.11",
|
||||
"xmldom": "^0.1.27",
|
||||
"xpath": "0.0.27"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-cli": "^6.26.0",
|
||||
|
||||
Reference in new issue
Block a user