2016-04-29 74 views
0

N個CSV文件合併成一個文件。並且數據必須駐留並排,這樣的事情嗨,我有3個CSV文件,想將它們合併成

DatTime_M1 Voltage Currency| Dattime_m2 Volage currency |.....DatTime_N Vol Curr 
2016-04-29 237.1 3.54 2016-04-29 237.1 3.54 2016-04-29 237.1 3.54 
2016-04-29 237.7 3.54 2016-04-29 237.1 3.54 2016-04-29 237.1 3.54 
2016-04-29 236.4 3.54 2016-04-29 237.1 3.54 2016-04-29 237.1 3.54 
2016-04-29 236.4 3.53 2016-04-29 237.1 3.54 2016-04-29 237.1 3.54 

我寫的,而不是在那裏上述合併的合併簡單或同一行中附加一個代碼。

string[] files = (Directory.GetFiles(txtConsolidated_OS_CSV.Text.Trim())); 
        foreach (var file in files) 
        { 
         StringBuilder sb = new StringBuilder(); 
         string filename = Path.GetFileNameWithoutExtension(file); 
         if (file.EndsWith(".csv")) 
         { 
          string[] rows = File.ReadAllLines(file); 
          for (int i = 0; i < rows.Length; i++) 
          { 
           if (i == 0) 
           { 
            if (counter == 0) 
            { 
             sb.Append(rows[i] + "\n"); 
             counter++; 
            } 
           } 
           else 
           { 
            sb.Append(rows[i] + "\n"); 
           } 
          } 
         } 
         string csvfile = txtConsolidated_OS_CSV.Text + "\\Merged_OS.csv"; 

         if (File.Exists(csvfile)) 
         { 
          File.AppendAllText(csvfile, sb.ToString()); 
          sb.Clear(); 
         } 
         else 
         { 
          File.WriteAllText(csvfile, sb.ToString()); 
          sb.Clear(); 
         } 
+0

好吧,作爲一個人,你會怎麼做呢?看你的屏幕不清楚你的3個文件應該如何到達一個組合文件,你需要內容1,其次是內容2,然後3 ..一個接一個,或者,你是否試圖從每個文件並將所有3位信息連在一起製作一個寬文件> – BugFinder

回答

0

使用LINQ:

var allCsv = Directory.EnumerateFiles("Src-Path", ".*csv", SearchOption.TopDirectoryOnly); 
string[] header = 
{ 
    File.ReadLines(allCsv.First()).First(l => !string.IsNullOrWhiteSpace(l)) 
}; 

// Get CSV Data 
var mergedData = allCsv.SelectMany(csv => File.ReadLines(csv).SkipWhile(l => string.IsNullOrWhiteSpace(l)).Skip(1)); 

// skip header of each file 
File.WriteAllLines("Dest-Path", header.Concat(mergedData)); 

here

相關問題