-
在终端安装xlsx 对应版本
npm i xlsx@0.16.8
-
选择EXCEL文件代码
<!-- 选择excel文件 -->
<input ref="upload" type="file" accept=".xlsx,.xls" @change="onImportExcel" />
-
methods中添加方法
//excel导入文件
onImportExcel() {
// 通过文件选择器选择文件
debugger
let selectedFile = event.target.files;
if(selectedFile.length<=0)return
// 将文件读取为二进制字符串
let reader = new FileReader();
reader.readAsBinaryString(selectedFile[0]);
// 文件读取成功后
reader.onload = () => {
// 将文件内容解析为workbook对象
let workbook = XLSX.read(reader.result, { type: 'binary' });
// 获取sheet名称列表
let sheetNames = workbook.SheetNames;
// 获取第一个sheet名称
let sheetName = sheetNames[0];
// 获取第一个sheet
let sheet = workbook.Sheets[sheetName];
// 将sheet转换为JSON对象
let json = XLSX.utils.sheet_to_json(sheet);
// 打印JSON对象
console.log(json);
};
}
4、使用element-ui简单美化了一下页面后的代码
<template>
<!-- 选择excel文件 -->
<input ref="upload" type="file" style="display: none;" accept=".xlsx,.xls"
@change="onImportExcel" />
<el-button round @click="excel_file()">选择EXCEL文件</el-button>
</template>
<script>
export default {
methods: {
//选择excel按钮
excel_file() {
this.$refs.upload.click()
},
//excel导入文件
onImportExcel() {
// 通过文件选择器选择文件
debugger
let selectedFile = event.target.files;
if(selectedFile.length<=0)return
// 将文件读取为二进制字符串
let reader = new FileReader();
reader.readAsBinaryString(selectedFile[0]);
// 文件读取成功后
reader.onload = () => {
// 将文件内容解析为workbook对象
let workbook = XLSX.read(reader.result, { type: 'binary' });
// 获取sheet名称列表
let sheetNames = workbook.SheetNames;
// 获取第一个sheet名称
let sheetName = sheetNames[0];
// 获取第一个sheet
let sheet = workbook.Sheets[sheetName];
// 将sheet转换为JSON对象
let json = XLSX.utils.sheet_to_json(sheet);
// 打印JSON对象
console.log(json);
};
}
}
}
</script>