C# 将数据写入CSV文件
我有一个关于将数据写入CSV文件的问题。 我有一个名为test.csv的文件,其中有两个字段>accountnumber和relationid。 现在我想在它旁边添加另一个字段:IBAN。 IBAN是来自第一行的数据,由SOAP函数BBANtoIBAN验证 如何在CSV中保留2行数据AccountNumber和关系ID,并在第3行中添加IBAN 这是我目前的代码:C# 将数据写入CSV文件,c#,csv,file-io,C#,Csv,File Io,我有一个关于将数据写入CSV文件的问题。 我有一个名为test.csv的文件,其中有两个字段>accountnumber和relationid。 现在我想在它旁边添加另一个字段:IBAN。 IBAN是来自第一行的数据,由SOAP函数BBANtoIBAN验证 如何在CSV中保留2行数据AccountNumber和关系ID,并在第3行中添加IBAN 这是我目前的代码: using (var client = new WebService.BANBICSoapClient("IBANBICSoap")
using (var client = new WebService.BANBICSoapClient("IBANBICSoap"))
{
List<List<string>> dataList = new List<List<string>>();
TextFieldParser parser = new TextFieldParser(@"C:\CSV\test.csv");
parser.TextFieldType = FieldType.Delimited;
parser.SetDelimiters(";");
while (!parser.EndOfData)
{
List<string> data = new List<string>();
string row = parser.ReadLine();
try
{
string resultIBAN = client.BBANtoIBAN(row);
if (resultIBAN != string.Empty)
data.Add(resultIBAN);
else
data.Add("Accountnumber is not correct.");
}
catch (Exception msg)
{
Console.WriteLine(msg);
}
dataList.Add(data);
}
}
使用(var client=new WebService.BANBICSoapClient(“IBANBICSoap”))
{
List dataList=新列表();
TextFieldParser=newtextfieldparser(@“C:\CSV\test.CSV”);
parser.TextFieldType=FieldType.Delimited;
parser.SetDelimiters(“;”);
而(!parser.EndOfData)
{
列表数据=新列表();
字符串行=parser.ReadLine();
尝试
{
字符串resultIBAN=client.BBANtoIBAN(行);
if(resultIBAN!=string.Empty)
添加数据(resultIBAN);
其他的
添加数据(“帐号不正确”);
}
捕获(异常消息)
{
控制台写入线(msg);
}
dataList.Add(数据);
}
}
我认为:
StreamReader sr = new StreamReader(@"C:\CSV\test.csv")
StreamWriter sw = new StreamWriter(@"C:\CSV\testOut.csv")
while (sr.Peek() >= 0)
{
string line = sr.ReadLine();
try
{
string[] rowsArray = line.Split(';');
string row = rowsArray[0];
string resultIBAN = client.BBANtoIBAN(row);
if (resultIBAN != string.Empty)
{
line +=";"+ resultIBAN;
}
else
{
line +=";"+"Accountnumber is not correct.";
}
}
catch (Exception msg)
{
Console.WriteLine(msg);
}
sw.WriteLine(line)
}
sr.Close();
sw.Close();
我将这样做来解析csv文件,并在数据列表中添加一个额外的项目:
List<List<string>> dataList = new List<List<string>>();
string filename = @"C:\CSV\test.csv";
using (StreamReader sr = new StreamReader(filename))
{
string fileContent = sr.ReadToEnd();
foreach (string line in fileContent.Split(new string[] {Environment.NewLine},StringSplitOptions.RemoveEmptyEntries))
{
List<string> data = new List<string>();
foreach (string field in line.Split(';'))
{
data.Add(field);
}
try
{
string resultIBAN = client.BBANtoIBAN(data[0]);
if (resultIBAN != string.Empty)
{
data.Add(resultIBAN);
}
else
{
data.Add("Accountnumber is not correct.");
}
}
catch (Exception msg)
{
Console.WriteLine(msg);
}
dataList.Add(data);
}
List dataList=newlist();
字符串文件名=@“C:\CSV\test.CSV”;
使用(StreamReader sr=新StreamReader(文件名))
{
字符串fileContent=sr.ReadToEnd();
foreach(fileContent.Split中的字符串行(新字符串[]{Environment.NewLine},StringSplitOptions.RemoveEmptyEntries))
{
列表数据=新列表();
foreach(第行中的字符串字段。拆分(“;”))
{
添加数据(字段);
}
尝试
{
字符串resultIBAN=client.BBANtoIBAN(数据[0]);
if(resultIBAN!=string.Empty)
{
添加数据(resultIBAN);
}
其他的
{
添加数据(“帐号不正确”);
}
}
捕获(异常消息)
{
控制台写入线(msg);
}
dataList.Add(数据);
}
您可以阅读文件并在每一行中添加“[yourIBANPropValue]”在parser.Readline()中是什么意思?是否有任何文档或示例可供我在线查看?我猜行就是本例中的行?嗯,我将添加一些附加信息,我忘了一些东西testOut.csv已创建;但为空。您是否添加了sr.Close()和sw.Close()?它仍然是空的?有关于异常的消息吗?那么在本例中的“行”是“字段”?我如何验证函数BBANtoIBAN中第一行的值,然后在函数的输出中添加第三行?抱歉,没有捕捉到。您将传入列表中的第一个字符串。