Excel в DataTable найти заголовки столбцов в C#? - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть несколько файлов Excel, которые я перебираю один за другим и загружаю в DataTable.

В строке подключения к Excel я установил HDR = Да.

Проблема в том, что у каждого Excel есть различный набор данных.

Некоторые Excel имеют заголовок как саму первую строку, в то время как для некоторых он идет во второй строке. Я пробовал приведенный ниже код, но не получил правильный вывод, когда Excel для Excel отличается

  excelConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;"
                                  + @"Data Source=" + filePath + ";"
                                  + "Extended Properties='Excel 12.0 XML;IMEX=1;HDR=YES;TypeGuessRows=0;MAXSCANROWS=0;ImportMixedTypes=Text'";

   // Dataset filled from Excel data - Post that below code

    foreach (DataColumn column in excelDataSet.Tables[0].Columns)
                    {
                        string cName = excelDataSet.Tables[0].Rows[0][column.ColumnName].ToString();
                        if (!excelDataSet.Tables[0].Columns.Contains(cName) && cName != "")
                        {                        
                            column.ColumnName = cName;
                        }
                    }

Как динамически установить заголовки строк в DataTable с помощью C#?

1 Ответ

0 голосов
/ 03 апреля 2020

У вас есть синтаксическая ошибка в операторе if, попробуйте следующее:

if ((!excelDataSet.Tables[0].Columns.Contains(cName)) && (cName != ""))

Ваш код для изменения имени столбца должен быть в порядке: column.ColumnName = cName;

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