Анализируйте данные из Excel с помощью js-xlsx

Я использую js-xlsx, вот ссылка на мой Лист Excel, если нужно. Я использую следующий код:

/* set up XMLHttpRequest */
var url = "Test.xlsx";
var oReq = new XMLHttpRequest();
oReq.open("GET", url, true);
oReq.responseType = "arraybuffer";

oReq.onload = function(e) {
var arraybuffer = oReq.response;

/* convert data to binary string */
var data = new Uint8Array(arraybuffer);
var arr = new Array();
for(var i = 0; i != data.length; ++i) arr[i] =String.fromCharCode(data[i]);
var bstr = arr.join("");

/* Call XLSX */
var workbook = XLSX.read(bstr, {type:"binary"});

/* DO SOMETHING WITH workbook HERE */
var first_sheet_name = workbook.SheetNames[0];
/* Get worksheet */
var worksheet = workbook.Sheets[first_sheet_name];

console.info(XLSX.utils.sheet_to_json(worksheet,{raw:true}));
}
oReq.send();

В логе консоли я получаю вывод:

(3) […]​0: Object { FirstName: "Mayuresh", MiddleName: "Dinkar ", LastName: "Joshi", … }​1: Object { FirstName: "Arun", MiddleName: "Vikas", LastName: "Pathak", … }​2: Object { FirstName: "Narendra", MiddleName: "Damodardas", LastName: "Modi", … }​length: 3​<prototype>: Array []

Я не знаю, как получить доступ к этим данным. Я не знаю, как это назвать. Я пробовал arr.length, но он вернул только 1, а должен был вернуть 3. Файлы JS возвращают длину 3, но я не уверен, откуда он это берет. Мне просто нужен доступ к этому массиву. Спасибо

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
59
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, работает. Попробуй это увидеть ...

let worksheet = workbook.Sheets[first_sheet_name];
let objects = XLSX.utils.sheet_to_json(worksheet,{raw:true});
let names = objects.map(object => `${object.FirstName} ${object.LastName}`);
console.info(names);

Я получил «TypeError: workbook.map не является функцией». Я знаю, что это работает, я просто не знаю, как подключиться к этому массиву

mcadamsjustin 15.01.2019 04:22

новое редактирование не работает, но let objects = XLSX.utils.sheet_to_json (worksheet, {raw: true}); пусть имена = объекты. карта (объект => ${object.FirstName} ${object.LastName}); сделал

mcadamsjustin 15.01.2019 04:31

ой. извините, ваш ответ был таким быстрым, я думал, вы имеете в виду предыдущее изменение. исправлю обратно. "to_json" - действительно бессмысленное имя для этого совершенно

danh 15.01.2019 04:32

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