Este código sirve para guardar un DataTable en un Excel, yo lo utilizo para agregar la función de exportar a Excel en la aplicaciones donde utilizo Grids, ya que utilizo una versión del TDBGrid que no le funciona bien el exportar a.
public static void ExportarExcelDataTable(DataTable dt,string RutaExcel) { const string FIELDSEPARATOR = "\t"; const string ROWSEPARATOR = "\n"; StringBuilder output = new StringBuilder(); // Escribir encabezados foreach (DataColumn dc in dt.Columns) { output.Append(dc.ColumnName); output.Append(FIELDSEPARATOR); } output.Append(ROWSEPARATOR); foreach (DataRow item in dt.Rows) { foreach (object value in item.ItemArray) { output.Append(value.ToString().Replace('\n',' ').Replace('\r',' ').Replace('.',',')); output.Append(FIELDSEPARATOR); } // Escribir una línea de registro output.Append(ROWSEPARATOR); } // Valor de retorno // output.ToString(); StreamWriter sw = new StreamWriter(RutaExcel); sw.Write(output.ToString()); sw.Close(); }