js-xlsx使用记录和问题记录

引入js-xlsx包

npm install xlsx --save

导入

import XLSX from 'xlsx'

使用记录

readExcel(file) {
				//清除 上传文件
				this.$refs.upload.clearFiles();
				
				
				const fileReader = new FileReader();
				
				//excel表 列数组
				let sheetArray=[];
				//读取本地文件
				fileReader.onload = (ev) => {
					try {
						//读出的总数据
						const data = ev.target.result;
						
						//读取方式
						// XLSX.utils.sheet_to_csv:生成CSV格式
						
						// XLSX.utils.sheet_to_txt:生成纯文本格式
						
						// XLSX.utils.sheet_to_html:生成HTML格式
						
						// XLSX.utils.sheet_to_json:输出JSON格式
						
				
						const workbook = XLSX.read(data, {
							type: 'binary'
						});
						
						//sheetNames里面保存了所有的sheet名字,然后Sheets则保存了每个sheet的具体内容
						
						for(let sheet in workbook.Sheets) {
							//将每一个表保存成Json格式
							//XLSX.utils.sheet_to_json:输出JSON格式
							let demo=XLSX.utils.sheet_to_json(workbook.Sheets[sheet]);
							
							sheetArray.push(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));
						}
						
						// dm 表一的数据 sheetArray为所有表格的集合
						let dm=sheetArray[0]; //读取第一张表的数据
						let pos=0,max=0; //max为第一张表的行数,pos为第一张表的列数
						for(let i=0;i<sheetArray[0].length;i++){
							console.log(sheetArray[0][i].obje);
							if(pos<Object.keys(dm[i]).length){
								pos=Object.keys(dm[i]).length;
								max=i;
							}
							
						}
						
						
						//关系名称列表 (上级 中级 下级~)
						this.listLabel = Object.keys(dm[max]);
						
						//只读取表一数据  将行转为列
						sheetArray[0].forEach(function(v, k) {
							// debugger
							let participants = [];

							let data = v;
							label.forEach(function(lv, index) {

								

							});
					

						
							tableData.push(temp);

						})

						this.infoList = tableData;
						// console.log(this.infoList);

					} catch(e) {
						//console.log(e);
						this.$message.warning('文件类型不正确!');
						return false;
					}
				};
				this.dialogTableVisible = false;

				fileReader.readAsBinaryString(file.raw);
				//fileReader.readAsArrayBuffer(file.raw);
			},


遇到的问题一

解析表格的时候数据错乱了。

原因:数据里面有换行符,导致我解析的数据错乱了,解决方法,去掉换行符。

replace(/[\r\n]/g,"")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值