【问题标题】:Update one column in CSV File C#更新 CSV 文件 C# 中的一列
【发布时间】:2012-10-27 12:22:28
【问题描述】:

我想根据 CSV 文件中数据库的条件更新一列(第三列)。 想要删除 100,并用 , 替换 CSV 文件中部门为 1500 的员工

数据库表:

EmpID DeptID

100 1500

101 1300

102 1500

CSV文件如下图:

EmpID,EmpName,Score,Grade1,Grade2,Grade3
100,emp1,100,A1,A3
101,emp2,250,A1,A5,A2
102,emp3,100,A1

结果应该是这样的:

100,emp1,,A1,A3
101,emp2,250,A1,A5,A2
102,emp3,,A1

首先,我无法替换第三列中的值,请参见下面的代码:

string file1 = @"F:\test.csv"; string[] lines = System.IO.File.ReadAllLines(file1);
System.IO.StreamWriter sw = new System.IO.StreamWriter(file1);    
foreach(string s in lines) { 
    sw.WriteLine(s.Replace("100", ""));    
}    
sw.Close();

如果我在 foreach 循环中给出以下行:

sw.WriteLine(Regex.Replace(s, s.Split(',')[2], m => s.Split(',')[2].ToString().Replace("100", "")));

它将所有值从 100 替换为空字符串。

您能告诉我如何替换第 3 列中的值吗?

提前致谢。

【问题讨论】:

    标签: c# asp.net csv


    【解决方案1】:
    var lines = new string[10];
    var splitLines = lines.Select(l => l.Split(','));
    foreach (var splitLine in splitLines)
    {
        if (splitLine[2] == "100")
        {
            splitLine[2] = "0";
        }
        var line = string.Join(",", splitLine);
    
        // And then do what you wish with the line.
    }
    

    【讨论】:

      猜你喜欢
      • 2020-05-05
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-10
      • 1970-01-01
      • 2020-08-30
      • 2012-11-10
      相关资源
      最近更新 更多