结合xlsx库、FileReader来处理 Excel 文件

安装xlxs库

1
npm install xlsx

或者

1
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.17.0/xlsx.full.min.js"></script>

使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// 选择文件的 input 元素
const fileInput = document.getElementById('fileInput');

fileInput.addEventListener('change', (event) => {
const file = event.target.files[0];

if (file) {
const reader = new FileReader();

reader.onload = (e) => {
// 读取文件的二进制数据
const data = new Uint8Array(e.target.result);
const workbook = XLSX.read(data, { type: 'array' });

// 获取第一个工作表
const firstSheetName = workbook.SheetNames[0];
const worksheet = workbook.Sheets[firstSheetName];

// 将工作表转换为 JSON
const jsonData = XLSX.utils.sheet_to_json(worksheet);
console.log(jsonData); // 输出读取到的数据
};

// 读取文件为 ArrayBuffer
reader.readAsArrayBuffer(file);
}
});

注意

在使用 XLSX.utils.sheet_to_json 时,默认情况下,第一行通常会被视为表头。如果你的 Excel 文件第一行是标题,它会被用作 JSON 对象的键,因此数据从第二行开始。
如果你希望读取所有行,包括第一行,可以通过设置 header 选项来实现。

1
const jsonData = XLSX.utils.sheet_to_json(worksheet, { header: 1 });