javascrip从本地导入excle并读取文件用SheetJS或XLSX有没有具体案例
时间: 2024-02-11 17:05:35 浏览: 151
当然有,下面是一个使用SheetJS的具体案例,它使用一个文件选择器允许用户选择要导入的Excel文件,并将其读取并转换为HTML表格:
```html
<template>
<div>
<input type="file" ref="fileInput" @change="handleFileChange">
<div class="table-container" v-html="html"></div>
</div>
</template>
<script>
// 导入SheetJS库
import XLSX from 'xlsx';
export default {
data() {
return {
html: ''
}
},
methods: {
handleFileChange(event) {
// 获取文件对象
const file = event.target.files[0];
// 创建文件读取器
const reader = new FileReader();
// 文件读取完成后的回调函数
reader.onload = () => {
// 将二进制数据转换为工作簿对象
const data = new Uint8Array(reader.result);
const workbook = XLSX.read(data, {type: 'array'});
// 获取第一个工作表
const sheetName = workbook.SheetNames[0];
const sheet = workbook.Sheets[sheetName];
// 将工作表转换为HTML表格
this.html = XLSX.utils.sheet_to_html(sheet);
};
// 读取文件
reader.readAsArrayBuffer(file);
}
}
}
</script>
<style scoped>
.table-container {
font-family: Arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
.table-container td, .table-container th {
border: 1px solid #ddd;
padding: 8px;
}
.table-container th {
text-align: left;
background-color: #f2f2f2;
}
</style>
```
这个示例代码使用`<input type="file">`元素创建了一个文件选择器,允许用户选择要导入的Excel文件。当用户选择文件后,`handleFileChange`方法会被调用,它使用`FileReader`对象读取文件数据,并将其转换为工作簿对象。接下来,它使用SheetJS将工作表转换为HTML表格,并将其渲染到页面上。
需要注意的是,由于浏览器的安全限制,JavaScript无法直接访问本地文件系统中的文件,因此需要使用`FileReader`对象将文件数据读取到内存中。另外,由于SheetJS需要将文件数据解析为二进制格式,因此需要使用`Uint8Array`类型对文件数据进行处理。
阅读全文