// 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"); } }
时间: 2024-11-18 01:16:34