我有两个列表,每个列表都有不同的数据我想将列表数据添加到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
}
}
答案 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]);