Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从C写csv文件_C#_File_Csv_Text - Fatal编程技术网

C# 从C写csv文件

C# 从C写csv文件,c#,file,csv,text,C#,File,Csv,Text,我将插入文本文件代码如下: foreach (var kvauthor in _tauthorData) { foreach (var coAuthor in kvauthor.Value.CoAuthors) { twObjClus.WriteLine("AuthorID: {0}, AuthorName: {1}, ClusterID: {2}, PaperID: {3}, CoAuthors: {4}, Pa

我将插入文本文件代码如下:

foreach (var kvauthor in _tauthorData)
{
   foreach (var coAuthor in kvauthor.Value.CoAuthors)
   {
      twObjClus.WriteLine("AuthorID: {0}, AuthorName: {1}, ClusterID: {2}, PaperID: {3},  
                           CoAuthors: {4}, PaperCategory: {5}, Venue: {6}, Year: {4}",  
                           eAuthor.AuthorID, eAuthor.AuthorName, curCluster.GetClusterID(),  
                           kvauthor.Key, coAuthor, kvauthor.Value.PaperCategory,  
                           kvauthor.Value.VenueID, kvauthor.Value.Year);

   }
}  
我想将所有这些数据插入到csv文件中,但我尝试了以下方法:

var csv = new StringBuilder();  

foreach (var kvauthor in _tauthorData)
{
   foreach (var coAuthor in kvauthor.Value.CoAuthors)
   {
      csv.AppendFormat("{0},{1},{2},{3},{4},{5},{6}",AuthorID: {0}, AuthorName: {1}, ClusterID: {2}, PaperID: {3},  
                           CoAuthors: {4}, PaperCategory: {5}, Venue: {6}, Year: {4}",  
                           eAuthor.AuthorID, eAuthor.AuthorName, curCluster.GetClusterID(),  
                           kvauthor.Key, coAuthor, kvauthor.Value.PaperCategory,  
                           kvauthor.Value.VenueID, kvauthor.Value.Year);

   }
}  

如何将此数据逐行插入到带有列标题的csv文件中?

添加列标题很简单,只需在打开文件或创建StringBuilder实例时执行一次即可,该实例稍后将用于添加行

var csv = new StringBuilder();  

// add column headers first
csv.AppendLine("AuthorID,AuthorName, ..."); // and so on

// add data
foreach (var kvauthor in _tauthorData)
    foreach (var coAuthor in kvauthor.Value.CoAuthors)
    {
        csv.AppendLine($"{coAuthor.AuthorId},{coAuthor.Name}, ..."); // and so on
        // if you don't have C# 6.0
        // csv.AppendFormat("{0},{1}, ... {N}", coAuthor.AuthorId, coAuthor.Name, ..., Environmental.NewLine");
    }

File.WriteAllText(path, csv.ToString());

注意:您可以使用自动添加,否则,如果使用AppendFormat,请手动将其添加到字符串末尾。

情况并非如此,我要写入的数据来自代码中的变量,而我需要在顶部有列标题和csv格式的值,尝试告诉您不能执行的操作?或者你不知道是什么?可能问题是?我无法在CSV的顶部显示一次列标题。在循环之前,您必须创建文件或StringBuilder并在外部添加列标题行。然后,在这个循环中,您只需使用索引将数据添加到相应的列中。存在一些错误,即expectedI将其用作csv.AppendLine${eAuthor.AuthorID}、{eAuthor.AuthorName}、{curCluster.GetClusterID}、{kvauthor.Key}、{coAuthor}、{kvauthor.Value.PaperCategory}、{kvauthor.Value.VenueID}、{kvauthor.Value.Year};但是,如果您寻求调试帮助,那么发布您的代码和准确的错误消息当然是一个新问题。我无法帮助您了解评论行中给出的信息。如果您不需要C 6.0,那么您必须使用string.Format或保留现在的AppendLine,但只需根据答案中的注释在末尾添加environment.NewLine。请参见编辑。C7.0很快就会。。。