使用CSV Helper从类中写入单个记录

时间:2018-07-02 16:02:11

标签: c# export-to-csv csvhelper

我正在使用https://joshclose.github.io/CsvHelper/上的库CSV Helper尝试编写一个可以为我导出类的函数。这是我的示例类:

 public class Z1000
{
    public string ModelNumber { get; set; }
    public string SerialNumber { get; set; }
    private string InputVolts { get; set; }
    private string InputHz { get; set; }
    private string InputPhase { get; set; }
    private string InputAmps { get; set; }
    private string OutputVolts { get; set; }
    private string OutputHz { get; set; }
    private string OutputPhase { get; set; }
    private string OutputAmps { get; set; }
    private string Type { get; set; }
    private string WiringDiagram { get; set; }
    private string SCCR { get; set; }
    private string FLA { get; set; }
    private bool SuitableForUseAsServiceEquipment { get; set; } = false;
    private List<string> InstanceManuals { get; set; } = new List<string>();
    private List<string> Options { get; set; } = new List<string>();
    private List<Fuse> Fuses { get; set; } = new List<Fuse>();              
  }

这堂课也有几个功能,我将它们排除在外,因为它们对这个问题并不重要。这是我试图用来导出单个记录的功能。

public void ExportToCsv<T>(T classToExport)
    {
        using (StreamWriter writer = new StreamWriter(@"C:\Data\Output.csv"))
        {
            var csv = new CsvWriter(writer);
            csv.WriteHeader(typeof(T));
            csv.WriteRecord(classToExport);
        }
    }

代码执行得很好,但是由于某些原因,导出的csv文件只是空的。我在这里缺少某种步骤吗?我尝试了几种不同的方式,但似乎无法将其锁定。我阅读了编写文档及其示例,但这些文档似乎都不适合我。我是否完全想念东西?

编辑: 我设置了一个断点,并验证了正在写入公共成员数据。 enter image description here

1 个答案:

答案 0 :(得分:1)

该库似乎要求您在输出记录后刷新记录。

在GitHub站点上:https://joshclose.github.io/CsvHelper/writing

  

结束行

     

写完行后,需要刷新字段并   开始新的一行。冲洗和开始新行是分开的,以便   您可以刷新而无需创建新行。呼叫NextRecord()将   为你冲洗。