Библиотека Angular 7 и XLSX не может получить доступ к первому столбцу файла и прочитать его в новый массив, если тип файла - xlsx или xls - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь извлечь первый столбец файла Excel, используя библиотеку XLSX, используя:

var reader = new FileReader();
reader.onload = function(e) {
    var data = new Uint8Array(e.target.result);
    var workbook = read(data, {type:"array"});

    // collect your ID's here
};
reader.readAsArrayBuffer(input.files[index]);

Но если я утешу workbook, данные будут закодированы.

Что касается JSON, то он работал в соответствии с этим ответом :

fileUpload(files) {
    if (files && files.length > 0) {
        const file: File = files.item(0);
        const reader: FileReader = new FileReader();
        reader.readAsText(file);
        reader.onload = (e) => {
            const res = reader.result as string; // This variable contains your file as text
            const lines = res.split('\n'); // Splits you file into lines
            const ids = [];
            lines.forEach((line) => {
                ids.push(line.split(',')[0]); // Get first item of line
            });
            console.log(ids);
        };
    }
}

Но все равно не может этого сделать, если тип файла xlsx или xls.

Я пытался тогда:

if (e && e.length > 0) {
    const file: File = e.item(0);
    const reader: FileReader = new FileReader();
    //reader.readAsArrayBuffer(file);
    reader.onload = (e) => {
      const data = reader.result as ArrayBuffer;
      const workbook = new Int32Array(data);
      console.log(JSON.stringify(workbook, null, '  '))
    };

  }

Но ничего не было утешено, и никаких ошибок не отображается.

...