繁体   English   中英

如何使用 CSVHelper 更新现有 CSV 文件中特定列中的值?

[英]How to update the value in a specific column in an existing CSV file using CSVHelper?

我有一个 CSV 文件,我在其中添加了自动化结果的结果。 我可以使用 CSV 帮助程序类在文件中添加详细信息。 我的要求是一旦执行完成,我的脚本应该更新现有 CSV 文件中的给定列,只是特定列和列值的其余部分应该保持不变。 我无法找到相同的解决方案。 这是我的 CSV 文件的屏幕截图

在此处输入图片说明

执行完成后,我只想更新 ExecutionEndDate 和 ExecutionEndTime 列。 其余列不应受到影响。

是否有使用 CSV 帮助程序类的相同解决方案? 我尝试了此问题链接中提供的解决方案,但它也影响了其他列。

任何帮助表示赞赏。

您应该能够读取记录,向这两列添加值,然后写回文件。

void Main()
{
    List<Foo> records = null;
    
    var csvFile = "SuiteName,ExecutionEnvironment,ExecutionEndDate,ExecutionEndTime,ClientName,SuiteCategory\n";
    csvFile += "Testing_v1,QA,,,XXXX,Regression";
    
    using (var reader = new StringReader(csvFile))
    using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
    {
        records = csv.GetRecords<Foo>().ToList();
    }
    
    records.First().ExecutionEndDate = DateTime.Now.ToShortDateString();
    records.First().ExecutionEndTime = DateTime.Now.ToShortTimeString();

    using (var csv = new CsvWriter(Console.Out, CultureInfo.InvariantCulture))
    {
        csv.WriteRecords(records);
    }
}

public class Foo
{
    public string SuiteName { get; set; }
    public string ExecutionEnvironment { get; set; }
    public string ExecutionEndDate { get; set; }
    public string ExecutionEndTime { get; set; }
    public string ClientName { get; set; }
    public string SuiteCategory { get; set; }
}

暂无
暂无

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

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