XLSX.js解析Excel中的数据,<input type='file' />控件中

huaan011 / 2025-01-20 / 原文

在页面中添加一个:

<input type="file" class="txt" style="width: 300px; height: 25px; line - height: 25px; color:#000000; " id="file01" />

在页面中添加javascript代码:

  document.getElementById("file01").addEventListener('input',
      function (e) {
          var file = e.target.files[0];
          var reader = new FileReader();
          reader.onload = function (e) {
              // var data = new Uint8Array(e.target.result);
              // var workbook = XLSX.read(data, { type: 'array' });
              const data = e.target.result
              const workbook = XLSX.read(data, {
                  type: 'binary',
                  cellDates: true
              });
              // 假设我们只读取第一个工作表
              var firstSheetName = workbook.SheetNames[0];
              var worksheet = workbook.Sheets[firstSheetName];
              // 将工作表转换为JSON  jsonData就是解析出来的 excel中的数据,根据实际需求情况来处理数据
              var jsonData = XLSX.utils.sheet_to_json(worksheet); 
              //console.log(jsonData);
              // 显示结果
              //document.getElementById('output').innerText = JSON.stringify(json);
              if (checkData(jsonData)) {
                  for (let xh = 0; xh < jsonData.length; xh++) {
                      let tempData = jsonData[xh];
                      tempData.起飞时间 = tempData.起飞时间.gdcFormat("YYYY-MM-DD hh:mm:ss");
                      tempData.预订日期 = tempData.预订日期.gdcFormat("YYYY-MM-DD hh:mm:ss");
                  }
                  vm.$data.dataList = jsonData;// JSON.stringify(json);  解析出来的数据使用 vue显示,这里看用户自己的实际绣球来处理了
                  dataList = jsonData;
                  //console.log(vm.$data.dataList);
              }
          };
          reader.readAsArrayBuffer(file);
          readXls();
      });