Предположим, у вас очень простой лист Excel:
Hdr1 Hdr2 Hdr3
---------------------------------
Row1Col1 Row1Col2 Row1Col3
Row2Col1 Row2Col2 Row2Col3
Row3Col1 Row3Col2 Row3Col3
Я использую EPPlus v5.0.4 для чтения этого листа Excel в проекте ASP. NET Core v3.1 Web API. ,
Я могу загрузить файл Excel и получить доступ к нужному рабочему листу. Затем я читаю каждую строку как ExcelRange
- заголовок проверяется, а строки данных отправляются в класс для преобразования.
К сожалению, у метода, похоже, есть доступ к столбцам в строка за индексом - что немного неудачно. У меня есть пользователи, которые иногда переключаются между столбцами - и внезапно порядок столбцов перестает быть правильным.
Конечно, я могу выдать исключение и лаять на пользователя - но я бы предпочел иметь возможность получить доступ к столбцам по имени столбца , чтобы при импорте порядок столбцов не имел значения.
Так что мой код сейчас выглядит примерно так:
public override MyEntity ConvertExcelRow(ExcelRange range)
{
// get the fields
string col1 = row[1, 1].GetValue<string>();
string col2 = row[1, 2].GetValue<string>();
string col3 = row[1, 3].GetValue<int>();
return new MyEntity { Field1 = col1, Field2 = col2, Field3 = col3 };
}
Можно ли как-нибудь изменить это значение на
string col2 = row[1, "Hdr2"].GetValue<string>();
или
string col2 = row[1].ColumnByName("Hdr2").GetValue<string>();
или каким-либо другим способом определить имя столбца - вместо порядкового положения - для доступа к данным?
Есть идеи?