将DataTable转换为CSV流

将DataTable转换为CSV流,第1张

将DataTable转换为CSV流

您可以自己快速写一些东西:

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);



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5567357.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存