同时在csv文件中写两行

时间:2014-07-23 08:38:01

标签: c# csv

我有7个文本框,我想将它们的值写入csv文件。另外,我想为这些信息写一个标签。最终的csv文件应如下所示:

label1----label2----label3----label7

value1----value2----value3----value7

这是我的代码:

public void CreatingCsvFiles()
        {
            string filePath = "C:\\Users\\User\\Desktop\\project2\\" + "filename.csv";
            if (!File.Exists(filePath))
            {
                File.Create(filePath).Close();
            }
            string delimiter = ",";
            string[][] output = new string[][]{
                new string[]{this.labels}
            };
            int length = output.GetLength(0);
            StringBuilder sb = new StringBuilder();
            for (int index = 0; index < length; index++)
                sb.AppendLine(string.Join(delimiter, output[index]));
            File.AppendAllText(filePath, sb.ToString());
        }

如您所见,我使用了new string[] {this.labels} 其中this.labels是 csv格式字符串。

一切正常,但问题是我无法知道将this.values写入同一个csv文件的人。

其中this.values csv格式字符串。

2 个答案:

答案 0 :(得分:2)

File.AppendAllText添加sb.AppendLine(this.values)之前。

注意你在做什么是在StringBuilder对象中创建文本行,然后将它们全部写入文件,另一个常见的替代方法是单独写每行。

如果你需要显示它以及编写它,StringBuilder方法可能很有用,但是如果你开始处理大量文本时要小心,因为StringBuilder对象也会增长。

要在每行写入,以下内容应该有助于您入门:

using(StreamWriter sw = new StreamWriter(@"C:\temp\csvfile.csv",true))
            {
                sw.WriteLine("HEADER");
                sw.WriteLine("======");
                sw.WriteLine("1,2,3,4");
            }

答案 1 :(得分:0)

如果this.labelsthis.values 已经是csv格式字符串,那么您只需将它们添加到文件中即可:

using (StreamWriter w = File.AppendText("filename.csv"))
{
  w.WriteLine(this.labels);
  w.WriteLine(this.values);
}