【实现el-input上传的Execl文件读取】

<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,比如将其写入文件或进行其他操作。

猜你喜欢

转载自blog.csdn.net/weixin_43866250/article/details/132607575