写入CSV并在Excel 2010-2012中更正显示

时间:2014-04-02 17:50:52

标签: c# excel cvs

请帮我把每个值写入不同的单元格,我尝试在CSV文件中写入数据但是当我在Excel中打开这个文件时,显示在一行(单元格)中的值。在值之间有不同的各种分隔符"。"和","。但Office 2010和2012中的结果是一样的......还有一个有趣的想法,在Office 2007中可以使用(* .xls)......

string s = "";
s += "Nick-Name, Category, Web-Pages, ICQ, Skype, Mail, Phone\r";
for (int i = 0; i < listOfUsers.Count; i+=3)
{
   s += nickName[i] + "," + category[i] + "," + webList[i] + "," + ICQList[i] + "," + skypeList[i] + "," + mailList[i] + "," + phoneList[i] + ";\r";
}
System.IO.File.WriteAllText(@"" + folder + "Parse_people_list.csv", s, System.Text.Encoding.UTF8);

P1 http://i7.pixs.ru/storage/8/8/6/page1JPG_7902893_11519886.jpg

P2 http://i6.pixs.ru/storage/9/1/3/page2JPG_5395108_11519913.jpg

1 个答案:

答案 0 :(得分:0)

尝试使用制表符分隔 - Excel处理制表符分隔的数据比逗号分隔更好,因为数据中的逗号可能会导致问题。

您还可以使用StringBuilder.AppendLine来提高效果并避免手动添加换行符:

StringBuilder s = new StringBuilder();
s.AppendLine("Nick-Name\tCategory\tWeb-Pages\tICQ\tSkype\tMail\tPhone");
for (int i = 0; i < listOfUsers.Count; i+=3)
{
   s.AppendLine(
        nickName[i]  + "\t"
      + category[i]  + "\t"
      + webList[i]   + "\t"
      + ICQList[i]   + "\t"
      + skypeList[i] + "\t"
      + mailList[i]  + "\t"
      + phoneList[i]);;
}