Использование EPPlus из Excel в DataTable в C # - PullRequest
0 голосов
/ 27 февраля 2019

В настоящее время я пытаюсь прочитать данные из Excel в DataTable в C # с помощью EPPlus.

Основная проблема, с которой я сталкиваюсь в настоящее время, заключается в том, что пустой столбец в Excel не выбирается, когда я заполняю заголовки для DataTable, и из-за этого, когда я пытаюсь загрузить данные в мой DataTable,столбцы испорчены (данные читаются не в тот столбец).

Есть ли способ сопоставить имя столбца в DataTable с именем столбца таблицы Excel, чтобы они правильно отображались?

Данные Excel

| Column 1  |  Column 2   |      | Column 3 |
|   Value   |    Value    |      |   123    |
|  Value 2  |   Value 2   |      |   234    |

В моих кодахЯ создаю все заголовки в DataTable из Excel

DataTable dt = new DataTable();
ExcelWorksheet ws = xlPackage.Workbook.Worksheets[worksheetName];

foreach (var firstRowCell in ws.Cells[rowStart, 1, rowStart, ws.Dimension.End.Column])
{
    int num = 1;
    string header = firstRowCell.Text;

    Common.writeLog("header - " + firstRowCell);

    if (header.Contains("\n"))
    {
       header = header.Replace("\n", " ");
    }

    while (dt.Columns.Contains(header))
    {
       header = firstRowCell.Text + num;
       num++;

       if (header.Contains("\n"))
       {
           header = header.Replace("\n", " ");
       }
    }

    //Common.writeLog("header - " + header);
    dt.Columns.Add(header);

}

Заголовок DataTable

Column 1 , Column 2 , Column 3

Далее я прочитаю данные Excel в свой DataTable

 int startRow = rowStart + 1;
 for (var rowNum = startRow; rowNum <= ws.Dimension.End.Row; rowNum++)
 {
     var wsRow = ws.Cells[rowNum, 1, rowNum, ws.Dimension.End.Column];
     var row = dt.NewRow();
     foreach (var cell in wsRow)
     {
         try
         {
             row[cell.Start.Column - 1] = cell.Value;
         }
         catch (Exception) { }
     }
     dt.Rows.Add(row);
 }

Текущие данные в DataTable

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