我有一个CSV文件。我需要编写一个代码,我们可以通过用户名从CSV中获取一行。我需要从CSV文件更新或删除该行。我设法通过用户名获取行数据。但我不知道如何编写更新或删除功能的代码。我的代码获得单行如下
StreamReader reader = new StreamReader(System.IO.File.OpenRead(@"C:\Test\test.CSV"));
UserDetailsViewModel objInput = new UserDetailsViewModel();
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
if (!String.IsNullOrWhiteSpace(line))
{
string[] values = line.Split(',');
if (values[0] == "Bharat")
{
objInput.FirstName = values[0];
objInput.LastName = values[1];
objInput.Address1 = values[2];
objInput.Address2 = values[3];
objInput.City = values[4];
objInput.State = values[5];
objInput.ZipCode = values[6];
break;
}
}
}
reader.Dispose();
return View(objInput);
请有人帮我编写CSV文件的更新和删除代码。
先谢谢。
答案 0 :(得分:0)
您可以使用以下方法获得所需的结果。
- >首先,您必须阅读.csv文件。
- >然后遍历文件的每一行,同时你可以选择任何行进行编辑/删除,然后对该行进行更改并将该行存储到字符串列表中。
- >最后你必须把字符串列表写入文件。这就是全部。
例如:
List<String> lines = new List<String>();
using (StreamReader reader = new StreamReader(System.IO.File.OpenRead(@"C:\Test\test.CSV"));)
{
String line;
while ((line = reader.ReadLine()) != null)
{
if (line.Contains(","))
{
String[] split = line.Split(',');
if (//condition for Edit record like : split[1] == "abc" etc.)
{
// update that
split[1] = "xyz";
line = String.Join(",", split);
lines.Add(line);
}
if (//condition for Delete row.)
{
// don't add that row into string list
}
}
}
}
using (StreamWriter writer = new StreamWriter(@"C:\Test\test.CSV", false))
{
foreach (String line in lines)
writer.WriteLine(line);
}
答案 1 :(得分:0)
阅读和编写csv通常比初看起来更复杂。 使用像KBCsv(https://github.com/kentcb/KBCsv)这样的库来完成该任务