<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>
Datumsformat formatieren
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);
In diesem Beispiel verwenden wir weiterhin die readFile-Methode der XLSX-Bibliothek, um die Excel-Datei zu lesen.
Dann verwenden wir workbook.SheetNames[0], um den Namen des ersten Arbeitsblatts abzurufen, und rufen das entsprechende Arbeitsblattobjekt über workbook.Sheets[…] ab.
Als Nächstes durchlaufen wir alle Zellen im ersten Arbeitsblatt und prüfen mit der Methode XLSX.SSF.is_date, ob die Zelle ein Datumsformat enthält.
Wenn die Zelle im Datumsformat vorliegt, verwenden wir die Methode XLSX.utils.format_cell, um das Datumsfeld in das angegebene String-Datumsformat zu formatieren.
Schließlich konvertieren wir das Blattobjekt mit der Methode XLSX.utils.sheet_to_json in ein JSON-Objekt und speichern das Ergebnis in der Variablen jsonData.
Sie können die jsonData nach Bedarf weiterverarbeiten, z. B. indem Sie sie in eine Datei schreiben oder andere Vorgänge ausführen.