C#:StreamReader读取.CSV文件(转换成DataTable)

        using System.Data;
        using System.IO;
 
        /// <summary>
        /// Stream读取.csv文件
        /// </summary>
        /// <param name="filePath">文件路径</param>
        /// <returns></returns>
        public static DataTable OpenCSV(string filePath)
        {
            DataTable dt = new DataTable();
            FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
            StreamReader sr = new StreamReader(fs, System.Text.Encoding.Default);
            //记录每次读取的一行记录
            string strLine = "";
            //记录每行记录中的各字段内容
            string[] aryLine;
            //标示列数
            int columnCount = 0;
            //标示是否是读取的第一行
            bool IsFirst = true;
            //逐行读取CSV中的数据
            while ((strLine=sr.ReadLine())!=null)
            {
                aryLine = strLine.Split(',');
                if (IsFirst==true)
                {
                    IsFirst = false;
                    columnCount = aryLine.Length;
                    for (int i = 0; i < columnCount; i++)
                    {
                        DataColumn dc = new DataColumn(aryLine[i]);
                        dt.Columns.Add(dc);
                    }
                }
                else
                {
                    DataRow dr = dt.NewRow();
                    for (int j = 0; j < columnCount; j++)
                    {
                        dr[j] = aryLine[j];
                    }
                    dt.Rows.Add(dr);
                }
            }
            sr.Close();
            fs.Close();
            return dt;
        }             

这种读取.csv文件的方法比较快速方便,但是对于几种格式的.csv文件还未支持,例如日文,繁体,中文格式的都需要不同的转换。

想看原文可以点击https://www.cnblogs.com/jameslif/p/6117193.html进入查看。

posted @ 2017-12-13 10:22  安挚  阅读(4541)  评论(0编辑  收藏  举报