为什么某些行在 C# 中显示不同列的数据?
Why certain row shows different column's data in c#?
我想写 certain column
从 input file
到 output file
。
我的代码如下所示:
try
{
using (StreamWriter file = new StreamWriter(@"outputfile.csv", true))
{
string[] lines;
file.WriteLine("Date,Entity, ProdFamily, ProdGroup, ProdType1, ProdTypo, ProdType, Currency, InternalFlag, B/S");
lines = System.IO.File.ReadAllLines(@"inputfile.csv";
foreach (string line in lines)
{
if (line != lines[0])
{
string[] values = line.Split(',');
file.WriteLine("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9}",
values[43], values[0], values[11], values[12], values[13], values[15], values[14], values[28], values[22], values[9]);
}
}
}
}
我得到的 error
是一些 row
正在显示 other column's data
。例如,第一行的第一列显示 N
而它应该显示 1-Jun-20.
这是上面示例中使用的输入文件的一部分。
我尝试通过更改缺陷行的列索引来进行硬编码,例如将 values[43]
更改为 values[43+2]
,但它只会创建另一个意外数据。请帮助我。
您的输入文件的某些单元格中包含逗号:
在 CSV 中,将表示为:
...,BL,"BR BSS PLC,WB,",NA,...
您的拆分代码平等对待这些逗号中的每一个,而不考虑它们是否被引用:
string[] values = line.Split(',');
您应该使用 CSV 解析库,而不是尝试自己解析它。
我想写 certain column
从 input file
到 output file
。
我的代码如下所示:
try
{
using (StreamWriter file = new StreamWriter(@"outputfile.csv", true))
{
string[] lines;
file.WriteLine("Date,Entity, ProdFamily, ProdGroup, ProdType1, ProdTypo, ProdType, Currency, InternalFlag, B/S");
lines = System.IO.File.ReadAllLines(@"inputfile.csv";
foreach (string line in lines)
{
if (line != lines[0])
{
string[] values = line.Split(',');
file.WriteLine("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9}",
values[43], values[0], values[11], values[12], values[13], values[15], values[14], values[28], values[22], values[9]);
}
}
}
}
我得到的 error
是一些 row
正在显示 other column's data
。例如,第一行的第一列显示 N
而它应该显示 1-Jun-20.
这是上面示例中使用的输入文件的一部分。
我尝试通过更改缺陷行的列索引来进行硬编码,例如将 values[43]
更改为 values[43+2]
,但它只会创建另一个意外数据。请帮助我。
您的输入文件的某些单元格中包含逗号:
在 CSV 中,将表示为:
...,BL,"BR BSS PLC,WB,",NA,...
您的拆分代码平等对待这些逗号中的每一个,而不考虑它们是否被引用:
string[] values = line.Split(',');
您应该使用 CSV 解析库,而不是尝试自己解析它。