Я импортирую файл Excel в веб-приложение с использованием библиотеки xlsx
, и каждая строка в листе Excel сохраняется в объекте, содержащем массивы, длина которых равна числу ячеек в каждой строке, как показано ниже ...
onFileChange(event: any) {
const inputFile: DataTransfer = <DataTransfer>(event.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 */
console.log(typeof binaryString)
const workSheetName: string = workBook.SheetNames[0];
console.log(workSheetName)
const workSheet: XLSX.WorkSheet = workBook.Sheets[workSheetName];
this.data = <Array>(XLSX.utils.sheet_to_json(workSheet, { header: 1, blankrows: true }));
};
fileReader.readAsBinaryString(inputFile.files[0]);
}
пробуя это ниже
Я пытаюсь создать еще одну функцию getFirstMeaningfulRow
, которая выдала бы первый ряд длиной> = 5, скажем, будет for-loop
подходящий метод, чтобы выполнить это?
using the `find` function
```typescript
getFirstMeaningfulRow() {
console.log(this.data.find(meaningfulRow => this.data.length >= 5
выплевывает первый массив, содержащий строку, содержащую более пяти символов. Пример.
first row imported contains one element, a date MM/DD/YYY so console.log shows
["10 SEPTEMBER, 2019"]
0: "10 SEPTEMBER, 2019"
Я пытаюсь найти первый массив в объекте с более чем 5 элементами в этом массиве, чтобы console.log
показывал:
['item0', 'item1', 'item2', 'item3', 'item4',...]
0: 'item0'
1: 'item1'
2: 'item2'
3: 'item3'
4: 'item4'
...