使用 FileHelpers 的 CSV 文件中的最后一个分隔符

Last Delimiter in CSV file with FileHelpers

我必须开发一个包含 57 列的 CSV-Export

在最后一列之后,我需要分隔符,然后是 LFCR。

示例:

现在我有

aaaa;bbbb;cccc;dddd

但我需要

aaaa;bbbb;cccc;dddd;

哪个属性可以控制这个?

不确定是否可以使用属性执行此操作,但可以使用 AfterWriteRecord 事件

例子

void Main()
{
    var records = new List<Record>();
    records.Add(new Record() { A = "aaaa", B = "bbbb", C = "cccc", D = "dddd" });

    var engine = new FileHelperEngine<Record>();
    engine.HeaderText = engine.GetFileHeader();

    engine.AfterWriteRecord += AfterWriteEvent;
    engine.WriteFile("output.csv", records);                
}

void AfterWriteEvent(EngineBase engine, AfterWriteEventArgs<Record> e)
{
    e.RecordLine += ";" ;
}

[FileHelpers.DelimitedRecord(";")] 
public class Record
{    
    public string A;
    public string B;
    public string C;
    public string D;
}

产出

A;B;C;D 
aaaa;bbbb;cccc;dddd; 

您也可以在 class 的末尾添加一个虚拟字段。您可以将其标记为 [FieldOptional],这样如果您使用相同的 class 进行导入,则不需要它。