C# CSV 파일 읽기 및 쓰기

3236 단어 C#
CSV는 일반적인 비교적 간단한 파일 형식으로 프로그램 간에 표 데이터를 이동하는 데 자주 사용된다.CSV , 。 csv를 텍스트로 열면 열이 ","으로 분할되어 있음을 알 수 있습니다.
C#CSV의 일반적인 쓰기 방법을 읽고 여기에 필기를 하세요.
1. CSV를 읽고 DataTable로 돌아가기
       /// 
       ///   CSV
       /// 
       /// CSV  
        ///    n    title, n+1      
       /// 
       public static System.Data.DataTable CsvToDataTable(string filePath, int n)
       {
           System.Data.DataTable dt = new System.Data.DataTable();
           StreamReader reader = new StreamReader(filePath, System.Text.Encoding.Default, false);
           int m = 0;
           while (!reader.EndOfStream)
           {
               m = m + 1;
               string str = reader.ReadLine();
               string[] split = str.Split(',');
               if (m == n)
               {
                   System.Data.DataColumn column ; //  
                   for (int c = 0; c < split.Length;c++ )
                   {
                       column = new System.Data.DataColumn();
                       column.DataType = System.Type.GetType("System.String");
                       column.ColumnName = split[c];
                       if (dt.Columns.Contains(split[c]))                 //      
                           column.ColumnName = split[c] + c;
                       dt.Columns.Add(column);
                   }
               }
               if (m >= n + 1)
               {
                   System.Data.DataRow dr = dt.NewRow();
                   for (int i = 0; i < split.Length; i++)
                   {
                       dr[i] = split[i];
                   }
                   dt.Rows.Add(dr);
               }
           }
           reader.Close();
           return dt;
       }

2. DataTable 데이터 쓰기 CSV
        /// 
       /// DataTable   CSV
       /// 
       /// DataTable
       ///   
       public static void dataTableToCsvT(System.Data.DataTable dt, string strFilePath)
       {
           if (dt == null || dt.Rows.Count == 0)   //  DataTable    
               return;
           string strBufferLine = "";
           StreamWriter strmWriterObj = new StreamWriter(strFilePath, false, System.Text.Encoding.Default);
           //    
           foreach (System.Data.DataColumn col in dt.Columns)
               strBufferLine += col.ColumnName + ",";
           strBufferLine = strBufferLine.Substring(0, strBufferLine.Length - 1);
           strmWriterObj.WriteLine(strBufferLine);
           //    
           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[i][j].ToString().Replace(",", "");   //  CSV       ,       
               }
               strmWriterObj.WriteLine(strBufferLine);
           }
           strmWriterObj.Close();
       }

좋은 웹페이지 즐겨찾기