您可以自己快速写一些东西:
public static class Extensions{ public static string ToCSV(this DataTable table) { var result = new StringBuilder(); for (int i = 0; i < table.Columns.Count; i++) { result.Append(table.Columns[i].ColumnName); result.Append(i == table.Columns.Count - 1 ? "n" : ","); } foreach (DataRow row in table.Rows) { for (int i = 0; i < table.Columns.Count; i++) { result.Append(row[i].ToString()); result.Append(i == table.Columns.Count - 1 ? "n" : ","); } } return result.ToString(); }}
并测试:
public static void Main() { DataTable table = new DataTable(); table.Columns.Add("Name"); table.Columns.Add("Age"); table.Rows.Add("John Doe", "45"); table.Rows.Add("Jane Doe", "35"); table.Rows.Add("Jack Doe", "27"); var bytes = Encoding.GetEncoding("iso-8859-1").GetBytes(table.ToCSV()); MemoryStream stream = new MemoryStream(bytes); StreamReader reader = new StreamReader(stream); Console.WriteLine(reader.ReadToEnd()); }
编辑:关于您的评论:
这取决于您要csv格式化的方式,但是通常情况下,如果文本包含特殊字符,则要用双引号将其括起来,即:“
my,text”。您可以在创建csv的代码中添加检查以检查特殊字符,如果有的话,则将文本用双引号引起来。至于.NET
2.0,只需在您的类中将其创建为帮助方法,或在方法声明中删除this并按如下方式调用它即可:Extensions.ToCsv(table);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)