<template>
<div>
<input type="file" id="file-input" @change="handleFileUpload">
</div>
</template>
<script>
export default {
methods: {
handleFileUpload(event) {
const fileInput = event.target;
const file = fileInput.files[0];
// 检查文件类型为<input type="file">时是否是Excel文件
if (file.type === 'application/vnd.ms-excel' || file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
// 处理Excel文件
this.readExcelFile(file);
} else {
alert('请选择一个Excel文件!');
}
},
readExcelFile(file) {
const reader = new FileReader();
reader.onload = (e) => {
const data = e.target.result;
const workbook = XLSX.read(data, {
type: 'binary' });
// 获取第一个工作表
const worksheet = workbook.Sheets[workbook.SheetNames[0]];
// 将工作表转换为JSON对象
const jsonData = XLSX.utils.sheet_to_json(worksheet);
console.log(jsonData);
};
reader.readAsBinaryString(file);
}
}
}
</script>
格式化日期格式
const XLSX = require('xlsx');
// 读取Excel文件
const workbook = XLSX.readFile('your_file.xlsx');
// 获取第一个工作表
const worksheet = workbook.Sheets[workbook.SheetNames[0]];
// 遍历第一个工作表中的单元格
for (const cellAddress in worksheet) {
if (!cellAddress.startsWith('!')) {
const cell = worksheet[cellAddress];
// 检查单元格是否包含日期格式
if (cell.t === 'n' && XLSX.SSF.is_date(cell.z)) {
// 将日期字段格式化为字符串日期
const formattedDate = XLSX.utils.format_cell(cell, {
dateNF: 'yyyy-mm-dd hh:mm:ss' });
// 更新单元格的值为格式化后的日期字符串
worksheet[cellAddress].v = formattedDate;
}
}
}
// 将工作表转换为JSON对象
const jsonData = XLSX.utils.sheet_to_json(worksheet);
console.log(jsonData);
在这个示例中,我们仍然使用XLSX库的readFile方法读取Excel文件。
然后,我们使用workbook.SheetNames[0]获取第一个工作表的名称,并通过workbook.Sheets[…]获取对应的工作表对象。
接下来,我们遍历第一个工作表中的所有单元格,并使用XLSX.SSF.is_date方法检查单元格是否包含日期格式。
如果单元格是日期格式,我们就使用XLSX.utils.format_cell方法将日期字段格式化为指定的字符串日期格式。
最后,我们将工作表对象转换为JSON对象,使用XLSX.utils.sheet_to_json方法,并将结果存储在jsonData变量中。
你可以根据需要进一步处理jsonData,比如将其写入文件或进行其他操作。