Socket
Socket
Sign inDemoInstall

ejsexcel

Package Overview
Dependencies
Maintainers
1
Versions
99
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ejsexcel - npm Package Compare versions

Comparing version 3.5.6 to 3.6.0

test/cache/.gitkeep

663

ejsExcel.js

@@ -139,2 +139,5 @@ function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { return step("next", value); }, function (err) { return step("throw", err); }); } } return step("next"); }); }; }

readFileAsync = Promise_fromStandard(fs.readFile, fs);
const unlinkAsync = Promise_fromStandard(fs.unlink, fs);
const writeFileAsync = Promise_fromStandard(fs.writeFile, fs);

@@ -203,4 +206,8 @@ inflateRawAsync = Promise_fromStandard(zlib.inflateRaw, zlib);

renderExcelCb = function (exlBuf, _data_, callback) {
renderExcel(exlBuf, _data_).then(function (buf2) {
renderExcelCb = function (exlBuf, _data_, opt, callback) {
if(typeof(opt) === "function") {
callback = opt;
opt = undefined;
}
renderExcel(exlBuf, _data_, opt).then(function (buf2) {
callback(null, buf2);

@@ -213,3 +220,3 @@ })["catch"](function (err) {

renderExcel = function () {
var _ref2 = _asyncToGenerator(function* (exlBuf, _data_) {
var _ref2 = _asyncToGenerator(function* (exlBuf, _data_, opt) {
var anonymous, attr, attr0, attr_r, begin, buffer2, cEl, cElArr, cItem, data, doc, documentElement, end, endElement, entry, hyperlink, hyperlinksDomEl, hzip, i, i1, idx, j1, key, keyArr, l, len1, len10, len11, len12, len13, len14, len15, len2, len3, len4, len5, len6, len7, len8, len9, m, m_c_i, mciNum, mciNumArr, mergeCell, mergeCellsDomEl, n, o, p, pageMarginsDomEl, phoneticPr, phoneticPrDomEl, q, r, reXmlEq, ref, ref0, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, refArr, row, rowEl, rowElArr, sharedStrings2, sheetBuf, sheetBuf2, sheetDataDomEl, sheetDataElementState, sheetEntrieRels, sheetEntries, sheetObj, shsEntry, shsObj, shsStr, si, si2, sirTp, startElement, str, str2, u, updateEntryAsync, v, w, workbookBuf, workbookEntry, workbookRelsBuf, workbookRelsEntry, x, xjOpTmp, y, z;

@@ -815,323 +822,337 @@ data = {

entry = sheetEntries[i];
sheetBuf = yield inflateRawAsync(entry.cfile);
doc = new DOMParser().parseFromString(sheetBuf.toString(), 'text/xml');
documentElement = doc.documentElement;
sheetDataDomEl = documentElement.getElementsByTagName("sheetData")[0];
if (!sheetDataDomEl) {
continue;
}
mergeCellsDomEl = documentElement.getElementsByTagName("mergeCells")[0];
if (!mergeCellsDomEl) {
mergeCellsDomEl = doc.createElement("mergeCells");
hyperlinksDomEl = documentElement.getElementsByTagName("hyperlinks")[0];
phoneticPrDomEl = documentElement.getElementsByTagName("phoneticPr")[0];
pageMarginsDomEl = documentElement.getElementsByTagName("pageMargins")[0];
if (phoneticPrDomEl) {
documentElement.insertBefore(mergeCellsDomEl, phoneticPrDomEl);
} else if (hyperlinksDomEl) {
documentElement.insertBefore(mergeCellsDomEl, hyperlinksDomEl);
} else if (pageMarginsDomEl) {
documentElement.insertBefore(mergeCellsDomEl, pageMarginsDomEl);
} else {
documentElement.insertBefore(mergeCellsDomEl, sheetDataDomEl.nextSibling);
//缓存
var md5Str2 = crypto.createHash("md5").update(entry.cfile).digest("hex");
str2 = undefined
if(opt && opt.cachePath) {
try {
str2 = yield readFileAsync(opt.cachePath+"/ejsexcel_"+md5Str2, "utf8");
} catch(errTmp) {
}
}
rowElArr = sheetDataDomEl.getElementsByTagName("row");
for (n = 0, len3 = rowElArr.length; n < len3; n++) {
rowEl = rowElArr[n];
if (rowEl.attributes[0] && rowEl.attributes[0].nodeName === "r") {
continue;
}
attr_r = void 0;
idx = void 0;
ref3 = rowEl.attributes;
for (i = o = 0, len4 = ref3.length; o < len4; i = ++o) {
attr = ref3[i];
if (attr.nodeName === "r") {
attr_r = attr;
idx = i;
break;
}
}
if (!attr_r) {
continue;
}
attr0 = rowEl.attributes[0];
rowEl.attributes[0] = attr_r;
rowEl.attributes[idx] = attr0;
if(!str2) {
sheetBuf = yield inflateRawAsync(entry.cfile);
doc = new DOMParser().parseFromString(sheetBuf.toString(), 'text/xml');
documentElement = doc.documentElement;
sheetDataDomEl = documentElement.getElementsByTagName("sheetData")[0];
if (!sheetDataDomEl) {
continue;
}
mergeCellsDomEl = documentElement.getElementsByTagName("mergeCells")[0];
if (!mergeCellsDomEl) {
mergeCellsDomEl = doc.createElement("mergeCells");
hyperlinksDomEl = documentElement.getElementsByTagName("hyperlinks")[0];
phoneticPrDomEl = documentElement.getElementsByTagName("phoneticPr")[0];
pageMarginsDomEl = documentElement.getElementsByTagName("pageMargins")[0];
if (phoneticPrDomEl) {
documentElement.insertBefore(mergeCellsDomEl, phoneticPrDomEl);
} else if (hyperlinksDomEl) {
documentElement.insertBefore(mergeCellsDomEl, hyperlinksDomEl);
} else if (pageMarginsDomEl) {
documentElement.insertBefore(mergeCellsDomEl, pageMarginsDomEl);
} else {
documentElement.insertBefore(mergeCellsDomEl, sheetDataDomEl.nextSibling);
}
}
rowElArr = sheetDataDomEl.getElementsByTagName("row");
for (n = 0, len3 = rowElArr.length; n < len3; n++) {
rowEl = rowElArr[n];
if (rowEl.attributes[0] && rowEl.attributes[0].nodeName === "r") {
continue;
}
attr_r = void 0;
idx = void 0;
ref3 = rowEl.attributes;
for (i = o = 0, len4 = ref3.length; o < len4; i = ++o) {
attr = ref3[i];
if (attr.nodeName === "r") {
attr_r = attr;
idx = i;
break;
}
}
if (!attr_r) {
continue;
}
attr0 = rowEl.attributes[0];
rowEl.attributes[0] = attr_r;
rowEl.attributes[idx] = attr0;
}
cElArr = sheetDataDomEl.getElementsByTagName("c");
for (p = 0, len5 = cElArr.length; p < len5; p++) {
cEl = cElArr[p];
if (cEl.attributes[0] && cEl.attributes[0].nodeName === "r") {
continue;
}
attr_r = void 0;
idx = void 0;
ref4 = cEl.attributes;
for (i = q = 0, len6 = ref4.length; q < len6; i = ++q) {
attr = ref4[i];
if (attr.nodeName === "r") {
attr_r = attr;
idx = i;
break;
}
}
if (!attr_r) {
continue;
}
attr0 = cEl.attributes[0];
cEl.attributes[0] = attr_r;
cEl.attributes[idx] = attr0;
}
sheetBuf = Buffer.from(doc.toString());
xjOpTmp = {
object: true,
reversible: true,
coerce: false,
trim: false,
sanitize: true
};
sheetDataElementState = "";
startElement = xml2json.toJson.startElement;
endElement = xml2json.toJson.endElement;
xjOpTmp.startElement = function (elementName, attrs) {
if (elementName === "sheetData") {
sheetDataElementState = "start";
}
startElement.apply(this, arguments);
};
xjOpTmp.endElement = function (elementName) {
if (elementName === "sheetData") {
sheetDataElementState = "end";
}
endElement.apply(this, arguments);
};
xjOpTmp.sanitizeFn = function (value) {
if (!isString(value)) {
return value;
}
if (sheetDataElementState === "start") {
return value;
}
value = value.replace(/[&<>"']/gm, function (g1, g2) {
if (g1 === "&") {
return "&amp;";
} else if (g1 === "<") {
return "&lt;";
} else if (g1 === ">") {
return "&gt;";
} else if (g1 === "\"") {
return "&quot;";
} else if (g1 === "'") {
return "&apos;";
}
return g1;
});
return value;
};
sheetObj = xml2json.toJson(sheetBuf, xjOpTmp);
if (sheetObj.worksheet.sheetData.row === void 0) {
continue;
} else if (!isArray(sheetObj.worksheet.sheetData.row)) {
sheetObj.worksheet.sheetData.row = [sheetObj.worksheet.sheetData.row];
}
if (sheetObj.worksheet.mergeCells !== void 0 && sheetObj.worksheet.mergeCells.mergeCell !== void 0) {
if (!sheetObj.worksheet.mergeCells.mergeCell) {
sheetObj.worksheet.mergeCells.mergeCell = [];
} else if (!isArray(sheetObj.worksheet.mergeCells.mergeCell)) {
sheetObj.worksheet.mergeCells.mergeCell = [sheetObj.worksheet.mergeCells.mergeCell];
}
}
ref5 = sheetObj.worksheet.sheetData.row;
for (r = 0, len7 = ref5.length; r < len7; r++) {
row = ref5[r];
if (row.c !== void 0) {
if (!row.c) {
row.c = [];
} else if (!isArray(row.c)) {
row.c = [row.c];
}
ref6 = row.c;
for (u = 0, len8 = ref6.length; u < len8; u++) {
cItem = ref6[u];
if (cItem.t === "s" && cItem.v && !isNaN(Number(cItem.v["$t"])) && !cItem.f) {
if (!shsObj.sst.si) {
shsObj.sst.si = [];
} else if (!isArray(shsObj.sst.si)) {
shsObj.sst.si = [shsObj.sst.si];
}
si = shsObj.sst.si[cItem.v["$t"]];
phoneticPr = si.phoneticPr;
si2 = {
t: {
"$t": ""
}
};
if (si.r !== void 0) {
if (!si.r) {
si.r = [];
} else if (!isArray(si.r)) {
si.r = [si.r];
}
ref7 = si.r;
for (v = 0, len9 = ref7.length; v < len9; v++) {
sirTp = ref7[v];
if (sirTp.t && sirTp.t["$t"]) {
si2.t["$t"] += sirTp.t["$t"];
}
}
} else {
si2.t["$t"] = si.t["$t"];
}
cItem.v["$t"] = si2.t["$t"];
if (cItem.v) {
if (!(cItem.v["$t"] === void 0 || cItem.v["$t"] === "")) {
begin = cItem.v["$t"].indexOf("<%");
end = cItem.v["$t"].indexOf("%>");
if (begin === -1 || end === -1) {
cItem.v["$t"] = "<%='" + cItem.v["$t"].replace(/'/gm, "\\'") + "'%>";
}
}
}
} else {
if (cItem.f && cItem["v"] && cItem["v"]["$t"] && cItem["v"]["$t"].indexOf("<%") !== -1 && cItem["v"]["$t"].indexOf("%>") !== -1) {
delete cItem.f;
cItem.t = "s";
} else {
if (cItem.f) {
if (cItem.f["$t"] !== void 0) {
cItem.f["$t"] = str2Xml(cItem.f["$t"]);
}
delete cItem["v"];
} else {
if (cItem.v && cItem.v["$t"]) {
cItem.v["$t"] = str2Xml(cItem.v["$t"]);
}
}
}
}
if (sheetObj.worksheet.mergeCells !== void 0 && sheetObj.worksheet.mergeCells.mergeCell !== void 0) {
mciNumArr = [];
ref8 = sheetObj.worksheet.mergeCells.mergeCell;
for (m_c_i = w = 0, len10 = ref8.length; w < len10; m_c_i = ++w) {
mergeCell = ref8[m_c_i];
if (mergeCell.ref !== void 0) {
refArr = mergeCell.ref.split(":");
ref0 = refArr[0];
ref1 = refArr[1];
if (!ref1 || !ref0) {
continue;
}
if (charToNum(cItem.r.replace(/\d+/, "")) >= charToNum(ref0.replace(/\d+/, "")) && Number(cItem.r.replace(/\D+/, "")) >= Number(ref0.replace(/\D+/, ""))) {
if (cItem.v !== void 0) {
if (!cItem.v["$t"]) {
cItem.v["$t"] = "";
}
cItem.v["$t"] += "<% _mergeCellArr_.push(_charPlus_('" + ref0.replace(/\d+/, '') + "',_c)+(" + Number(ref0.replace(/\D+/, "")) + "+_r)+':'+_charPlus_('" + ref1.replace(/\d+/, '') + "',_c)+(" + Number(ref1.replace(/\D+/, "")) + "+_r)) %>";
} else {
if (!cItem["$t"]) {
cItem["$t"] = "";
}
cItem["$t"] += "<% _mergeCellArr_.push(_charPlus_('" + ref0.replace(/\d+/, '') + "',_c)+(" + Number(ref0.replace(/\D+/, "")) + "+_r)+':'+_charPlus_('" + ref1.replace(/\d+/, '') + "',_c)+(" + Number(ref1.replace(/\D+/, "")) + "+_r)) %>";
}
mciNumArr.push(m_c_i);
}
}
}
for (x = 0, len11 = mciNumArr.length; x < len11; x++) {
mciNum = mciNumArr[x];
sheetObj.worksheet.mergeCells.mergeCell.splice(mciNum, 1);
}
}
if (sheetObj.worksheet.hyperlinks && sheetObj.worksheet.hyperlinks.hyperlink) {
mciNumArr = [];
if (!isArray(sheetObj.worksheet.hyperlinks.hyperlink)) {
sheetObj.worksheet.hyperlinks.hyperlink = [sheetObj.worksheet.hyperlinks.hyperlink];
}
ref9 = sheetObj.worksheet.hyperlinks.hyperlink;
for (m_c_i = y = 0, len12 = ref9.length; y < len12; m_c_i = ++y) {
hyperlink = ref9[m_c_i];
if (!hyperlink.ref) {
continue;
}
ref = hyperlink.ref;
if (charToNum(cItem.r.replace(/\d+/, "")) >= charToNum(ref.replace(/\d+/, "")) && Number(cItem.r.replace(/\D+/, "")) >= Number(ref.replace(/\D+/, ""))) {
if (cItem.v != null) {
if (!cItem.v["$t"]) {
cItem.v["$t"] = "";
}
cItem.v["$t"] += "<% _hyperlinkArr_.push({ref:_charPlus_('" + ref.replace(/\d+/, '') + "',_c)+(" + Number(ref.replace(/\D+/, "")) + "+_r)";
keyArr = Object.keys(hyperlink);
for (z = 0, len13 = keyArr.length; z < len13; z++) {
key = keyArr[z];
if (key === "ref" || key === "display") {
continue;
}
cItem.v["$t"] += ",'" + key + "':'" + hyperlink[key].replace(/'/gm, "\\'").replace(/\n/gm, "\\n") + "'";
}
cItem.v["$t"] += "})%>";
} else {
if (!cItem["$t"]) {
cItem["$t"] = "";
}
cItem["$t"] += "<% _hyperlinkArr_.push({ref:_charPlus_('" + ref.replace(/\d+/, '') + "',_c)+(" + Number(ref.replace(/\D+/, "")) + "+_r)";
keyArr = Object.keys(hyperlink);
for (i1 = 0, len14 = keyArr.length; i1 < len14; i1++) {
key = keyArr[i1];
if (key === "ref" || key === "display") {
continue;
}
cItem["$t"] += ",'" + key + "':'" + hyperlink[key].replace(/'/gm, "\\'").replace(/\n/gm, "\\n") + "'";
}
cItem["$t"] += "})%>";
}
mciNumArr.push(m_c_i);
}
}
for (j1 = 0, len15 = mciNumArr.length; j1 < len15; j1++) {
mciNum = mciNumArr[j1];
sheetObj.worksheet.hyperlinks.hyperlink.splice(mciNum, 1);
}
}
}
}
}
if (sheetObj.worksheet.mergeCells) {
sheetObj.worksheet.mergeCells = {
"$t": "<% for(var m_cl=0; m_cl<_mergeCellArr_.length; m_cl++) { %><%-'<mergeCell ref=\"'+_mergeCellArr_[m_cl]+'\"/>'%><% } %>"
};
}
if (sheetObj.worksheet.hyperlinks) {
str = "<%for(var m_cl=0; m_cl<_hyperlinkArr_.length; m_cl++) { %><%-'<hyperlink ref=\"'+_hyperlinkArr_[m_cl].ref+'\"'%>";
str += '<%var eny=_hyperlinkArr_[m_cl];var keyArr=Object.keys(eny);for(var tmp=0;tmp<keyArr.length;tmp++){var key=keyArr[tmp];if(key==="ref")continue;%><%-" "+key+"=\\""+eny[key]+"\\""%><%}%>';
str += " /><%}%>";
sheetObj.worksheet.hyperlinks = {
"$t": str
};
}
sheetBuf2 = Buffer.from(sheetSufStr.toString() + xml2json.toXml(sheetObj, "", {
reSanitize: false
}));
reXmlEq = {
reXmlEq: function (pixEq, jsStr, str) {
if (pixEq === "=") {
jsStr = jsStr.replace(/\n/gm, "\\n").replace(/\r/gm, "\\r").replace(/\t/gm, "\\t");
jsStr = "_ps_(" + jsStr + ",buf)";
} else if (pixEq === "~") {
jsStr = jsStr.replace(/\n/gm, "\\n").replace(/\r/gm, "\\r").replace(/\t/gm, "\\t");
jsStr = "_pi_(" + jsStr + ",buf)";
} else if (pixEq === "#") {
jsStr = jsStr.replace(/\n/gm, "\\n").replace(/\r/gm, "\\r").replace(/\t/gm, "\\t");
jsStr = "_pf_(" + jsStr + ",buf)";
}
return {
jsStr: jsStr,
str: str
};
}
};
reXmlEq.fileName = entry.fileName;
str2 = ejs4xlx.parse(sheetBuf2, reXmlEq);
str2 = "(wrap(function* anonymous(_args) {" + str2 + "}))";
if(opt && opt.cachePath) {
yield writeFileAsync(opt.cachePath+"/ejsexcel_"+md5Str2, str2);
}
}
cElArr = sheetDataDomEl.getElementsByTagName("c");
for (p = 0, len5 = cElArr.length; p < len5; p++) {
cEl = cElArr[p];
if (cEl.attributes[0] && cEl.attributes[0].nodeName === "r") {
continue;
}
attr_r = void 0;
idx = void 0;
ref4 = cEl.attributes;
for (i = q = 0, len6 = ref4.length; q < len6; i = ++q) {
attr = ref4[i];
if (attr.nodeName === "r") {
attr_r = attr;
idx = i;
break;
}
}
if (!attr_r) {
continue;
}
attr0 = cEl.attributes[0];
cEl.attributes[0] = attr_r;
cEl.attributes[idx] = attr0;
}
sheetBuf = Buffer.from(doc.toString());
xjOpTmp = {
object: true,
reversible: true,
coerce: false,
trim: false,
sanitize: true
};
sheetDataElementState = "";
startElement = xml2json.toJson.startElement;
endElement = xml2json.toJson.endElement;
xjOpTmp.startElement = function (elementName, attrs) {
if (elementName === "sheetData") {
sheetDataElementState = "start";
}
startElement.apply(this, arguments);
};
xjOpTmp.endElement = function (elementName) {
if (elementName === "sheetData") {
sheetDataElementState = "end";
}
endElement.apply(this, arguments);
};
xjOpTmp.sanitizeFn = function (value) {
if (!isString(value)) {
return value;
}
if (sheetDataElementState === "start") {
return value;
}
value = value.replace(/[&<>"']/gm, function (g1, g2) {
if (g1 === "&") {
return "&amp;";
} else if (g1 === "<") {
return "&lt;";
} else if (g1 === ">") {
return "&gt;";
} else if (g1 === "\"") {
return "&quot;";
} else if (g1 === "'") {
return "&apos;";
}
return g1;
});
return value;
};
sheetObj = xml2json.toJson(sheetBuf, xjOpTmp);
if (sheetObj.worksheet.sheetData.row === void 0) {
continue;
} else if (!isArray(sheetObj.worksheet.sheetData.row)) {
sheetObj.worksheet.sheetData.row = [sheetObj.worksheet.sheetData.row];
}
if (sheetObj.worksheet.mergeCells !== void 0 && sheetObj.worksheet.mergeCells.mergeCell !== void 0) {
if (!sheetObj.worksheet.mergeCells.mergeCell) {
sheetObj.worksheet.mergeCells.mergeCell = [];
} else if (!isArray(sheetObj.worksheet.mergeCells.mergeCell)) {
sheetObj.worksheet.mergeCells.mergeCell = [sheetObj.worksheet.mergeCells.mergeCell];
}
}
ref5 = sheetObj.worksheet.sheetData.row;
for (r = 0, len7 = ref5.length; r < len7; r++) {
row = ref5[r];
if (row.c !== void 0) {
if (!row.c) {
row.c = [];
} else if (!isArray(row.c)) {
row.c = [row.c];
}
ref6 = row.c;
for (u = 0, len8 = ref6.length; u < len8; u++) {
cItem = ref6[u];
if (cItem.t === "s" && cItem.v && !isNaN(Number(cItem.v["$t"])) && !cItem.f) {
if (!shsObj.sst.si) {
shsObj.sst.si = [];
} else if (!isArray(shsObj.sst.si)) {
shsObj.sst.si = [shsObj.sst.si];
}
si = shsObj.sst.si[cItem.v["$t"]];
phoneticPr = si.phoneticPr;
si2 = {
t: {
"$t": ""
}
};
if (si.r !== void 0) {
if (!si.r) {
si.r = [];
} else if (!isArray(si.r)) {
si.r = [si.r];
}
ref7 = si.r;
for (v = 0, len9 = ref7.length; v < len9; v++) {
sirTp = ref7[v];
if (sirTp.t && sirTp.t["$t"]) {
si2.t["$t"] += sirTp.t["$t"];
}
}
} else {
si2.t["$t"] = si.t["$t"];
}
cItem.v["$t"] = si2.t["$t"];
if (cItem.v) {
if (!(cItem.v["$t"] === void 0 || cItem.v["$t"] === "")) {
begin = cItem.v["$t"].indexOf("<%");
end = cItem.v["$t"].indexOf("%>");
if (begin === -1 || end === -1) {
cItem.v["$t"] = "<%='" + cItem.v["$t"].replace(/'/gm, "\\'") + "'%>";
}
}
}
} else {
if (cItem.f && cItem["v"] && cItem["v"]["$t"] && cItem["v"]["$t"].indexOf("<%") !== -1 && cItem["v"]["$t"].indexOf("%>") !== -1) {
delete cItem.f;
cItem.t = "s";
} else {
if (cItem.f) {
if (cItem.f["$t"] !== void 0) {
cItem.f["$t"] = str2Xml(cItem.f["$t"]);
}
delete cItem["v"];
} else {
if (cItem.v && cItem.v["$t"]) {
cItem.v["$t"] = str2Xml(cItem.v["$t"]);
}
}
}
}
if (sheetObj.worksheet.mergeCells !== void 0 && sheetObj.worksheet.mergeCells.mergeCell !== void 0) {
mciNumArr = [];
ref8 = sheetObj.worksheet.mergeCells.mergeCell;
for (m_c_i = w = 0, len10 = ref8.length; w < len10; m_c_i = ++w) {
mergeCell = ref8[m_c_i];
if (mergeCell.ref !== void 0) {
refArr = mergeCell.ref.split(":");
ref0 = refArr[0];
ref1 = refArr[1];
if (!ref1 || !ref0) {
continue;
}
if (charToNum(cItem.r.replace(/\d+/, "")) >= charToNum(ref0.replace(/\d+/, "")) && Number(cItem.r.replace(/\D+/, "")) >= Number(ref0.replace(/\D+/, ""))) {
if (cItem.v !== void 0) {
if (!cItem.v["$t"]) {
cItem.v["$t"] = "";
}
cItem.v["$t"] += "<% _mergeCellArr_.push(_charPlus_('" + ref0.replace(/\d+/, '') + "',_c)+(" + Number(ref0.replace(/\D+/, "")) + "+_r)+':'+_charPlus_('" + ref1.replace(/\d+/, '') + "',_c)+(" + Number(ref1.replace(/\D+/, "")) + "+_r)) %>";
} else {
if (!cItem["$t"]) {
cItem["$t"] = "";
}
cItem["$t"] += "<% _mergeCellArr_.push(_charPlus_('" + ref0.replace(/\d+/, '') + "',_c)+(" + Number(ref0.replace(/\D+/, "")) + "+_r)+':'+_charPlus_('" + ref1.replace(/\d+/, '') + "',_c)+(" + Number(ref1.replace(/\D+/, "")) + "+_r)) %>";
}
mciNumArr.push(m_c_i);
}
}
}
for (x = 0, len11 = mciNumArr.length; x < len11; x++) {
mciNum = mciNumArr[x];
sheetObj.worksheet.mergeCells.mergeCell.splice(mciNum, 1);
}
}
if (sheetObj.worksheet.hyperlinks && sheetObj.worksheet.hyperlinks.hyperlink) {
mciNumArr = [];
if (!isArray(sheetObj.worksheet.hyperlinks.hyperlink)) {
sheetObj.worksheet.hyperlinks.hyperlink = [sheetObj.worksheet.hyperlinks.hyperlink];
}
ref9 = sheetObj.worksheet.hyperlinks.hyperlink;
for (m_c_i = y = 0, len12 = ref9.length; y < len12; m_c_i = ++y) {
hyperlink = ref9[m_c_i];
if (!hyperlink.ref) {
continue;
}
ref = hyperlink.ref;
if (charToNum(cItem.r.replace(/\d+/, "")) >= charToNum(ref.replace(/\d+/, "")) && Number(cItem.r.replace(/\D+/, "")) >= Number(ref.replace(/\D+/, ""))) {
if (cItem.v != null) {
if (!cItem.v["$t"]) {
cItem.v["$t"] = "";
}
cItem.v["$t"] += "<% _hyperlinkArr_.push({ref:_charPlus_('" + ref.replace(/\d+/, '') + "',_c)+(" + Number(ref.replace(/\D+/, "")) + "+_r)";
keyArr = Object.keys(hyperlink);
for (z = 0, len13 = keyArr.length; z < len13; z++) {
key = keyArr[z];
if (key === "ref" || key === "display") {
continue;
}
cItem.v["$t"] += ",'" + key + "':'" + hyperlink[key].replace(/'/gm, "\\'").replace(/\n/gm, "\\n") + "'";
}
cItem.v["$t"] += "})%>";
} else {
if (!cItem["$t"]) {
cItem["$t"] = "";
}
cItem["$t"] += "<% _hyperlinkArr_.push({ref:_charPlus_('" + ref.replace(/\d+/, '') + "',_c)+(" + Number(ref.replace(/\D+/, "")) + "+_r)";
keyArr = Object.keys(hyperlink);
for (i1 = 0, len14 = keyArr.length; i1 < len14; i1++) {
key = keyArr[i1];
if (key === "ref" || key === "display") {
continue;
}
cItem["$t"] += ",'" + key + "':'" + hyperlink[key].replace(/'/gm, "\\'").replace(/\n/gm, "\\n") + "'";
}
cItem["$t"] += "})%>";
}
mciNumArr.push(m_c_i);
}
}
for (j1 = 0, len15 = mciNumArr.length; j1 < len15; j1++) {
mciNum = mciNumArr[j1];
sheetObj.worksheet.hyperlinks.hyperlink.splice(mciNum, 1);
}
}
}
}
}
if (sheetObj.worksheet.mergeCells) {
sheetObj.worksheet.mergeCells = {
"$t": "<% for(var m_cl=0; m_cl<_mergeCellArr_.length; m_cl++) { %><%-'<mergeCell ref=\"'+_mergeCellArr_[m_cl]+'\"/>'%><% } %>"
};
}
if (sheetObj.worksheet.hyperlinks) {
str = "<%for(var m_cl=0; m_cl<_hyperlinkArr_.length; m_cl++) { %><%-'<hyperlink ref=\"'+_hyperlinkArr_[m_cl].ref+'\"'%>";
str += '<%var eny=_hyperlinkArr_[m_cl];var keyArr=Object.keys(eny);for(var tmp=0;tmp<keyArr.length;tmp++){var key=keyArr[tmp];if(key==="ref")continue;%><%-" "+key+"=\\""+eny[key]+"\\""%><%}%>';
str += " /><%}%>";
sheetObj.worksheet.hyperlinks = {
"$t": str
};
}
sheetBuf2 = Buffer.from(sheetSufStr.toString() + xml2json.toXml(sheetObj, "", {
reSanitize: false
}));
reXmlEq = {
reXmlEq: function (pixEq, jsStr, str) {
if (pixEq === "=") {
jsStr = jsStr.replace(/\n/gm, "\\n").replace(/\r/gm, "\\r").replace(/\t/gm, "\\t");
jsStr = "_ps_(" + jsStr + ",buf)";
} else if (pixEq === "~") {
jsStr = jsStr.replace(/\n/gm, "\\n").replace(/\r/gm, "\\r").replace(/\t/gm, "\\t");
jsStr = "_pi_(" + jsStr + ",buf)";
} else if (pixEq === "#") {
jsStr = jsStr.replace(/\n/gm, "\\n").replace(/\r/gm, "\\r").replace(/\t/gm, "\\t");
jsStr = "_pf_(" + jsStr + ",buf)";
}
return {
jsStr: jsStr,
str: str
};
}
};
reXmlEq.fileName = entry.fileName;
str2 = ejs4xlx.parse(sheetBuf2, reXmlEq);
str2 = "(wrap(function* anonymous(_args) {" + str2 + "}))";
anonymous = eval(str2);

@@ -1138,0 +1159,0 @@ buffer2 = yield anonymous.call(this, data);

@@ -15,1 +15,17 @@ /**

export declare function renderExcelCb(exlBuf: Buffer, _data_: any, cb: Function): void;
/**
* 渲染excel模板
* @param exlBuf 模板excel的Buff
* @param _data_ 数据
* @param opt 选项, cachePath 编译缓存路径
*/
export declare function renderExcel(exlBuf: Buffer, _data_: any, opt: { cachePath?: string }): Promise<Buffer>;
/**
* 渲染excel模板
* @param exlBuf 模板excel的Buff
* @param _data_ 数据
* @param cb 渲染成功后回调
*/
export declare function renderExcelCb(exlBuf: Buffer, _data_: any, opt: { cachePath?: string }, cb: Function): void;

@@ -5,3 +5,3 @@ {

"name": "ejsexcel",
"version": "3.5.6",
"version": "3.6.0",
"main": "ejsExcel.js",

@@ -8,0 +8,0 @@ "readme": "README.md",

@@ -88,1 +88,3 @@ ejsExcel

- @Aptenodytes forsteri ¥15
- @HHB ¥30
- @Original ¥88.88

@@ -13,5 +13,6 @@ const ejsexcel = require("../ejsExcel");

//用数据源(对象)data渲染Excel模板
const exlBuf2 = await ejsexcel.renderExcel(exlBuf, data);
//cachePath为编译缓存路径, 绝对路径, 若不设置, 则无缓存
const exlBuf2 = await ejsexcel.renderExcel(exlBuf, data, { cachePath: __dirname+"/cache/" });
await writeFileAsync("./test2.xlsx", exlBuf2);
console.log("生成test2.xlsx");
})();
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc