js读取excel表中的数据

来源:互联网 发布:国家电网南瑞集团知乎 编辑:程序博客网 时间:2024/06/09 08:50
<script src="js/xlsx.core.min.js"></script><input type="file" id="excel-file">
$("#excel-file").change(function(e) {            var getPigmentCodeData = new Array();                   var files = e.target.files;            var fileReader = new FileReader();            fileReader.onload = function(ev) {                try {                    var data = ev.target.result,                    workbook = XLSX.read(data, {                        type: 'binary'                    }),                    // 以二进制流方式读取得到整份excel表格对象                    persons = []; // 存储获取到的数据                } catch(e) {                    console.log('文件类型不正确');                    return;                }                  // 表格的表格范围,可用于判断表头是否数量是否正确                var fromTo = '';                // 遍历每张表读取                for (var sheet in workbook.Sheets) {                    if (workbook.Sheets.hasOwnProperty(sheet)) {                        fromTo = workbook.Sheets[sheet]['!ref'];                        console.log(fromTo + "fromTo"); //表有几行数据                        persons = persons.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));                        break; // 如果只取第一张表,就取消注释这行                    }                }                  if (persons.length == 0) {                    alert("文件为空");                }                var errorMes = "";                  console.log(JSON.stringify(persons)) for (var i = 0; i < persons.length; i++) {                    var num = parseInt(i) + 2;                    var getStatus = 0;                    for (var j = 0; j < getPigmentCodeData.length; j++) {                        if (persons[i].色粉编号 == getPigmentCodeData[j]) { //说明导入的色粉编号和数据库中的色粉编号一致                            errorMes = errorMes + "第" + num + " " + "行色粉编号" + persons[i].色粉编号 + "已存在"getStatus = 1                        }                    }                    if (persons[i].色粉编号 == null) {                        errorMes = errorMes + "第" + num + " " + "行色粉编号不能为空;"getStatus = 1                    }                    if (persons[i].颜色 == null) {                        errorMes = errorMes + "第" + num + " " + "行颜色不能为空;"getStatus = 1                    }                    if (persons[i].单价 (元 / kg) == null) {                        errorMes = errorMes + "第" + num + " " + "行单价不能为空;"getStatus = 1                    }                    if (persons[i].库存 (kg) == null) {                        errorMes = errorMes + "第" + num + " " + "行库存不能为空;"getStatus = 1                    }                    if (persons[i].备注 == null) {                        errorMes = errorMes + "第" + num + " " + "行备注不能为空;"getStatus = 1                    }                      if (getStatus == 0) {                        console.log("色粉编号:" + persons[i].色粉编号 + "  颜色:" + persons[i].颜色 + "  单价(元/kg):" + persons[i].单价 (元 / kg) + "  库存(kg):" + persons[i].库存 (kg) + "  备注:" + persons[i].备注);                    }                  }                  alert(errorMes);              };               var headStr ='姓名2,性别,年龄,学校';                  for (var i = 0; i < persons.length; i++) {                    debugger                      if (Object.keys(persons[i]).join(',') !== headStr) {                          persons.splice(i, 1);                      }                  }                           // 以二进制方式打开文件            fileReader.readAsBinaryString(files[0]);        });
js文件下载:
<a href="http://download.csdn.net/download/dylbb818/9595652">http://download.csdn.net/download/dylbb818/9595652</a>



原创粉丝点击