Как открыть файл Excel в ASP.NET с помощью C #

У меня есть файл excel, который мне нужно открыть и выполнить поиск. Это код, который я использую:

public partial class _Default : System.Web.UI.Page { string connStr; string absoluteDir; string relativeDir; protected void Page_Load(object sender, EventArgs e) { relativeDir = "~/data" + System.IO.Path.DirectorySeparatorChar + "zadacaEXCEL.xlsx"; absoluteDir = Server.MapPath( relativeDir ); Label1.Text = absoluteDir + " "; connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + absoluteDir + ";Extended Properties=\"Excel 8.0;HDR=Yes\""; //string connString = ConfigurationManager.ConnectionStrings["xls"].ConnectionString; // Create the connection object OleDbConnection oledbConn = new OleDbConnection(connStr); try { // Open connection oledbConn.Open(); // Create OleDbCommand object and select data from worksheet Sheet1 OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", oledbConn); // Create new OleDbDataAdapter OleDbDataAdapter oleda = new OleDbDataAdapter(); oleda.SelectCommand = cmd; // Create a DataSet which will hold the data extracted from the worksheet. DataSet ds = new DataSet(); // Fill the DataSet from the data extracted from the worksheet. oleda.Fill(ds); // Bind the data to the GridView GridView1.DataSource = ds.Tables[0].DefaultView; GridView1.DataBind(); } catch(Exception err) { Label1.Text += err.ToString(); } finally { // Close connection oledbConn.Close(); } } 

и это ошибка, которую я получаю:

 System.Data.OleDb.OleDbException: External table is not in the expected format. at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.OleDb.OleDbConnection.Open() at _Default.Page_Load(Object sender, EventArgs e) in c:\Users\ACO\Documents\Visual Studio 2008\WebSites\za_rabota\Default.aspx.cs:line 33 

Ошибка происходит в oledbConn.Open ();

Может кто-нибудь ПОЖАЛУЙСТА, скажите мне, что я делаю неправильно здесь. файл excel находится в папке с именем data в решении

Тип и строка вашего провайдера неверны для Excel 2007 и больших файлов (заканчивающихся на .xslx). Вам нужно использовать строку соединения OLEDB 12.0 .

Что-то вроде:

 connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + absoluteDir + ";Extended Properties="Excel 12.0 Xml;HDR=YES"; 
  • Импортируйте лист excel с помощью jet.oledb.4.0, установив первую строку как имя столбца
  • Чтение из файла excel с использованием oledb - пустые строки
  • C # изменение переменной типа динамически при сохранении в файле excel
  • Ошибка формата данных. Экспорт GridView в Excel
  • C # Excel VSTO - Можно ли перемещать переменную?
  • Получить строку из файла Excel в C #
  • c # Ошибка макроса макроса Excel 13 Несоответствие типов данных после копирования данных с одного листа на другой
  • Как легко получать данные из C # в Excel с помощью VSTO и обратно
  • быстрый доступ к файлам Excel в C #
  • загрузка файла excel в базу данных, но некоторые столбцы, идущие в нуль
  • Диапазон значений DataTable в Excel за один снимок?
  • Давайте будем гением компьютера.