写入csv文件中的下一列c#

时间:2015-09-08 20:28:30

标签: c# excel csv

我有两个列表,每个列表都有不同的数据我想将列表数据添加到csv文件我的问题如何写在下一列。

这两个列表是dl,xl我想在列中写入xl而在另一列中写入dl

这是我的代码

using (StreamWriter sw = File.CreateText("list.csv"))
            {
                for (int i = 0; i < dl.Count; i++)
                {
                    // the two list have the same count 
                    sw.WriteLine(dl[i]);
                    sw.WriteLine(xl[i]); // i want to write this in another column 
                }
            }

4 个答案:

答案 0 :(得分:5)

您没有编写Excel文件。您正在编写与Excel兼容的CSV文件。 CSV代表&#34;逗号分隔值,&#34;这意味着你应该使用逗号作为列分隔符。

所以...改变这个:

sw.WriteLine(dl[i]);
sw.WriteLine(xl[i]); // i want to write this in another column 

对此:

var line = String.Format("{0},{1}", dl[i], xl[i]);
sw.WriteLine(line);

答案 1 :(得分:2)

正如在其他答案中已经解释的那样,CSV文件是一种特殊类型的文本文件,其中我们有多个数据记录,每行一行。 (就像RDBMS表中的表行一样)。现在,每行/每行可以有多个数据部分或列或数据(如表格行中的数据列),用逗号','分隔。

基本上,CSV文件代表数据表。它不是Excel文件,但可以使用MS Excel打开并轻松编辑。

因此,典型的csv数据文件看起来像

  

EMPLOYEEID,名称,DEPT

     

1,约翰,CSHARP

     

2,埃里克,编译器

因此,要创建一个新的数据行,只需将内容写入新行即可。要标记列,请用逗号分隔它们。正如op所要求的那样,如果要将dl和xl的每个值创建为csv文件中的列,则应将它们写在以逗号分隔的行中。这可以通过将for循环中的代码更改为

来实现
sw.WriteLine(dl[i] + "," + xl[i]);

这里+用于连接三个字符串值,但是对于更多的叮咬甚至为此,可以使用

以更干净的方式完成
string.Format("{0},{1}", dl[i], xl[i]);

答案 2 :(得分:0)

我发现最简单的方法是:

using (StreamWriter sw = File.CreateText("newfile.csv"))
{
    for (int i = 0; i < threshhld; i++)
    {
        //writing two columns right next to eachother 
        sw.WriteLine(dl[i] + "," + xl[i]);
    }
}

答案 3 :(得分:0)

对于正在搜索要写在两列中的人,只需添加;

string.Format("{0};{1}", dl[i], xl[i]);