Ich versuche, Excel-Daten zur Datenbank hinzuzufügen. Ich kann es mit dem Blattnamen machen, aber es beschränkt den Benutzer, die App zu verwenden, also möchte ich, dass der Benutzer eine Excel-Datei mit einem beliebigen Blattnamen hochladen kann.C# Excel zu OleDB ohne Blattname
Dies ist mein Code:
public static DataSet ReadExcelFile(string sheetName, string path)
{
using (OleDbConnection conn = new OleDbConnection())
{
DataSet ds = new DataSet();
string Import_FileName = path;
string fileExtension = Path.GetExtension(Import_FileName);
if (fileExtension == ".xls")
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Import_FileName + ";" + "Extended Properties='Excel 8.0;HDR=YES;'";
if (fileExtension == ".xlsx")
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Import_FileName + ";" + "Extended Properties='Excel 12.0 Xml;HDR=YES;'";
using (OleDbCommand comm = new OleDbCommand())
{
comm.CommandText = "Select * from [" + sheetName + "$]";
comm.Connection = conn;
using (OleDbDataAdapter da = new OleDbDataAdapter())
{
da.SelectCommand = comm;
da.Fill(ds, "Table");
return ds;
}
}
}
}
Wie kann ich Excel Daten in die Datenbank mit jedem Blattnamen laden?
Vielen Dank im Voraus
Für mich ist Ihre Anfrage unklar, Excel-Dateien haben immer Blätter, was möchten Sie tun? Nimm Daten nur vom ersten Blatt? Iterate jedes Blatt? –
Ich meine, denke, dass ich zwei Excel-Dateien habe, einer von ihnen Blattname als sheet1 onether hat Blattname sheet2, in meinem Code kann ich beide XML-Daten zur Datenbank hinzufügen –
comm.CommandText = "Select * from [" + Blattname + "$]"; Blattname kann eine beliebige Zeichenfolge sein –