以下是使用xlsx导入表格的代码示例:
-
安装依赖包
npm install xlsx -S
-
引入xlsx和vue-xlsx
js
import * as XLSX from "xlsx";
import VueXlsx from "vue-xlsx";
- 在Vue组件中使用VueXlsx
vue
<template>
<div>
<input type="file" @change="uploadFile">
<table>
<tr v-for="(row, index) in rows" :key="index">
<td v-for="(cell, idx) in row" :key="idx">{{ cell }}</td>
</tr>
</table>
</div>
</template>
<script>
import * as XLSX from "xlsx";
import VueXlsx from "vue-xlsx";
export default {
components: {
VueXlsx,
},
data() {
return {
rows: [],
columns: [],
};
},
methods: {
uploadFile(event) {
const input = event.target;
const reader = new FileReader();
reader.onload = async () => {
const data = reader.result;
const workbook = XLSX.read(data, { type: "binary" });
const sheetName = workbook.SheetNames[0];
const worksheet = workbook.Sheets[sheetName];
const json = XLSX.utils.sheet_to_json(worksheet, { header: 1 });
this.rows = json;
};
reader.readAsBinaryString(input.files[0]);
},
},
};
</script>
这个示例代码实现了一个简单的表格,用户可以通过选择Excel文件上传,然后表格会自动填充。具体实现是先通过FileReader将上传的文件读取为二进制数据,然后使用xlsx将它解析成JSON数据,最后将JSON数据填充到表格中。