在调用某些 Web 服务的程序中,我希望在最终结果中创建不同的 CSV 文件,具体取决于是否ProjectID
不同
在下面的代码中,它在数组过滤器中projectIDs
调用所有项目编号,并将其发送到最终的服务调用。
现在最终文件只是一个包含 2 个不同项目的文件。
我想要做的是,对于存在的每个 projectID,创建并下载一个不同的 CSV 文件。
我怎样才能做到这一点?
这是代码:
非常感谢。
string ExportTasksForAllProjects = "ExportTasksForAllProjects";
string outCsvFile = string.Format(@"C:\\ExportTasksForAllProjects\\{0}.csv", ExportTasksForAllProjects + DateTime.Now.ToString("_yyyyMMdd HHmms")); //+ DateTime.Now.ToString("_yyyyMMdd HHmms") + "_" + Guid.NewGuid() + );
String newLine = "";
var stream = File.CreateText(outCsvFile);
WS.UserData[] userDataId = client.GetUserData(DataSourceId);
List<string> multiUserIDs = new List<string>();
foreach (var userdata in userDataId)
{
multiUserIDs.Add(userdata.List[0].ToString());
}
foreach (WS.ProjectMetaData proj in pr)
{
string temp = "";
var AllProjectIds = proj.ProjectID;
string[] projectIDs = new string[] { AllProjectIds }; // all projects
WS.TaskEntry[] resultGT3 = client.GetTasks3(projectIDs, multiUserIDs.ToArray());
foreach (var item in resultGT3)
{
newLine = item.ProjectID + "," +
item.UserID + "," +
item.ProjectTitle + "," +
item.StartDate;
stream.WriteLine(newLine);
}
stream.Close();
}
我建议您使用诸如CsvHelper之类的库来生成导出
因此,您可以将服务调用转储到使用 CsvHelper 映射的类中
你定义一个类
然后你会使用
有几种解决方案,一种方法是使用
File.CreateText()
创建不同的文件:有了这个,您可以创建
.csv
包含其中包含的值的文件resultGT3
:更新:要为每个项目创建不同的文件: