记录一下自己使用的一下代码片段:
ExcelToJson:function(fileUrl,fileName,callback){
LuckyExcel.transformExcelToLuckyByUrl(fileUrl, fileName, function (exportJson, luckysheetfile) {
if (exportJson.sheets == null || exportJson.sheets.length == 0) {
layer.closeAll('loading');
layer.msg('数据获取失败,请重试!');
return;
}
var xlsxData = exportJson.sheets[0].celldata;
var thList = [];
xlsxData.forEach(function (item) {
var vv;
if (item.v.v !== undefined) {
vv = item.v.v;
} else if (item.v.ct && item.v.ct.s !== undefined) {
vv = item.v.ct.s[0].v;
} else {
vv = '';
}
if (item.r == 0) {
// 表头
thList[item.c] = vv;
}
});
var paiArr = [];
for (let i in thList) {
var obj = {};
obj[thList[i]] = i;
paiArr.push(obj);
}
var tableData = [];
var objTemp = {};
xlsxData.forEach(function (item, index) {
var vv;
if (item.v.v !== undefined) {
vv = item.v.v;
} else if (item.v.ct && item.v.ct.s !== undefined) {
vv = item.v.ct.s[0].v;
} else {
vv = '';
}
if (item.r != 0) {
// 表数据
for (let i in paiArr) {
var cName = Object.keys(paiArr[i])[0];
if (item.c == paiArr[i][cName]) {
objTemp[cName] = vv;
}
}
var nextIndex = index + 1;
if (nextIndex == xlsxData.length || xlsxData[nextIndex].r != item.r) {
// 没有下一个了,或 下一个是新一行开始
tableData.push({ ...objTemp });
objTemp = {};
}
}
});
// console.log(tableData);
if (callback) {
callback(tableData);
}
});
}
评论区