Импортируйте лист excel с помощью jet.oledb.4.0, установив первую строку как имя столбца

Я пытаюсь импортировать файл excel в datatable при использовании Jet.Oledb . Вот мой код:

string sourceConstr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + HttpContext.Current.Server.MapPath("~/" + fileName) + "';Extended Properties='Excel 8.0;HDR=No;IMEX=1'"; OleDbConnection con = new OleDbConnection(sourceConstr); OleDbCommand oleDbCmd = new OleDbCommand(); con.Open(); oleDbCmd.Connection = con; DataTable dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); string firstExcelSheetName=dt.Rows[0][2].ToString(); string query = "select * from [" + firstExcelSheetName + "]"; OleDbDataAdapter data = new OleDbDataAdapter(query, con); data.TableMappings.Add("Table", "dtExcel"); data.Fill(dtExcel); 

В файле excel первая строка имеет имя столбца. но мой datatable получает (f1, f2, f3, …) как имя столбца и первую строку файла excel в качестве первой строки. Поэтому я могу догадаться, что должен сказать, что первая строка содержит columnName. Но как я могу это сделать?

Цитата из connectionstrings.com :

"HDR = Yes"; указывает, что первая строка содержит имена столбцов, а не данные. "HDR = No;" указывает на противоположное.

Поэтому вы можете попробовать изменить строку подключения для установки HDR=Yes .

есть только небольшое изменение, как показано ниже, в строке соединения, т.е. sourceConstr в вашем случае.

 HDR=Yes 

вместо

 HDR=No 

после изменения это было бы

 string sourceConstr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + HttpContext.Current.Server.MapPath("~/" + fileName) + "';Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'"; 
  • C # OleDBConnection Excel
  • Oledb on wcf имеет некоторые проблемы с большими файлами excel?
  • Чтение файлов Excel независимо от языка
  • Механизм базы данных Microsoft Jet не смог найти объект «Sheet1 $ _»
  • Как удалить дубликаты записей с листа excel с помощью oledb
  • Чтение определенной области из Excel в 2D-массив
  • Импорт данных из базы данных Excel в SQL Server с использованием Microsoft.ACE.OLEDB.12.0
  • Открытие Excel (созданного с помощью EPPLUS) с помощью OleDB
  • Импорт данных из Excel в SQL-сервер с помощью функции подстроки в запросе
  • Вставьте другие данные в Excel с помощью OleDb C #
  • Создание листа Excel с помощью ADO.NET (OleDb) -> Какие типы данных поддерживаются?
  • Давайте будем гением компьютера.