Используйте индекс общих вещей для стандартизации столбцов в таблице Excel - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь стандартизировать элементы таблиц 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
  }
}

Есть идеи, как это можно сделать или я на правильном пути к изоляции переменной, которую я пытаюсь найти?

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