Не удается прочитать файл Excel в SheetJS, реагировать

Я очень новичок в реагировании и пытаюсь импортировать файл Excel для просмотра в ответ. Я пытался использовать sheetJS, но это не сработало из-за приведенного ниже сообщения об ошибке.

TypeError: _fs.readFileSync не является функцией

import React from 'react';
import XLSX from 'xlsx';

class Readfile extends React.Components {
...
  var filename = 'test.xlsx';
  var book = XLSX.readFile(filename);
...

Ошибка, кажется, исходит от функции readFile. Есть ли какие-либо шаги, которые я пропустил для кодирования? Заранее спасибо.


person 中嶋 優一    schedule 04.01.2021    source источник


Ответы (1)


Библиотека xlsx поддерживает как браузер, так и NodeJS. Однако некоторые специфические функции работают только в NodeJS.

readFile функции читают файлы из файловой системы, и у вас нет доступа к файловой системе в браузере.

В браузере доступны следующие опции:


Например, этот файл доступен на https://example.com/test.xlsx, вы можете используйте следующий фрагмент:

var url = "https://example.com/test.xlsx";
 
/* set up async GET request */
var req = new XMLHttpRequest();
req.open("GET", url, true);
req.responseType = "arraybuffer";
 
req.onload = function(e) {
  var data = new Uint8Array(req.response);
  var workbook = XLSX.read(data, {type:"array"});
 
  /* DO SOMETHING WITH workbook HERE */
}
 
req.send();
person KiraLT    schedule 04.01.2021
comment
Извините за задержку с ответом и спасибо @KiraLT !! - person 中嶋 優一; 11.01.2021