js-xlsx github地址:https://github.com/SheetJS/js-xlsx
1、准备 excel文档
##2、解析方法
const XLSX = require("xlsx");
function importExcel(filePath, callback) {
var data = [];
var err = null;
try {
// Everything went fine
var workbook = XLSX.readFile(filePath); //整个 excel 文档
var sheetNames = workbook.SheetNames; //获取所有工作薄名
//console.log(sheetNames);
//解析
var sheet1 = workbook.Sheets[sheetNames[0]]; //根据工作薄名获取工作薄
/*
sheet1['!ref'] 获取工作薄的有效范围 'A1:C20'
XLSX.utils.decode_range 将有效范围转为 range对象
range: {s: {r:0, c:0}, e: {r:10, 3}}
*/
var range = XLSX.utils.decode_range(sheet1['!ref']);
//循环获取单元格值
for(var R = range.s.r; R <= range.e.r; ++R) {
var row = [],flag = false;
for(var C = range.s.c; C <= range.e.c; ++C) {
var row_value = null;
var cell_address = {c:C, r:R}; //获取单元格地址
var cell = XLSX.utils.encode_cell(cell_address); //根据单元格地址获取单元格
if(sheet1[cell]) //获取单元格值
row_value = sheet1[cell].v;
else
row_value = '';
row.push(row_value);
}
//判断整行是否都为空,是则去掉
for(var i = 0; i < row.length; i++){
if(row[i] != '') {
flag = true;
break;
}
}
if(flag) data.push(row);
}
} catch (e) {
err = '解析出错' + e.toString();
}
callback(err, data);
}
importExcel('in.xlsx', function (err, data) {
if(err){
console.log(err);
} else {
console.log(data)
}
})