使用vue解析xlsx包含第一行表头

在使用vue的xlsx解析文件时,由于我的excel文件没有标题行,第一行就是内容了,在使用默认解析方法时,将第一行的内容解析成了列名,查看文档后,返现在使用XLSX.utils.sheet_to_json方法时,要增加参数{header:1}来取消标题列.

xlsx官方文档:https://www.npmjs.com/package/xlsx

下面是我的关于文件解析的代码:


          
                点击上传
                
格式说明:
data() { return { fileList:[], fullscreenLoading:false, fileList:[], updateFileList:[], xlsxDate:[], } } method(){ //更改文件文件的方法,在文件上传按钮中使用:on-change方法属性绑定,file参数是更改的文件,fileList是已选择附件的集合. changeFileList(file, fileList){ this.fullscreenLoading = true; this.xlsxDate=[]; this.updateFileList = fileList; //重新遍历所有的文件进行解析 var j; var len; for(j = 0,len=this.updateFileList.length; j < len; j++) { this.file2Xce(this.updateFileList[j]).then(tabJson => { if (tabJson && tabJson.length > 0) { this.xlsxJson = tabJson; var i; var leng; for(i = 0,leng=this.xlsxJson[0].sheet.length; i < leng; i++) { this.xlsxDate.push(this.xlsxJson[0].sheet[i]); } } }) }; console.log(this.updateFileList); setTimeout(() => { this.fullscreenLoading = false; }, 2000); }, //解析xlsx文件 file2Xce(file) { return new Promise(function(resolve, reject) { const reader = new FileReader() reader.onload = function(e) { const data = e.target.result this.wb = XLSX.read(data, { type: 'binary' }) const result = [] this.wb.SheetNames.forEach((sheetName) => { result.push({ sheetName: sheetName, //添加{header:1},表示第一行不为标题,直接按内容解析为json. sheet: XLSX.utils.sheet_to_json(this.wb.Sheets[sheetName],{header:1}) }) }) resolve(result) } reader.readAsBinaryString(file.raw) }) } }

如果是有多行标题的情况,可以在解析前,删除多余的标题行.

你可能感兴趣的:(使用vue解析xlsx包含第一行表头)