当前位置: 首页 > 编程语言 > C#

是否有一种“正确”的方式来读取CSV文件分享

时间:2023-04-10 22:45:54 C#

是否有一种“正确”的方式来读取CSV文件库应该用于读取csv文件?Web上的所有示例都将使用它们自己的csv阅读器/解析器,或使用OleDb。使用这些解决方案中的任何一个都不是问题,我只是想知道是否有一个普遍接受的库(我找不到),或者任何其他“正确”的方法来做到这一点?CsvReader是一个非常好的...它不是Microsoft,但它运行良好并且比某些替代品(传统的OleDb等)快得多。VB命名空间有一个很棒的TextFieldParser类。我知道,C#用户不喜欢使用这种“基本”语言引用库,但它非常好。它位于Microsoft.VisualBasic.FileIO.TextFieldParser我曾经搞乱OLEDB,创建列定义文件等-但发现TextFieldParser是一个非常简单和方便的工具,用于解析任何分隔文件。许多人自己编写的原因之一是CSV并不那么简单。例如:第一行是否包含字段名称?你支持谈恋爱吗?如果他们引用,以某种日-月-年的顺序被#标记包围?它是否支持在引用的文本值中出现换行符?或者这会拆分记录吗?你如何转义带引号的字符串中的引号?您是将引号加倍,还是使用反斜杠或其他转义字符?支持哪些字符编码?它如何处理转义的控制字符?&#xx;或uXXXX或其他方法?这些是人们编写自己的解析器的一些原因,因为他们无法读取使用所有这些不同设置创建的文件。或者他们编写自己的序列化程序,因为目标系统有很多这样的功能。如果你不关心这些问题,就使用最方便的库。但明白他们在那里。试试CsvHelper(我维护的库)。它也可以通过NuGet获得。CsvHelper允许您直接将CSV文件读入自定义类。varstreamReader=//为您的CSV文件创建一个阅读器。varcsvReader=newCsvReader(streamReader);列表myData=csvReader.GetRecords();CsvReader将根据标题行自动确定如何匹配属性名称(这是可配置的)。它使用编译表达式树而不是反射,所以速度非常快。它还具有很强的可扩展性和可配置性。经过一些调查,还有以下内容:http://www.filehelpers.com/它似乎是一个用于读取文件的完整框架,而不仅仅是csv文件。(注意:只是阅读网站上的内容,还没有使用它)KBCsv是另一种选择,特别是如果您需要效率和处理大型CSV文件的能力。披露:我编写了KBCsv,因此是“KB”;)我很确定您可以使用一行代码将CSV文件读入DataTable。一旦它在数据表中,您就可以排序、过滤、迭代等。这个问题有一些将CSV读入数据表的例子。以上就是C#学习教程:CSV文件分享的全部内容有没有“正确”的阅读方式?代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: