Я пытаюсь стандартизировать элементы таблиц Excel с различным форматированием в новую таблицу, которая стандартизирована в строках столбцов. Говоря лучше, взяв электронную таблицу, которую клиент дает мне, и с помощью алгоритма создаю новую таблицу в формате, который мне легче читать. Например, если клиент пытается заказать связку обуви, иногда он может представить таблицу с именами столбцов [Shoe Brand, Shoe Model, Quantity]
или предоставить таблицу с именами столбцов, например [Shoe Mfg, Mdl, Qty]
, или более вопиющий пример, который был получен [SB, SM, Q]
. Это хорошо и удобно для чтения по большей части, но для целей стандартизации хорошо, чтобы все заказы были размещены в таблице одного и того же формата. Как указывалось в предыдущем вопросе, способ импорта таблиц выглядит примерно так:
read-excel-component.ts
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]);
}
что он читает Файл Excel как объект массивов, и каждый массив в этом объекте является строкой таблицы Excel. То, что я пытаюсь сделать, это найти значение индекса массива, в котором находятся некоторые распространенные бренды обуви (Nike, Adidas, Puma, New Balance и т. Д. c. Et c.), И использовать это значение индекса, чтобы затем обозначить позиции всех марок обуви и переместите их в их собственный массив.
импортируемая таблица называется data
, например, если нужно иметь nike в пятом месте четвертого массива строк Я хотел бы, чтобы переменная brandIndex
давай назовем ее значением 5.
Что я знаю Я знаю, что мне придется выполнить какую-то итерацию по таблице, вероятно, для цикл, поэтому я попытался
for(var row in this.data) {
if(this.data[row].indexOf('Nike') == -1 || this.data[row].indexOf('Adidas) == -1 ||
this.data[row].indexOf('Puma)...] {
row+=1
}
else{
var brandIndex = ??? <- here I am very confused how I might isolate the index value into a
single number
}
}
Есть идеи, как это можно сделать или я на правильном пути к изоляции переменной, которую я пытаюсь найти?