Я импортирую файл Excel, используя xlsx
в angular, где файл Excel импортируется как объект массивов, причем каждый массив является строкой файла 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 */
const workSheetName: string = workBook.SheetNames[0];
const workSheet: XLSX.WorkSheet = workBook.Sheets[workSheetName];
this.data = <Array>(XLSX.utils.sheet_to_json(workSheet,
{header: 1, blankrows: true }));
};
Я сейчас пытаюсь найти столбец, содержащий описание производителя, с помощью поиска Regex, просматривая каждый массив и ища термин cap
как поэтому:
getManufacturerDescriptionColumn()
{
console.log(this.data)
for (const row in this.data)
{
var manDescriptIndex = row.search(/cap/i)
console.log(manDescriptIndex)
if (manDescriptIndex > -1)
{
return manDescriptIndex
}
}
}
однако, когда бы я ни пытался это сделать, даже при том, что в некоторых массивах при запуске этого файла явно присутствует ограничение фразы, мне предоставляются все значения -1
, указывающие, что фраза не найден ни в одном из массивов. Ниже приведен прикрепленный пример, где CAP явно присутствует в паре из 15 строк файла Excel, но я все еще встречаюсь со значениями 15 -1.
![Example Manufacturer Description Column](https://i.stack.imgur.com/I2z2w.png)
Например, массив, индексированный по Любой идеи, почему поиск по регулярному выражению не идентифицирует фразу в этом сценарии, когда я делаю console.log(this.data)
Я могу видеть фразу cap следующим образом:
![Array #13 in object of arrays](https://i.stack.imgur.com/kjNGZ.png)
Я также попытался добавить еще один слой итерации, чтобы также изолировать строки отдельных ячеек в строке, но безрезультатно.