2016-04-27 19 views
0

CSVファイルには異なるデータが含まれているため、このCSVファイルをすべて複数のCSVファイルにまとめて、複数のCSVファイルを格納します。今、私の次のコードは、ディレクトリからデータをピックアップし、すべてのCSVではなく、私は1つのファイルにmuiltipleシートをしたい、それは私が望んでいないデータを追加された一つの大きなCSVファイルにファイルを兼ね備えた..Muiltiple CSVをMuiltiple CSVシート付きの1つのCSVファイルに変換

private void combineallcsv() 
{ 
    string txtConsolidated_OS_CSV = "C:\\NWDLS\\new"; 
    if (txtConsolidated_OS_CSV != "") 
    { 
     int counter = 0; 

     string[] files = (Directory.GetFiles(txtConsolidated_OS_CSV.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 + "\\Merged_OS.csv"; 

      if (File.Exists(csvfile)) 
      { 
       File.AppendAllText(csvfile, sb.ToString()); 
       sb.Clear(); 
      } 
      else 
      { 
       File.WriteAllText(csvfile, sb.ToString()); 
       sb.Clear(); 
      } 
      //using (StreamWriter writer = new StreamWriter(csvfile, true)) 
      //{ 
      // writer.Write(sb.ToString()); 
      // writer.Dispose(); 
      // writer.Close(); 
      //} 
     } 
     counter = 0; 
    } 
} 
+1

csvファイルはカンマで区切られたテキストの壁です。あなたがそれを複数のシートにしたい場合は、それをExcelに書き込む必要があります。 – BugFinder

+0

@BugFinder CSVは、Excel S/Wで開く拡張ファイルです。はい、コンマ区切りの複数の値が含まれています。 –

答えて

2

ティル CSVファイルには「シート」というものはありません。 CSVファイルは、フィールドが定義された文字で区切られた単なるテキスト行です。それで全部です。

VSTO office interopまたはADO.NETドライバを使用して、「実際の」Excelシートを作成できます。

+0

標準のCSV形式から逸脱したい場合は、CSVファイルでシートを処理する独自の方法を作成することもできます。 csvデータの各「シート」を区切るために特殊文字を定義できます。あなたは少しホイールを作り直すでしょうが、それはオプションです。 – Jaguir

+1

@Jaredもちろん、あなたができることはありますが、「あなたが持っているものがすべてハンマーであれば、すべての問題は釘のように見える」人々はCSV = Excelを考える。 Excelにはシートがあるので、CSV = Excel = Sheetsです。しかし、そうではありません。そして、Excelはあなたがそれを記述する方法でファイルを読み取ることはありません。 Excelに複数のシートを使用させるCSVファイルを作成する方法はありません。 –

+0

私は同意します。彼の状況が許せば、彼自身の方法を作ることができるとは考えにくいシナリオを指摘していただけです。 :) – Jaguir

関連する問題