Ich habe einen WEB-API-Dienst entwickelt, der beim Hochladen von Benutzern Daten aus der Excel-Datei liest.Externe Tabelle ist nicht im erwarteten Format OLEDB 12.0 mit Excel 2007
Ich benutze OLEDB, wie folgend:
if (Path.GetExtension(filePath).ToUpper() == ".XLS")
{
oledbConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=\"Excel 8.0;HDR=Yes;\"");
}
else
{
oledbConn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";");
}
oledbConn.Open(); //Exception thrown at here
OleDbCommand cmd = new OleDbCommand();
OleDbDataAdapter oleda = new OleDbDataAdapter();
DataSet ds = new DataSet();
cmd.Connection = oledbConn;
cmd.CommandText = "SELECT DISTINCT(["+mo_field+"]),["+model_field+"],["+content_filed+"] FROM ["+ecn_field+"] WHERE ["+mo_field+"] IS NOT NULL AND ["+active_field+"] ='1'";
oleda = new OleDbDataAdapter(cmd);
oleda.Fill(ds,"NewMO");
aber es Ausnahme ausgelöst:
Externe Tabelle ist nicht im erwarteten Format
Mein Server Windows Server 2012 RC2 installiert ist 64 Bit, also habe ich versucht, installieren Microsoft Database Engine 2010 2010 32bit/64bit neu zu verteilen. Und Microsoft Database Engine 2007 32 Bit. Aber es funktioniert immer noch nicht. Ich suchte nach 3 Tagen, und jeder Beitrag sagte, dass die Installation von Microsoft Database Engine den Fehler beheben wird. Dieser Code funktioniert gut mit Office 2010/2013.
Vielen Dank für Ihre Hilfe!
Funktioniert es, wenn Sie auf dem Weg geben, wo es heißt „+ filePath +“? – smoore4
Es funktioniert auch nicht :) –
Nachdem Sie das DataSet (ds) füllen, können Sie versuchen, eine DataTable erstellen und dann verwenden: DataTable dt = ds.Tables [0]; – smoore4