繁体   English   中英

同时在csv文件中写入两行

[英]writing two lines in a csv file at the same time

我有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.valuescsv格式的字符串。

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

如果this.labelsthis.values 已经是csv格式的字符串,那么您可以简单地将它们添加到文件中:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM