Ich muss Daten aus Excel in die Datenbank mit Codierungsanweisungen importieren.
Aber es gibt mir einen Fehler. "Es gibt keine Zeile an Position 0." in Zeile 11.
In der Zwischenzeit, sollte ich meinen Tabellennamen anstelle von "TABLE" in Zeile 8 ersetzen?Importieren von Daten aus Excel in die Datenbank in C#
Unten ist mein Code:
public static DataTable ReadExcelWithoutOffice(string filePath)
{
var connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0;IMEX=1;HDR=YES;TypeGuessRows=0;FirstRowHasNames=true;ImportMixedTypes=Text\""; ;
using (var conn = new OleDbConnection(connectionString))
{
conn.Open();
var sheets = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT * FROM [" + sheets.Rows[0]["TABLE_NAME"].ToString() + "] ";
var adapter = new OleDbDataAdapter(cmd);
var ds = new DataSet();
adapter.Fill(ds);
return ds.Tables[0];
}
}
}
http://stackoverflow.com/questions/14796454/import-excel-sheet-using-jet-oledb-4-0-setting-first-row-as-column-name – A3006
Überprüfen Sie, ob Ihre Abfrage gibt alle Daten zurück und fährt dann mit den nächsten Vorgängen fort. –
Wie viele Blätter sind in Ihrer Excel-Datei vorhanden? Es gibt keine Garantie, dass Sie diese Blätter in der Reihenfolge erhalten, in der Sie sie auf der Excel-Benutzeroberfläche sehen. – Steve