我有一个要转换为 CSV 的文本文件。当我在EXCEL 导入向导中检查文件时,列和行如下图所示:
当我读取文件并以 .csv 格式写入文件时,结果如下图所示,如突出显示的行中所示。
我注意到文件中的一些数据有多个逗号',它们是行数据用完的地方。这超出了我的范围。
我正在使用以下代码:
class Program
{
static void AddComma(string s, TextWriter writer)
{
foreach (string line in s.Replace("\"", "").Split('\n'))
{
for (int i = 0; i < line.Length; i++)
{
if (i > 0)
writer.Write(line[i]);
}
writer.WriteLine();
}
}
static void Main(string[] args)
{
TextReader reader = new StreamReader(@"C:\folder\sample.txt");
string a = reader.ReadToEnd();
reader.Close();
FileStream aFile = new FileStream(@"C:\folder\sample.csv", FileMode.Create);
AddComma(a, new StreamWriter(aFile));
aFile.Close();
}
}
找到解决方案更新:
我所做的只是修改了以下代码行:我删除了 Replace() 方法。
由此:foreach (string line in s.Replace("\"", "").Split('\n'))
对此:foreach (string line in s.Split('\n'))
数组也从零开始,所以我更改了计数器或 int 的起点:含义而不是这个:
for (int i = 0; i < line.Length; i++)
我有这个:
for (int i = -1; i < line.Length; i++)
{
if (i > -1)
writer.Write(line[i]);
}
这确保我也将获得文件中从零开始的第一列。
感谢大家。