Datetable Convert TO CSV
// C# Code public static class Rfc4180Writer { public static void WriteDataTable(DataTable sourceTable, TextWriter writer, bool includeHeaders) { if (includeHeaders) { IEnumerable<String> headerValues = sourceTable.Columns .OfType<DataColumn>() .Select(column => QuoteValue(column.ColumnName)); writer.WriteLine(String.Join(",", headerValues)); } IEnumerable<String> items = null; foreach (DataRow row in sourceTable.Rows) { items = row.ItemArray.Select(o => QuoteValue(o.ToString())); writer.WriteLine(String.Join(",", items)); } writer.Flush(); } private static string QuoteValue(string value) { return String.Concat("\"", value.Replace("\"", "\"\""), "\""); } }
-------------------------------------------------------------------------------------------------------------------------------------------------------------->
// C# Code public static class Program { public static void Main() { DataTable sourceTable = new DataTable(); sourceTable.Columns.AddRange(new DataColumn[] { new DataColumn("ID", typeof(Guid)), new DataColumn("Date", typeof(DateTime)), new DataColumn("StringValue", typeof(string)), new DataColumn("NumberValue", typeof(int)), new DataColumn("BooleanValue", typeof(bool)) }); sourceTable.Rows.Add(Guid.NewGuid(), DateTime.Now, "String1", 100, true); sourceTable.Rows.Add(Guid.NewGuid(), DateTime.Now, "String2", 200, false); sourceTable.Rows.Add(Guid.NewGuid(), DateTime.Now, "String3", 300, true); using (StreamWriter writer = new StreamWriter("C:\\Temp\\dump.csv")) { Rfc4180Writer.WriteDataTable(sourceTable, writer, true); } } }
___________________________________________________________________________________________>
For the ASP.NET MVC
// C# Code
public class ReportController : Controller
{
[HttpGet()]
public ActionResult Export()
{
DataTable sourceTable = new DataTable();
sourceTable.Columns.AddRange(new DataColumn[] {
new DataColumn("ID", typeof(Guid)),
new DataColumn("Date", typeof(DateTime)),
new DataColumn("StringValue", typeof(string)),
new DataColumn("NumberValue", typeof(int)),
new DataColumn("BooleanValue", typeof(bool))
});
sourceTable.Rows.Add(Guid.NewGuid(), DateTime.Now, "String1", 100, true);
sourceTable.Rows.Add(Guid.NewGuid(), DateTime.Now, "String2", 200, false);
sourceTable.Rows.Add(Guid.NewGuid(), DateTime.Now, "String3", 300, true);
byte[] outputBuffer = null;
using (MemoryStream tempStream = new MemoryStream()) {
using (StreamWriter writer = new StreamWriter(tempStream)) {
Rfc4180Writer.WriteDataTable(sourceTable, writer, true);
}
outputBuffer = tempStream.ToArray();
}
return File(outputBuffer, "text/csv", "export.csv");
}
}