2011-08-02 52 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