Я пробовал использовать циклы 2 for, чтобы получить значение ячейки, но только если предположить, что строка заголовка не содержит никакого целочисленного значения (только строка), но данные над таблицей могут содержать или не содержать int, поэтому этот подход по умолчанию ошибочен.
Изменить: вот код
Код: Выделить всё
private static int GetHeaderRowNumber(string docName)
{
Workbook workbook = new Workbook(docName); //csv filepath
Worksheet worksheet = workbook.Worksheets[0]; //first sheet in the workbook
for (int rowIndex = 0; rowIndex < worksheet.Cells.MaxDataRow; rowIndex++)
{
for (int colIndex = 0; colIndex < worksheet.Cells.MaxDataColumn; colIndex++)
{
Cell cell = worksheet.Cells[rowIndex, colIndex];
if (cell.Type == CellValueType.IsString && !string.IsNullOrEmpty(cell.StringValue))
{
return rowIndex + 1; //0-based index
}
}
}
return -1;
}
[img]https://i.sstatic.net /xF18mOni.png[/img]
Предположим, что CSV-файл выглядит следующим образом. Как мне получить номер строки заголовка (полное имя, родство, дата рождения и т. д.). Это всего лишь пример файла, но он может содержать динамические данные, поэтому я не хочу сопоставлять текст заголовка со статическими строками. Кроме того, промежуточные данные могут быть случайной информацией.
Приносим извинения и спасибо
Подробнее здесь: https://stackoverflow.com/questions/789 ... identifier
Мобильная версия