要通过Javascript读取本地Excel文件内容,我们可以使用以下步骤:
-
创建一个
input
元素,设置它的type
属性为file
,并将它添加到HTML页面中。 -
当用户选择Excel文件后,我们可以通过Javascript获取到该文件,可以使用
FileReader
对象将文件读取为二进制数据。 -
将二进制数据转换为
Uint8Array
类型的数组,并使用XLSX
库将其解析为Excel格式。 -
我们可以遍历解析后的Excel数据,并对其进行相关操作。
下面是示例代码:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>读取本地Excel文件内容</title>
</head>
<body>
<input type="file" id="inputFile">
<script src="https://cdn.staticfile.org/xlsx/0.16.9/xlsx.full.min.js"></script>
<script>
const inputFile = document.getElementById('inputFile');
inputFile.addEventListener('change', () => {
const file = inputFile.files[0];
const reader = new FileReader();
reader.onload = (event) => {
const data = new Uint8Array(event.target.result);
const workbook = XLSX.read(data, { type: 'array' });
const sheet = workbook.Sheets[workbook.SheetNames[0]];
const rows = XLSX.utils.sheet_to_json(sheet, { header: 1 });
// 此时我们可以对rows数组进行操作,比如渲染到页面上
console.log(rows);
};
reader.readAsArrayBuffer(file);
});
</script>
</body>
</html>
在上述示例中,我们使用FileReader
对象读取用户选择的Excel文件,并使用XLSX
库解析该文件。解析后的数据被转化为一个二维数组rows,然后可以用来进行其他操作。我们可以将该数组渲染到页面上,或者对其中的数据进行其他处理。
另一个解析本地Excel文件的示例如下:
const inputFile = document.getElementById('inputFile');
inputFile.addEventListener('change', () => {
const file = inputFile.files[0];
const reader = new FileReader();
reader.onload = (event) => {
const data = event.target.result;
const workbook = XLSX.read(data, { type: 'binary' });
workbook.SheetNames.forEach(sheetName => {
const sheet = workbook.Sheets[sheetName];
// 在这里,我们可以遍历sheet,获取里面的数据
console.log(XLSX.utils.sheet_to_json(sheet, { header: 1 }));
});
};
reader.readAsBinaryString(file);
});
这个示例跟上一个示例几乎相同,但是使用了不同的方式解析Excel文件。特别地,我们使用binary
类型的读取方式,而不是array
类型的方式。
需要注意的是,如果要使用这个示例,需要将HTML代码放在一个单独文件中,或者在节点加载完后再执行示例中的Javascript语句。这是因为我们依赖的inputFile
元素需要显示在HTML文档中,否则会无法获取到用户选择的文件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:通过Javascript读取本地Excel文件内容的代码示例 - Python技术站