Внешняя таблица не находится в ожидаемом формате.

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

Внешняя таблица не находится в ожидаемом формате.

Я пробовал поиск в Интернете и менял коды здесь и там, но проблема все еще возникает. Я попытался сохранить файл как .xls, и когда я запустил код, страница была отключена с помощью google chrome. Эта веб-страница недоступна (не может даже вводить отладки)

Вот мой код:

string strConnection = ConfigurationManager.ConnectionStrings["---"].ConnectionString; String excelConnString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0\"", filePath); //Create Connection to Excel work book using (OleDbConnection excelConnection = new OleDbConnection(excelConnString)) { //Create OleDbCommand to fetch data from Excel using (OleDbCommand cmd = new OleDbCommand("Select * from [Sheet1$]", excelConnection)) { excelConnection.Open(); using (OleDbDataReader dReader = cmd.ExecuteReader()) { using (SqlBulkCopy sqlBulk = new SqlBulkCopy(strConnection)) { //Give your Destination table name sqlBulk.DestinationTableName = "TableName"; sqlBulk.WriteToServer(dReader); } } } } 

Предполагая, что вы сделали все приготовления, включая установку Microsoft Access 2010 Runtime для приобретения соответствующих драйверов, попробуйте следующее, поскольку я имел успех в прошлом.

Если ваш входной файл имеет тип *.xlsx пытающийся заменить

 Extended Properties="Excel 12.0" 

в вашей строке соединения с

 Extended Properties="Excel 12.0 Xml" 

Обычно эта проблема возникает с проблемным или несоответствующим форматом файла Excel, так что, как правило, первое, что вы хотите попробовать, – это открыть Excel и создать новый .xlsx файл с двумя образцами данных, в которые вы набрали себя ( а не копировать / вставлять). Вам не нужно много вводить текст для проверки fragmentа кода. Пара ячеек с нужной информацией, которую вы ожидаете, сделает. Такой подход устраняет любые проблемы с фактическим файлом Excel, а не с кодом C #.

Дайте нам знать, как вы пошли.