2010-12-01 4 views
0

Iam пытается открыть файл XLSX (чтобы я мог создать datatable) Iam, используя приведенный ниже код.Невозможно открыть файл Excel с помощью System.Data.OleDb.OleDbConnection

System.Data.OleDb.OleDbConnection oleDbCon; 
System.Data.OleDb.OleDbDataAdapter oleDbDataAd; 
oleDbCon = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + filePath + "';Extended Properties=Excel 8.0;"); 

но когда путь содержит файл с расширением XLSX, я получаю сообщение об ошибке «Внешняя таблица не в ожидаемом формате.»

Над кодом работает отлично, когда файл имеет расширение xls.

Должен ли я изменить строку соединения?

Любая помощь? Спасибо в Advance.

ответ

4

изменил строку подключения к

public static string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" 
    + path + ";Extended Properties=Excel 12.0;"; 
1

.xlsx имеет различные connectionstrings

+0

Спасибо, Hallie ... Изменил строку подключения, и она начала работать. – Ananth 2010-12-01 09:32:10

2
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source=" 
    + Path +";"+"Extended Properties=Excel 8.0;"; 
OleDbConnection conn = new OleDbConnection(strConn); 
conn.Open(); 
string strExcel = ""; 
OleDbDataAdapter myCommand = null; 
DataSet ds = null; 
strExcel="select * from [sheet1$]"; 
myCommand = new OleDbDataAdapter(strExcel, strConn); 
ds = new DataSet(); 
myCommand.Fill(ds,"table1"); 
return ds;