代码之家  ›  专栏  ›  技术社区  ›  A arancibia

使用StreamWriter将标题添加到CSV输出文件中

  •  1
  • A arancibia  · 技术社区  · 10 年前

    我正在尝试将头添加到CSV文件中,作为头,我希望在 WriteLine .

    这是我的代码:

    using (StreamWriter file = new StreamWriter(fs))                    
    {
        for (int s = 0; s < pr.Length; ++s)
        {
            string[] UsersIDS = new string[] {""};
            UsersIDS = db.GetUsersList(pr[s].ProjectID);
            file.WriteLine(
                 pr[s].ProjectID + '"' + ',' + 
                 '"' +  pr[s].ProjectTitle + '"' + ',' + 
                 pr[s].PublishStatus + '"' + ',' + 
                 UsersIDS.Length); 
        }
    }
    
    2 回复  |  直到 10 年前
        1
  •  2
  •   Yuriy Zaletskyy    10 年前

    我建议您进行以下修改

    using (StreamWriter file = new StreamWriter(fs))                    
    {
        file.WriteLine("ProjectID, ProjectTitle,PublishStatus,Length");
        for (int s = 0; s < pr.Length; ++s)
        {
            string[] UsersIDS = new string[] {""};
            UsersIDS = db.GetUsersList(pr[s].ProjectID);
            file.WriteLine( pr[s].ProjectID + '"' + ',' + '"' + pr[s].ProjectTitle + '"' + ',' + pr[s].PublishStatus + '"' + ',' + UsersIDS.Length); 
    
    }//end of for
    
        2
  •  2
  •   Alexei Levenkov    10 年前

    只是普通的 WriteLine 常量字符串似乎是您想要的(除非您想通过反射或其他方式获取列的名称):

    using (StreamWriter file = new StreamWriter(fs))                    
    {
        file.WriteLine( "ProjectID,ProjectTitle,PublishStatus,UsersIDS_Length"); 
    
        for (int index = 0; index < pr.Length; index++)
        {
            var usersIds = db.GetUsersList(pr[s].ProjectID);
            file.WriteLine("{0},\"{1}\",{2},{3}",
               pr[s].ProjectID, pr[s].ProjectTitle,
               pr[s].PublishStatus, usersIds.Length); 
        }
    }
    

    (听起来你还想在标题周围加引号……其他引号看起来不平衡)。