Используя EPPlus, доступ к столбцам в Excel, импортируемым по имени - PullRequest
0 голосов
/ 06 апреля 2020

Предположим, у вас очень простой лист 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>();

или каким-либо другим способом определить имя столбца - вместо порядкового положения - для доступа к данным?

Есть идеи?

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