You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

实现方案

CSV为纯文本存储格式,本身不支持行级部分更新,使用CSVHelper实现仅修改指定列的标准流程为「读取全量CSV数据→仅修改目标列字段→全量回写覆盖原文件」,该流程不会改动其余列的原有数值。

操作步骤

  • 第一步:定义和CSV列结构匹配的实体类,所有字段按CSV列映射,不需要修改的字段无需额外处理即可保留原值
  • 第二步:用CSVHelper读取全量行数据到内存集合
  • 第三步:匹配到需要更新的行,仅修改ExecutionEndDate和ExecutionEndTime两个字段
  • 第四步:将修改后的集合全量写回原CSV文件

代码示例

首先安装NuGet依赖:
Install-Package CsvHelper

1. 定义映射实体类

using CsvHelper.Configuration.Attributes;

public class ExecutionRecord
{
    // 按你的CSV实际列名补充所有字段定义,不需要修改的字段仅定义即可
    public int Id { get; set; }
    public string TaskName { get; set; }
    public string ExecutionStatus { get; set; }
    public string ExecutionStartDate { get; set; }
    public string ExecutionStartTime { get; set; }
    // 目标修改字段
    public string ExecutionEndDate { get; set; }
    public string ExecutionEndTime { get; set; }
    // 其余CSV列按上述格式补充定义即可
}

2. 读写修改逻辑

using CsvHelper;
using System.Globalization;
using System.IO;
using System.Linq;

// 替换为你的CSV文件实际路径
var csvFilePath = @"C:\your\path\result.csv";

// 读取全量CSV数据
List<ExecutionRecord> allRecords;
using (var reader = new StreamReader(csvFilePath))
using (var csvReader = new CsvReader(reader, CultureInfo.InvariantCulture))
{
    allRecords = csvReader.GetRecords<ExecutionRecord>().ToList();
}

// 匹配需要更新的行,此处以更新最后一行为例,可自定义匹配逻辑(如按任务ID、任务名称匹配)
var targetRow = allRecords.LastOrDefault();
if (targetRow != null)
{
    // 仅更新目标两列,其余列值保持不变
    targetRow.ExecutionEndDate = DateTime.Now.ToString("yyyy/MM/dd");
    targetRow.ExecutionEndTime = DateTime.Now.ToString("HH:mm:ss");
}

// 回写覆盖原文件
using (var writer = new StreamWriter(csvFilePath))
using (var csvWriter = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
    csvWriter.WriteRecords(allRecords);
}

注意事项

  • 如果CSV列名和实体类属性名不一致,可给属性添加[Name("CSV实际列名")]特性手动指定映射关系
  • 需要批量更新多行时,遍历allRecords集合匹配所有符合条件的行修改对应字段即可
  • 操作前建议提前备份原CSV文件,避免逻辑错误导致数据丢失

内容的提问来源于stack exchange,提问作者Naseem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:54:02