CSV 助手。 First Value 向右移动

Csv Helper. First Value is shifting to the right

我一直在尝试使用 csv 助手创建一个简单的 csv 文件。但是,我得到的结果并不是我所期望的。 由于某些我找不到的原因,第一个值向右移动并显示为 header.

有人能指出我做错了什么吗?

public class Record
{ 
    public string Vrm { get; set; }        
    public string Version { get; set; }
    public DateTime Started { get; set; }
    public DateTime? Completed { get; set; }
    public string Status { get; set; }
    public string Comments { get; set; }
}

static void Main(string[] args)
    {
        var source = new List<Record> {
            new Record {

                Status = "Success",
                Version = "enhance",
                Started = DateTime.Parse("2017-11-15 13:27:56.9933333"),
                Completed = DateTime.Parse("2017-11-15 13:27:57.7300000"),
                Vrm = "16aux",
                Comments = "Completed Successfully"
            }
        };

        var month = DateTime.UtcNow.Month;
        var year = DateTime.UtcNow.Year;
        var fileName = $"TestFile_{month}{year}.csv";

        using (var sw = new StreamWriter(fileName))
        {
            var writer = new CsvWriter(sw);

            try
            {
                writer.WriteHeader<Record>();
                foreach (var record in source)
                {
                    writer.WriteField(record.Vrm);
                    writer.WriteField(record.Version);
                    writer.WriteField(record.Started);
                    writer.WriteField(record.Completed);
                    writer.WriteField(record.Status);
                    writer.WriteField(record.Comments);
                    writer.NextRecord();
                }

            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            var i = sw;
        }            
    }

结果是这样的:

继续阅读 http://joshclose.github.io/CsvHelper/writing#writing-all-records

您需要在 writer.WriteHeader<Record>(); 之后调用 writer.NextRecord(); 使作者前进一行。

您也可以使用 csv.WriteRecords( records ); 而不是对它们进行 foreaching

一次简单地写入所有数据