2012-09-21 84 views
1

我試圖將數據附加到現有的CSV文件以便在Excel中使用。C#在數據表中添加現有CSV文件列中的數據

我檢索的數據量非常高,所以我不能填寫數據表,然後將其寫入CSV。目前我正在用數據填充表格的每一列,將其寫入文件,然後清除表格並重新啓動。

只要它將數據添加到單獨的列中的CSV,但它會在現有的下一列中添加新數據。

這就是程序寫入到CSV:

public void Output_CSV() 
    { 
     StringBuilder sb = new StringBuilder(); 

     foreach (DataRow row in DataTable.Rows) 
     { 
      IEnumerable<string> fields = row.ItemArray.Select(field => field.ToString()); 
      sb.AppendLine(string.Join(",", fields)); 
     } 

     File.AppendAllText(outPut, sb.ToString()); 

     sb.Clear(); 
    } 

該代碼將在表中的所有數據,包括上一列中的空白單元格,在下面添加當前數據。有沒有辦法在表格中選擇一列並將該列中的行添加到CSV中。

+0

我建議你看看http://filehelpers.sourceforge.net/。這將使讀取,修改和重寫csv變得更直接 –

回答

0

如果我理解正確的話,你必須:

A,B,C

在CSV文件

。你想將數據追加到每行:

A,B,C,d,E,F

你們看到的是

A,B,C

,然後對療法下一行:

d,E,F

那是因爲AppendAllText方法只寫入到文件的底部。

做你想做什麼,你會需要讀取輸出文件,分析的內容,在正確的位置插入額外的數據,然後再保存該文件..

我會嘗試加載文件在一個流中,讀取一行,將新數據追加到行的末尾,然後將行寫入一個新的流(讓我們調用這個最終的輸出),重複這個操作,直到你解析完所有的數據,然後保存最終的輸出流。

這假定CSV數據在每行的末尾有換行符,回車符或兩者。

相關問題