Hier wird gezeigt, wie sämtliche Daten aus einer Excel-Datei über OleDb in ein DataSet eingelesen werden können.
Getestet mit VS 2003 u. Excel 2003
/// <summary>
/// Holt die Daten aus einer Excel-Datei in ein DataSet
/// </summary>
/// <param name="excelFile">Pfad zur Excel-Datei</param>
/// <param name="headers">Haben die Tabellenspalten Überschriften</param>
/// <returns>DataSet</returns>
private DataSet GetExcelDataSet(string excelFile, bool headers)
{
DataSet ds = new DataSet();
OleDbConnection con = new OleDbConnection();
con.ConnectionString = "Data Source=" + excelFile +
";Provider=Microsoft.Jet.OLEDB.4.0;";
if (headers)
con.ConnectionString += @"Extended Properties=""Excel 8.0;HDR=Yes""";
else
con.ConnectionString += @"Extended Properties=""Excel 8.0;HDR=No""";
con.Open();
DataTable sheets = con.GetOleDbSchemaTable(
OleDbSchemaGuid.Tables,
new object[] {null, null, null, "TABLE"});
foreach (DataRow sheet in sheets.Rows)
{
string tableName = sheet["Table_Name"].ToString();
string sql = "SELECT * FROM [" + tableName + "]";
OleDbDataAdapter adap = new OleDbDataAdapter(sql, con);
adap.Fill(ds, tableName);
}
con.Close();
return ds;
}
2 Kommentare zum Snippet