1、官方地址github.com/SheetJS/js-…
2、在dist目录下下载文件xlsx.core.min.js
3、读取excel
// 读取本地excel文件
function readWorkbookFromLocalFile(file, callback) {
var reader = new FileReader();
reader.onload = function(e) {
var data = e.target.result;
var workbook = XLSX.read(data, {type: 'binary'});
if(callback) callback(workbook);
};
reader.readAsBinaryString(file);
}
// 从网络上读取某个excel文件,url必须同域,否则报错
function readWorkbookFromRemoteFile(url, callback) {
var xhr = new XMLHttpRequest();
xhr.open('get', url, true);
xhr.responseType = 'arraybuffer';
xhr.onload = function(e) {
if(xhr.status == 200) {
var data = new Uint8Array(xhr.response)
var workbook = XLSX.read(data, {type: 'array'});
if(callback) callback(workbook);
}
};
xhr.send();
}
4、读取workbook
// 读取 workbook
function readWorkbook(workbook) {
let sheetNames = workbook.SheetNames; // 工作表名称集合
let worksheet = workbook.Sheets[sheetNames[0]]; // 这里我们只读取第一张sheet
let csv = XLSX.utils.sheet_to_csv(worksheet);
return csv2table(csv)
}
// 将csv转换成简单的表格,会忽略单元格合并,在第一行和第一列追加类似excel的索引
function csv2table(csv) {
let arrs = [];
let rows = csv.split('\n');
let first_rows = rows.shift().split(','); // 第一行没用的
rows.pop(); // 最后一行没用的
rows.forEach(function (row, idx) {
let columns = row.split(',');
let obj = {}
columns.forEach(function (col, idx) {
obj[first_rows[idx]] = col
})
arrs.push(obj)
});
return arrs;
}