我有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格式字符串。
答案 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.labels
和this.values
已经是csv格式字符串,那么您只需将它们添加到文件中即可:
using (StreamWriter w = File.AppendText("filename.csv"))
{
w.WriteLine(this.labels);
w.WriteLine(this.values);
}