Изучаю 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
можно найти здесь.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Как определить маску email для вводимого поля с помощью этой библиотеки?
как изменить стандартные dots на текст (подпись слайда)То есть - при нажатии на cat 2 переключается на второй слайд, и т
Имеется такой простой (лишнее специально вырезал) компонент: