NodeJS excel 导入(js-xlsx)

来源:互联网 发布:淘宝开通货到付款流程 编辑:程序博客网 时间:2024/06/13 17:33

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)    }})

3、测试结果

这里写图片描述

————————╮(╯_╰)╭————————