C#常用类库----CSV文件操作类

来源:互联网 发布:淘宝商家开通信用卡 编辑:程序博客网 时间:2024/05/20 14:27
using System.Data;using System.IO; namespace DotNet.Utilities{    /// <summary>    /// CSV文件转换类    /// </summary>    public static class CsvHelper    {        /// <summary>        /// 导出报表为Csv        /// </summary>        /// <param name="dt">DataTable</param>        /// <param name="strFilePath">物理路径</param>        /// <param name="tableheader">表头</param>        /// <param name="columname">字段标题,逗号分隔</param>        public static bool dt2csv(DataTable dt, string strFilePath, string tableheader, string columname)        {            try            {                string strBufferLine = "";                StreamWriter strmWriterObj = new StreamWriter(strFilePath, false, System.Text.Encoding.UTF8);                strmWriterObj.WriteLine(tableheader);                strmWriterObj.WriteLine(columname);                for (int i = 0; i < dt.Rows.Count; i++)                {                    strBufferLine = "";                    for (int j = 0; j < dt.Columns.Count; j++)                    {                        if (j > 0)                            strBufferLine += ",";                        strBufferLine += dt.Rows[j].ToString();                    }                    strmWriterObj.WriteLine(strBufferLine);                }                strmWriterObj.Close();                return true;            }            catch            {                return false;            }        }         /// <summary>        /// 将Csv读入DataTable        /// </summary>        /// <param name="filePath">csv文件路径</param>        /// <param name="n">表示第n行是字段title,第n+1行是记录开始</param>        public static DataTable csv2dt(string filePath, int n, DataTable dt)        {            StreamReader reader = new StreamReader(filePath, System.Text.Encoding.UTF8, false);            int i = 0, m = 0;            reader.Peek();            while (reader.Peek() > 0)            {                m = m + 1;                string str = reader.ReadLine();                if (m >= n + 1)                {                    string[] split = str.Split(',');                     System.Data.DataRow dr = dt.NewRow();                    for (i = 0; i < split.Length; i++)                    {                        dr = split;                    }                    dt.Rows.Add(dr);                }            }            return dt;        }    }}
1 0
原创粉丝点击