Изучаю frontend есть такой index.js хочу в нем прочитать файл excel
import xlsx from 'node-xlsx'
let workBook = xlsx.parse('./resources/goods.xlsx');
ReactDOM.render(<App />, document.getElementById('root'));
Но при старте в браузере выводится такое:
TypeError: _fs.readFileSync is not a functionread_binary
На скрине подробнее, помогите плиз понять почему и как с этим справиться?
Node.js сам по себе используется преимущественно на сервере и совершенно точно не предназначен для браузера. Так что если вы хотите выводить excel в браузере с помощью библиотеки node-xlsx, то, помимо вашего фронтенда на React, вам необходим сервер на Node.js с установленным node-xlsx, т.к. этот модуль работает только на сервере.
Впрочем, в общем случае для задачи вывода excel в браузере сервер необязателен. Так, в состав node-xlsx входит библиотека js-xlsx, которая как раз может работать без сервера. js-xlsx предлагает два способа чтения excel файлов без сервера: FileReader API (для современных браузеров) и AJAX-запрос (для старых браузеров). Ниже пример чтения excel файла с помощью FileReader API:
function handleFile(e) {
var files = e.target.files, f = files[0];
var reader = new FileReader();
reader.onload = function(e) {
var data = e.target.result;
var workbook = XLSX.read(data, {type: 'binary'});
/* Вывод содержимого workbook в браузер */
};
reader.readAsBinaryString(f);
}
input_dom_element.addEventListener('change', handleFile, false);
Другие примеры чтения с excel файлов в js-xlsx можно найти здесь.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости