2011-08-02 90 views
4

我有一段時間我寫了一些Python腳本,來做一些數據傳輸。 我需要將這些腳本中的一部分「移植」到C#中。使用C#將csv文件讀入DataTable?

Python提供了一個CSV模塊,它有助於將CSV數據從文件導入到字典中。我希望在我的庫中具有相同的功能,但由於我是C#的新手,因此決定在這裏請求將CSV數據導入DataTable的最佳實踐方法。

我是否會推出自己的產品,或者是否有「CSV模塊」ala Python?

+1

退房這種以前回答線程。 http://stackoverflow.com/questions/1050112/how-to-read-a-csv-file-into-a-net-datatable – Sinsanator

+1

似乎是http://stackoverflow.com/questions的確切副本/ 1050112/how-to-read-a-csv-file-into-a-net-datatable – Matten

+0

OOps:我看到有人已經問過這個問題。然而,令人吃驚的是,似乎並沒有「開箱即用」的解決方案 - 考慮到.Net庫中類的數量龐大,這對我來說很奇怪 - 我原以爲CSV導入會成爲「標準」。無論如何,謝謝你指出我在正確的方向。這個問題可以被關閉爲超級(我沒有足夠的點來關閉它我自己) – oompahloompah

回答

9

我不會試圖推出自己的。您將盡力處理CSV文件可能帶給您的所有奇怪角落情況。

我會建議Sébastien Lorion's Fast CSV Reader代替:

using (var csv = new CachedCsvReader(new StreamReader(filePath), true)) 
{ 
    DataTable Table = new DataTable(); 
    Table.Load(csv); 
} 
+0

我試圖避免滾動我自己的:)。 CSV解析是一個真正的痛苦得到正確的!我喜歡你的鏈接指向的輕量級閱讀器 - 它完成了我所需要的一切。謝謝! – oompahloompah

+0

我使用CSV的LumenWorks框架,並能夠檢索字段,但不知道如何寫入SQL查詢:http://stackoverflow.com/questions/24098812/how-to-take-a-csv-field - 寫入到列在SQL(很多人很友善地提供自己的,但隨着庫我已經有它正確讀取,只需要寫入一個SQL數據庫) – SearchForKnowledge

+0

感謝它的工作 –

1

我沒有找到任何內置的.NET(這是當我編寫我的解決方案在.NET 2.0中)功能,滿足我的需求,所以我使用了下面的開源鏈接。我每月處理大約36000個文件,效果很好,但我還沒有遇到問題。

CsvReader

+0

我遇到的問題是寫入SQL表:/ – SearchForKnowledge