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很快就会。。。