Cómo exportar el contenido de un DataGridView a un fichero de texto plano separado por punto y coma (CSV), que se puede abrir con Office Excel, OpenOffice Calc o con LibreOffice Calc, incluso con cualquier editor de texto plano (notepad, vi, nano).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
dlGuardar.Filter = "Fichero CSV (*.csv)|*.csv"; dlGuardar.FileName = "Datos_sqlite"; dlGuardar.Title = "Exportar a CSV"; if (dlGuardar.ShowDialog() == DialogResult.OK) { StringBuilder csvMemoria = new StringBuilder(); //para los títulos de las columnas, encabezado for (int i = 0; i < dbTabla.Columns.Count; i++) { if (i == dbTabla.Columns.Count - 1) { csvMemoria.Append(String.Format("\"{0}\"", dbTabla.Columns[i].HeaderText)); } else { csvMemoria.Append(String.Format("\"{0}\";", dbTabla.Columns[i].HeaderText)); } } csvMemoria.AppendLine(); for (int m = 0; m < dbTabla.Rows.Count; m++) { for (int n = 0; n < dbTabla.Columns.Count; n++) { //si es la última columna no poner el ; if (n == dbTabla.Columns.Count - 1) { csvMemoria.Append(String.Format("\"{0}\"", dbTabla.Rows[m].Cells[n].Value)); } else { csvMemoria.Append(String.Format("\"{0}\";", dbTabla.Rows[m].Cells[n].Value)); } } csvMemoria.AppendLine(); } System.IO.StreamWriter sw = new System.IO.StreamWriter(dlGuardar.FileName, false, System.Text.Encoding.Default); sw.Write(csvMemoria.ToString()); sw.Close(); } |
Donde:
- dlGuardar: componente de tipo SaveFileDialog.
- dbTabla: componente de tipo DataGridView con los datos a exportar a fichero.