基础方法

         public   static  StringBuilder GetCSVFormatData(DataTable dataTable)
        {
            StringBuilder StringBuilder  =   new  StringBuilder();
             //  写出表头
             foreach  (DataColumn DataColumn  in  dataTable.Columns)
            {
                StringBuilder.Append(DataColumn.ColumnName.ToString()  +   " , " );
            }
            StringBuilder.Append( " \n " );
             //  写出数据
             foreach  (DataRowView dataRowView  in  dataTable.DefaultView)
            {
                 foreach  (DataColumn DataColumn  in  dataTable.Columns)
                {
                    StringBuilder.Append(dataRowView[DataColumn.ColumnName].ToString()  +   " , " );
                }
                StringBuilder.Append( " \n " );
            }
             return  StringBuilder;
        }



导出csv

#region public static void ExportCSV(DataTable dataTable, string fileName) 导出CSV格式文件
/// <summary>
/// 导出CSV格式文件
/// </summary>
/// <param name="dataTable">数据表</param>
/// <param name="fileName">文件名</param>
public static void ExportCSV(DataTable dataTable, string fileName)
{
StreamWriter StreamWriter = new StreamWriter(fileName, false, System.Text.Encoding.GetEncoding("gb2312"));
StreamWriter.WriteLine(GetCSVFormatData(dataTable).ToString());
StreamWriter.Flush();
StreamWriter.Close();
}
#endregion


导入csv


public static DataTable ImportFromCsv(string filePath)//从csv读取数据返回table  
        {
            //Encoding encoding = System.Data.Common.GetType(filePath); //Encoding.ASCII;//  
            DataTable dt = new DataTable();
            FileStream fs = new FileStream(filePath, System.IO.FileMode.Open, System.IO.FileAccess.Read);
 
            //StreamReader sr = new StreamReader(fs, Encoding.UTF8);  
            StreamReader sr = new StreamReader(fs, Encoding.Default);
            //记录每次读取的一行记录  
            string strLine = "";
            //记录每行记录中的各字段内容  
            string[] aryLine = null;
            //标示列数  
            int columnCount = 0;
            //标示是否是读取的第一行  
            bool IsFirst = true;
            //逐行读取CSV中的数据  
            while ((strLine = sr.ReadLine().Trim()) != "")
            {
                DataRow dr = dt.NewRow();
                aryLine = strLine.Split(',');
                if (IsFirst == true)
                {
                    IsFirst = false;
                    columnCount = aryLine.Length;
                    //创建列  
                    for (int i = 0; i < columnCount; i++)
                    {
                        DataColumn dc = new DataColumn(aryLine[i].ToString());
                        dt.Columns.Add(dc);
                    }
                }
                else
                {
                    for (int j = 0; j < columnCount; j++)
                    {
                        dr[j] = aryLine[j];
                    }
                    dt.Rows.Add(dr);
                }
 
            }
 
            sr.Close();
            fs.Close();
            return dt;
        }