怎么读取Excel文件并解析处理

555 阅读1分钟

思路:文件选择 => FileReader对象得到二进制数据 => XLSX处理二进制数据 => 得到数据

  • 导入按钮样式与事件

    准备一个默认隐藏的 input file框<input type="file">,点击按钮触发隐藏 input file 的点击选择事件

  • 对得到的文件信息进行处理

// change事件
excelFileMethod(e) {
    var _this = this
	//  excel文件信息
	const files = e.target.files
	console.log(files);
	// 构建fileReader对象
	const fileReader = new FileReader()
	// 读取操作完成时
	fileReader.onload = function(e) {
		try {
			// 二进制数据
			console.log(e.target.result)
			

		} catch (e) {
			console.log('文件类型不正确')
			return
		}
	}
	// 读取指定文件内容
	fileReader.readAsBinaryString(files[0])
	}

第一步我们需要构建一个新的FileReader对象 第二步使用FileReader.readAsBinaryString()读取指定的Blob中的内容。一旦完成,result属性中将包含所读取文件的原始二进制数据。 第三步就是FileReader.onLoad该事件在读取操作完成时触发。

  • 对得到的二进制数据进行处理

    首先需要npm下载xlsx,然后导入

    import XLSX from 'xlsx'

    通过上面的代码我们已经得到了二进制数据了,使用 XLSX.read(data, { type: type}) 方法来实现对得到的二进制数据进行处理,type主要取值如下:

    • base64:以base64方式读取
    • binary:BinaryString格式( byte n is data.charCodeAt(n) )
    • string:UTF8编码的字符串
    • buffer:nodejs Buffer
    • array:Uint8Array,8位无符号数组
    • file:文件的路径(仅nodejs下支持)

这个方法会返回一个workBook对象,解析workBook对象的方法:

  • ​ XLSX.utils.sheet_to_csv:生成CSV格式
  • ​ XLSX.utils.sheet_to_txt:生成纯文本格式
  • ​ XLSX.utils.sheet_to_html:生成HTML格式
  • ​ XLSX.utils.sheet_to_json:输出JSON格式