C# | DataGridView mehrere Ergebnisse in eine Zeile bringen und zu CSV exportieren?

2 Antworten

Wie holst du denn die Daten aus dem DataGridView und speicherst sie? Innerhalb dieses Prozesses musst du doch das von dir beschriebene durchführen: Die Zelldaten via Komma trennen.

Ja, das meine ich auch

            if (dataGridViewErgebnis.Rows.Count == 0)
            {
                return;
            }
            StringBuilder stringBuilder = new StringBuilder();
            
            string spaltenKopf = "";
            for (int i = 0; i < dataGridViewErgebnis.Columns.Count; i++)
            {
                spaltenKopf += dataGridViewErgebnis.Columns[i].Name + ";";
            }
                      
            stringBuilder.Append(spaltenKopf + Environment.NewLine);


            foreach (DataGridViewRow dataGridViewRow in dataGridViewErgebnis.Rows)
            {
                if (!dataGridViewRow.IsNewRow)
                {
                    for (int c = 0; c < dataGridViewRow.Cells.Count; c++)
                    {
                        stringBuilder.Append(dataGridViewRow.Cells[c].FormattedValue + ";");
                    }
                    stringBuilder.Append(Environment.NewLine);
                }
            }
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            saveFileDialog.Filter = "CSV files (*.csv)|*.csv";
            if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                using (System.IO.StreamWriter sw = new System.IO.StreamWriter(saveFileDialog.FileName, false, Encoding.UTF8))
                {
                    sw.WriteLine(stringBuilder.ToString());
                    sw.Flush();
                    sw.Close();
                    MessageBox.Show("CSV file saved.");
                }
            }

Das ist der Code für den Button wo das speichern in die CSV-Datei abläuft.

Aber wie genau ich jetzt die mit dem Komma trenne habe ich noch nicht raus.

0
@hufsenpai

Den Code hast du nicht selbst geschrieben, oder? 😉

Innerhalb deiner Schleifen (je für Kopf und Körper) hängst du jedesmal ein Semikolon an den Wert einer Zelle (statt einem Komma). Das geht natürlich auch, nur musst du dementsprechend dann auch die CSV-Datei in Excel importieren.

Den Befehl sw.Close kannst du des Weiteren entfernen. Das Schließen der StreamWriter-Verbindung übernimmt der using-Block bereits für dich.

0

Okey.. er hat anscheinend am Ende nicht richtig formatiert.

Tele1 = 12345,42135,1372

Tele2 = 5432,1235,13218

Was möchtest Du wissen?