express.js
使用XLSX
读取本地的一个文件,进行一系列处理后,console.log
打印变量有值,而res.send
在前端得到的是空的。
代码如下:
router.get('/output', function (req, res, next) {
let output = getOutput();
console.log(output);
res.send(output);
});
function getOutput() {
var workbook = XLSX.readFile('./public/doc.xlsx');
const sheetdata = workbook.Sheets.sheet1;
var tableLength = sheetdata['!ref'].match(/\d{2,}/)[0];
var currentCenter = null, currentCenterStartNumber = null;
var outputData = new Array();
for (let index = 1; index < tableLength; index++) {
const element = sheetdata["A" + index];
if (element.v.match(/[\u4e2d][\u5fc3]/) != null) { // 匹配到 "中心" 才进行处理,否则不是我需要的单元格
if (currentCenter == null) {
currentCenter = element.v;
}
if (currentCenterStartNumber == null) {
currentCenterStartNumber = sheetdata["B" + index].v;
}
if (currentCenter != element.v) {
currentCenter = element.v;
currentCenterStartNumber = sheetdata["B" + index].v;
}
let currentCenterItemsNumber = sheetdata["B" + index].v - currentCenterStartNumber + 1;
let celThere = sheetdata["C" + index].v;
let celFour = sheetdata["D" + index].v;
let str = currentCenterItemsNumber + "." + celThere.replace(/[\u3002]/, '') + "," + celFour.toString().replace(/[\u3002]/, '') + ";"
outputData[currentCenter] = outputData[currentCenter] == null ? str + "\n" : outputData[currentCenter] + str + "\n";
}
}
return outputData;
}
浏览器打开如下:
控制台显示如下:
新手,求指导,谢谢。
已解决,是
outputData
数组的原因,把他拼接成就解决了。