前端实现导入Excel并解析

chooseFile() {
			let _this = this;
			let sn = [];
			uni.chooseFile({
				count: 6, //默认100
				extension: ['.xlsx','.xls'],
				success: (res) => {
					console.log(res);
					console.log(res.tempFiles[0].name);
					this.name = res.tempFiles[0].name;
					// this.uploadFile(JSON.stringify(res.tempFilePaths))
					let fileName = res.tempFiles[0]
					let reader = new FileReader()
					//启动函数
					reader.readAsBinaryString(fileName)
					// //onload在文件被读取时自动触发
					reader.onload = function(e) {
						//     //workbook存放excel的所有基本信息
						let workbook = XLSX.read(e.target.result, {
							type: 'binary'
						})
						//     //定义sheetList中存放excel表格的sheet表,就是最下方的tab
						let sheetList = workbook.SheetNames
						//     //存放json数组格式的表格数据
						let resultJson = []
						//     //存放字符串数组格式的表格数据
						let resultArr = []
					 let sheet2JSONOpts = {
							/** Default value for null/undefined values */
							defval: '' //给defval赋值为空的字符串
						}
						sheetList.forEach((y) => {
							let worksheet = workbook.Sheets[y]
							//多传一个sheet2JSONOpts参数是想为空的列表默认传参为''
							let excelData = XLSX.utils.sheet_to_json(workbook.Sheets[y],
								sheet2JSONOpts) //每行以json数组形式输出
							let excelL = XLSX.utils.sheet_to_formulae(workbook.Sheets[
								y]) //生成一个excel的公式列表,可以获取到表格所有信息
							let arr = []; //为了实现多表
							console.log("每行以json数组形式输出", excelData)


							excelData.map((item, index) => {
								console.log(_this.sn, '9999')
								if (item.sn) {
									sn.push(item.sn)
								}
								if (item.isbn && index == 0) {
									_this.isbn = item.isbn
								}
							})
							if (sn.length > 0) {
								_this.isshowbnt = true;
								_this.sn = sn;
							}else{
								uni.showToast({
									title: '请确认sn号或isbn是否正确',
									icon: 'none',
									duration: 1000
								});
							}

							console.log('第一列结果', _this.sn, _this.isbn);
						});
					};



				}
			});
		},
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值