Feedback

C# - Spaltennamen eines Arbeitsblatts einer Excel-Datei auslesen

Veröffentlicht von am 9/21/2007
(1 Bewertungen)
Schneller als über Interop lassen sich Informationen über eine Exceldatei über OleDb auslesen. Benötigt wird die Methode GetOleDbSchemaTable des OleDbConnection-Objekts.

Über die Klasse OleDbSchemaGuid und den entsprechenden Einschränkungen wird angegeben, welche Informationen man haben möchte.
private string[] GetColumnNames(string excelFile, string worksheetName)
{
	// Namen der Excel-Arbeitsblätter enden immer mit $ ("Tabelle1$")
	if (!worksheetName.EndsWith("$"))
	{
		worksheetName = worksheetName + "$";
	}

	OleDbConnection con = new OleDbConnection();
	con.ConnectionString = "Data Source=" + excelFile + 
		";Provider=Microsoft.Jet.OLEDB.4.0" +
		";Extended Properties=Excel 8.0";
	
	con.Open();
	
	DataTable tab = con.GetOleDbSchemaTable(
		OleDbSchemaGuid.Columns, 
		new object[] {null, null, worksheetName, null});
	
	con.Close();

	string[] columnNames = new string[tab.Rows.Count];

	for (int i = 0; i < tab.Rows.Count; i++)
	{
		columnNames[i] = tab.Rows[i]["Column_Name"].ToString();
	}

	return columnNames;
}
Abgelegt unter Excel, OleDb.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!