代码之家  ›  专栏  ›  技术社区  ›  mbugr

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

  •  2
  • mbugr  · 技术社区  · 9 年前

    我有两个列表,每个列表都有不同的数据。我想将列表数据添加到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 回复  |  直到 9 年前
        1
  •  7
  •   John Wu    9 年前

    您没有编写Excel文件。您正在编写与Excel兼容的CSV文件。CSV代表“逗号分隔值”,意思是您应该使用逗号作为列分隔符。

    所以…改变这一点:

    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);
    
        2
  •  2
  •   Community pid    4 年前

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

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

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

    员工ID、姓名、部门

    1、John,CSharp

    2,Eric,编译器

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

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

    这里+用于连接三个字符串值,但对于更多的字符串值,甚至对于这一点,可以使用

    string.Format("{0},{1}", dl[i], xl[i]);
    
        3
  •  1
  •   helpcaller    6 年前

    对于那些在两栏中搜索写作的人,只需添加;

    string.Format("{0};{1}", dl[i], xl[i]);
    
        4
  •  0
  •   johnnyRose    8 年前

    我发现最简单的方法是:

    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]);
        }
    }