Разбор данных из Excel с использованием js-xlsx - PullRequest
0 голосов
/ 15 января 2019

Я использую 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.log(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, но я не уверен, откуда он это берет. Мне просто нужно получить доступ к этому массиву. Спасибо

1 Ответ

0 голосов
/ 15 января 2019

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

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.log(names);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...