vue使用xlsx导入Excel的代码
时间: 2024-05-09 16:20:07 浏览: 113
以下是使用xlsx导入Excel的Vue代码:
1. 安装xlsx
```
npm install xlsx --save
```
2. 在Vue组件中引入xlsx
```js
import XLSX from 'xlsx';
```
3. 编写导入Excel的方法
```js
export default {
data() {
return {
excelData: [], // 存储导入的Excel数据
};
},
methods: {
handleImportExcel(file) {
/* 获取上传的文件对象 */
const { files } = file.target;
/* 如果没有上传文件,直接返回 */
if (!files.length) {
return;
}
/* 使用FileReader对象读取Excel文件 */
const reader = new FileReader();
reader.onload = (event) => {
/* 读取到的数据 */
const data = event.target.result;
/* 通过xlsx将数据转换为数组 */
const workbook = XLSX.read(data, { type: 'binary' });
/* 获取Excel中第一个Sheet名称 */
const sheetName = workbook.SheetNames[0];
/* 根据Sheet名称获取Sheet */
const sheet = workbook.Sheets[sheetName];
/* 将Sheet中的数据转换为数组 */
const excelData = XLSX.utils.sheet_to_json(sheet, { header: 1 });
/* 将excelData存储到data中 */
this.excelData = excelData;
};
/* 以二进制方式读取文件 */
reader.readAsBinaryString(files[0]);
},
},
};
```
4. 在模板中添加上传Excel的表单
```html
<template>
<div>
<input type="file" @change="handleImportExcel" />
<table>
<thead>
<tr>
<th v-for="(item, index) in excelData[0]" :key="index">{{ item }}</th>
</tr>
</thead>
<tbody>
<tr v-for="(item, index) in excelData.slice(1)" :key="index">
<td v-for="(cell, i) in item" :key="i">{{ cell }}</td>
</tr>
</tbody>
</table>
</div>
</template>
```
以上就是使用xlsx导入Excel的Vue代码,希望对你有所帮助。
阅读全文