Как читать Excel по URL-адресу в React JS

Невозможно преобразовать данные, возвращаемые Uint8Array, из Excel в строку с помощью xlsx-js Sheet JS

Я пытаюсь прочитать excel из URL-адреса SharePoint в React JS с помощью библиотеки xlsx-js (Sheet JS). Однако данные, возвращаемые в объекте, имеют форму Uint8Array, и я не могу преобразовать их обратно в строку.

const XLSX = require('xlsx');
let url = "https://cors-anywhere.herokuapp.com/https://sharepoint.com/URL/SAC1Planning.xlsx";
    let req = new XMLHttpRequest();
    req.open("GET", url, true);
    req.responseType = "arraybuffer";
    req.onload = function(e){
      let enc = new TextDecoder("utf-8");
      let data = new Uint8Array(req.response);
      let workbook = XLSX.read(data, {type:"buffer"});
      console.log(workbook);
    }
    req.send();

Возвращенный объект выглядит в консоли так:

Когда я читаю его, используя следующий фрагмент кода, возвращается случайное целое число... даже подумал, что у меня есть строка в Excel @ в том же месте!

      let worksheet = workbook.Sheets[workbook.SheetNames[0]];
      let cellValue = worksheet["C1"].v;
      console.log(cellValue);

Фактическая строка в excel = "Amrita"

Возвращено cellValue в консоли = 10

обратите внимание, что я могу получить доступ к значениям, однако я получаю только числа, даже если у меня есть строки в моем excel в местоположении ячейки. Но я не могу развернуть Sheet1 в excel, когда я это делаю... Я ничего не вижу

ЧТО Я ПРОВЕРИЛ

  1. используя TextDecoder
  let cellValue = new TextDecoder("utf-8").decode(worksheet["C1"].v);
  1. используя fromCharCode
    String.fromCharCode.apply(null, workbook)

Это не сработало!

Также обратите внимание, что когда я ввожу "массив" в качестве типа в XLSX.read() - я получаю пустой объект и никаких данных из Excel.

0 ответов

Другие вопросы по тегам