2013-12-16 10 views
9

ich OleDbDataAdapter bin mit DataSet aus Excel-Datei zu extrahieren, aber ich habe Probleme mit SELECT Anweisung innerhalbWie aus Tabellen in Excel-Datei auswählen OleDbDataAdapter mit

DataSet excelDataSet = new DataSet(); 
using (OleDbConnection con = new System.Data.OleDb.OleDbConnection(connectionString)) 
{ 
    con.Open(); 
    OleDbDataAdapter cmd = new System.Data.OleDb.OleDbDataAdapter("select * from [Name of spreadsheet]", con); 
    cmd.Fill(excelDataSet); 
    con.Close(); 
} 

Wenn Sie sehen, ich habe "select * from [Name of spreadsheet]", aber ich müssen Tabellenkalkulationen oder beispielsweise die erste Tabellenkalkulation erhalten, aber der Name für diese Tabelle kann alles sein.

Wie man es spezifiziert? Sonderzeichen wie "select * from [%]"

Antwort

16

Sie müssen den Namen des Blattes kennen, um die select-Anweisung darauf anzuwenden.
Und Sie müssen die spezielle char $ am Ende des Namens hinzufügen.

Angenommen, Sie ein Blatt mit dem Namen MyFirstSheet dann können Sie Zeilen auswählen aus es mit

OleDbDataAdapter cmd = new OleDbDataAdapter("select * from [MyFirstSheet$]", con); 

Falls Sie nicht wissen, die Namen Ihrer Blätter Sie

using (OleDbConnection con = new OleDbConnection(connectionString)) 
{ 
    con.Open(); 
    DataTable dt = con.GetSchema("Tables"); 
    string firstSheet = dt.Rows[0]["TABLE_NAME"].ToString(); 
    ...... work with the first sheet ..... 
} 

Dieses Beispiel nennen könnte sollte Ihnen den Namen des ersten Blattes in der Excel-Datei geben (andere Blätter sind in den aufeinanderfolgenden Zeilen nach dem ersten verfügbar)

+1

Danke! Klappt wunderbar! Upvote und accept =) Wird über Schemata in OleDbConnection lesen =) – Bryuk

Verwandte Themen