// dgvGrid == DataGridView auf dem Formular
private void btnOpen_Click(object sender, EventArgs e)
{
// Datei öffnen
if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
// DataTable hält die gesplitteten CSV-Daten
DataTable dt = new DataTable();
// Datei öffnen, hier als UTF8
using (StreamReader sr = new StreamReader(openFileDialog.FileName, Encoding.UTF8))
{
// bis Dateiende lesen
while (!sr.EndOfStream)
{
// Zeile einlesen und anhand des Trennzeichens ";" in einzelne Spalten (stringarray) splitten
string[] currentline = sr.ReadLine().Split(new string[] { ";" }, StringSplitOptions.None);
// wenn neue Tabelle (noch keine Spalten enthalten)
if (dt.Columns.Count == 0)
{
// n Spalten der ersten gelesenen Zeile hinzufügen
for (int i = 0; i < currentline.Length; i++)
{
// als Spaltenüberschrift die eingelesenen Teile des Stringarrays verwenden
dt.Columns.Add(currentline[i]);
}
}
else
{
// ansonsten Daten des Stringarrays zeilenweise hinzufügen
dt.Rows.Add(currentline);
}
}
// Stream schließen
sr.Close();
}
// DataTable an das Gitter auf der Oberfläche übergeben und somit anzeigen
dgvGrid.DataSource = dt;
}
}