2012-03-08 60 views
4

是否有任何形式的語句將數據行轉換爲CSV行,以便將其寫入.csv文件? (帶或不帶之間的步驟)Datarow to CSV line C#

+1

你有沒有看這個問題[在.net中編寫CSV文件](http://stackoverflow.com/questions/1684667/writing-a-csv-file-in-net)(特別是[這個答案](http://stackoverflow.com/a/2315185/164966)),在這和之間[這些示例](http://msdn.microsoft.com/zh-cn/library/bb386916.aspx)Linq到DataSets,您可能可以在10行代碼中編寫導出。 – R0MANARMY 2012-03-08 07:08:31

回答

3

嘗試用下面的代碼:

StringBuilder sb = new StringBuilder(); 

var columnNames = dt.Columns.Cast<DataColumn>().Select(column =>  column.ColumnName).ToArray(); 
sb.AppendLine(string.Join(",", columnNames)); 

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

File.WriteAllText("test.csv", sb.ToString()); 
+0

測試這一個 – Dashzapp 2012-03-08 08:36:31

+0

不錯的代碼文件! – Dashzapp 2012-03-08 09:04:01

+0

但不完全工作... – Dashzapp 2012-03-08 09:20:35

0

我看this前些天:

根據您可以編寫代碼,像這樣的快速入門:

[DelimitedRecord(",")] 
public class Customer 
{ 
    public int CustId;  
    public string Name; 
    public decimal Balance; 
} 
FileHelperEngine engine = new FileHelperEngine(typeof(Customer)); 
Customer[] res = engine.ReadFile("FileIn.txt") as Customer[]; 
engine.WriteFile("FileOut.txt", res);