如何使用文件的路径使用 reactjs 或 javascript 读取 excel 文件中的数据

问题描述

我想通过文件路径直接读取文件内容。我可以通过选择文件来做到这一点。但我不知道如何使用直接文件路径来做到这一点。我找不到任何示例或来源。下面是我通过从输入中选择文件来读取文件方法

import * as XLSX from 'xlsx';
var items = [];

readExcel = (file) => {
const promise = new Promise((resolve,reject) => {
  const fileReader = new FileReader();
  fileReader.readAsArrayBuffer(file);

  fileReader.onload = (e) => {
    const bufferArray = e.target.result;

    const wb = XLSX.read(bufferArray,{ type: "buffer" });

    const wsname = wb.SheetNames[0];

    const ws = wb.Sheets[wsname];

    const data = XLSX.utils.sheet_to_json(ws);

    resolve(data);
  };

  fileReader.onerror = (error) => {
    reject(error);
  };
});

promise.then((d) => {
  this.items = d;
  console.log(this.items)

  // fill dictionary
  this.dictionary = Object.assign({},...this.items.map((x) => ({ [x.PartNumber]: x.Cost })));
  console.log(this.dictionary)

});

};

<input
        type="file"
        onChange={(e) => {
          const file = e.target.files[0];
          this.readExcel(file);
        }}
      />

解决方法

我相信它应该有效:

const req = new XMLHttpRequest();
req.responseType = "arraybuffer";
req.open("GET","https://.../MyExcelFile.xlsx",true);

req.onload = () => {
  const bufferArray = req.response;
  const wb = XLSX.read(bufferArray,{ type: "buffer" });
  ...