繁体   English   中英

使用filehelpers按列名解析CSV文件

[英]Parse CSV file by column name with filehelpers

我想使用filehelpers DLL解析CSV文件。 我希望它使列标题与类中的属性名称匹配。 我认为对于那些没有像列那样命名的属性,我将不得不使用“ FieldCaption”属性。 但这显然仅用于写入CSV文件吗?

如果我必须以与CSV文件中相同的方式排列属性,并且必须包括所有列,那么与仅按数字进行拆分和选择相比,优点是什么?

问候帕特里克

FileHelpers依赖于映射类的概念, 该类要求您为每列指定一个字段(或自动属性),即使您不需要该列中的数据也是如此。 因此,您可能有一个类似的映射类:

[DelimitedRecord("|")]
public class Orders
{
    public int OrderID;

    public string NotImportant1;
    public string NotImportant2;
    public string NotImportant3;

    public string CustomerID;

    [FieldConverter(ConverterKind.Date, "ddMMyyyy")]
    public DateTime OrderDate;

    [FieldConverter(ConverterKind.Decimal, ".")] // The decimal separator is .
    public decimal Freight;

    [FieldOptional, FieldArrayLength(0, 100)]
    public string[] I_DONT_CARE_WHAT_COMES_AFTER_THIS;
}

没有自动处理未使用的列。

...与仅按数字进行拆分和选择相比,优势何在?

以下是一些优点:

  • FileHelpers使您可以指定任何平面文件格式,而不仅仅是CSV。
  • 您可以强烈输入字段
  • 您可以提供自己的转换器来处理内容如何映射到值
  • 您可以使用各种属性来修饰字段,以处理文件的特质(引号,修剪,日期格式等)。
  • 该类也是程序支持的文件格式的“规范”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM