Импорт файла Excel с использованием Asyn c Функция TypeScipt - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь использовать библиотеку xlsx angular для импорта файла Excel на мою страницу:

Используя некоторые рекомендации из документации библиотеки xlsx, я выполнил следующую функцию:

public async ParseExcelFile(excelFile)
{
//Set up empty Excel Array
let excelContents : Array<any> = [];
let error : any = null;
return new Promise<Object>((resolve, reject) =>
  {
    var file = document.getElementById(excelFile)
    const inputFile: DataTransfer = <DataTransfer>(excelFile.target); 
    const fileReader: FileReader = new FileReader();
    fileReader.onload = (event: any) => 
    {
      const binaryString: string = event.target.result;
      const workBook: XLSX.WorkBook = XLSX.read(binaryString, { type: 'binary', sheetStubs: true}); 
      /* sheetstubs true supposedly shows empty cells but isn't */

      const workSheetName: string = workBook.SheetNames[0];
      const workSheet: XLSX.WorkSheet = workBook.Sheets[workSheetName];

      excelContents = <aoa>(XLSX.utils.sheet_to_json(workSheet, 
      {header: 1, blankrows: true })); 
    };
    fileReader.readAsBinaryString(inputFile.files[0]); 

однако, при загрузке файла с использованием ввода html, я столкнулся со следующей ошибкой:

Error: Uncaught (in promise): TypeError: undefined is not an object (evaluating 'excelFile.target')

У меня возникли небольшие проблемы с выявлением проблемы Однако, любое руководство или помощь будет высоко ценится.

1 Ответ

0 голосов
/ 12 февраля 2020

Выглядит как простая ошибка.

Переданный вами параметр excelFile не является объектом. Вы имели в виду использовать переменную file, которую вы определили здесь?

var file = document.getElementById(excelFile);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...