c#将DataTable中数据写入到CSV文件中

来源:互联网 发布:2016电大数控编程技术 编辑:程序博客网 时间:2024/04/29 19:19

常用写法,在这里做个备注,方便初学者查看


我们以文本方式打开csv会发现其实列是由“,”分割,行驶由“\t”分割的,所以data转csv其实也很简单,看如下代码

public static void SaveCSV(DataTable dt, string fullPath)        {            var fi = new FileInfo(fullPath);            if (!fi.Directory.Exists)            {                fi.Directory.Create();            }            var fs = new FileStream(fullPath, FileMode.Create, FileAccess.Write);            //StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);            var sw = new StreamWriter(fs, Encoding.UTF8);            var data = "";            //写出列名称            for (var i = 0; i < dt.Columns.Count; i++)            {                data += dt.Columns[i].ColumnName;                if (i < dt.Columns.Count - 1)                {                    data += ",";                }            }            sw.WriteLine(data);            //写出各行数据            for (var i = 0; i < dt.Rows.Count; i++)            {                data = "";                for (var j = 0; j < dt.Columns.Count; j++)                {                    var str = dt.Rows[i][j].ToString();                    str = str.Replace("\"", "\"\""); //替换英文冒号 英文冒号需要换成两个冒号                    if (str.Contains(',') || str.Contains('"')                        || str.Contains('\r') || str.Contains('\n')) //含逗号 冒号 换行符的需要放到引号中                    {                        str = string.Format("\"{0}\"", str);                    }                    data += str;                    if (j < dt.Columns.Count - 1)                    {                        data += ",";                    }                }                sw.WriteLine(data);            }            sw.Close();            fs.Close();                   }





阅读全文
0 0
原创粉丝点击