UNPKG

ngx-smart-spreadsheet

Version:

Lightweight spreadsheet module for Angular

20 lines 3.28 kB
const DELIMITER = '\t'; const PARSE_PATTERN = new RegExp(('(\\' + DELIMITER + '|\\r?\\n|\\r|^)' + '(?:"([^"]*(?:""[^"]*)*)"|' + '([^"\\' + DELIMITER + '\\r\\n]*))'), "gi"); const csvToArray = (strData) => { const arrData = [[]]; let arrMatches = null; while (arrMatches = PARSE_PATTERN.exec(strData)) { const strMatchedDelimiter = arrMatches[1]; if (strMatchedDelimiter.length && (strMatchedDelimiter != DELIMITER)) { arrData.push([]); } const strMatchedValue = (arrMatches[2]) ? arrMatches[2].replace(new RegExp('""', 'g'), '"') : arrMatches[3]; arrData[arrData.length - 1].push(strMatchedValue); } return arrData; }; export default csvToArray; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LWNvbnZlcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydC1zcHJlYWRzaGVldC9zcmMvbGliL2Nzdi1jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLE1BQU0sYUFBYSxHQUFHLElBQUksTUFBTSxDQUM1QixDQUNJLEtBQUssR0FBRyxTQUFTLEdBQUcsaUJBQWlCO0lBQ3JDLDJCQUEyQjtJQUMzQixRQUFRLEdBQUcsU0FBUyxHQUFHLFlBQVksQ0FDdEMsRUFDRCxJQUFJLENBQ1AsQ0FBQztBQUVGLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBZSxFQUFjLEVBQUU7SUFDL0MsTUFBTSxPQUFPLEdBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDdEIsT0FBTyxVQUFVLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUM3QyxNQUFNLG1CQUFtQixHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLG1CQUFtQixDQUFDLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixJQUFJLFNBQVMsQ0FBQyxFQUFFO1lBQ2xFLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDcEI7UUFFRCxNQUFNLGVBQWUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4RSxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7S0FDckQ7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixlQUFlLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IERFTElNSVRFUiA9ICdcXHQnO1xuY29uc3QgUEFSU0VfUEFUVEVSTiA9IG5ldyBSZWdFeHAoXG4gICAgKFxuICAgICAgICAnKFxcXFwnICsgREVMSU1JVEVSICsgJ3xcXFxccj9cXFxcbnxcXFxccnxeKScgK1xuICAgICAgICAnKD86XCIoW15cIl0qKD86XCJcIlteXCJdKikqKVwifCcgK1xuICAgICAgICAnKFteXCJcXFxcJyArIERFTElNSVRFUiArICdcXFxcclxcXFxuXSopKSdcbiAgICApLFxuICAgIFwiZ2lcIlxuKTtcblxuY29uc3QgY3N2VG9BcnJheSA9IChzdHJEYXRhOiBzdHJpbmcpOiBzdHJpbmdbXVtdID0+IHtcbiAgICBjb25zdCBhcnJEYXRhOiBzdHJpbmdbXVtdID0gW1tdXTtcbiAgICBsZXQgYXJyTWF0Y2hlcyA9IG51bGw7XG4gICAgd2hpbGUgKGFyck1hdGNoZXMgPSBQQVJTRV9QQVRURVJOLmV4ZWMoc3RyRGF0YSkpIHtcbiAgICAgICAgY29uc3Qgc3RyTWF0Y2hlZERlbGltaXRlciA9IGFyck1hdGNoZXNbMV07XG4gICAgICAgIGlmIChzdHJNYXRjaGVkRGVsaW1pdGVyLmxlbmd0aCAmJiAoc3RyTWF0Y2hlZERlbGltaXRlciAhPSBERUxJTUlURVIpKSB7XG4gICAgICAgICAgICBhcnJEYXRhLnB1c2goW10pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RyTWF0Y2hlZFZhbHVlID0gKGFyck1hdGNoZXNbMl0pXG4gICAgICAgICAgICA/IGFyck1hdGNoZXNbMl0ucmVwbGFjZShuZXcgUmVnRXhwKCdcIlwiJywgJ2cnKSwgJ1wiJykgOiBhcnJNYXRjaGVzWzNdO1xuXG4gICAgICAgIGFyckRhdGFbYXJyRGF0YS5sZW5ndGggLSAxXS5wdXNoKHN0ck1hdGNoZWRWYWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBhcnJEYXRhO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY3N2VG9BcnJheTtcbiJdfQ==