One*_*itz 2 c# csv string stringbuilder streamwriter
所以这就是我正在使用的东西.我正在尝试获取XML文件,从属性中提取信息,将它们附加在一起,然后将其写入CSV文件.我还是比较新的编程,而另一个程序员今天不在办公室,所以我真的可以使用一些帮助.
我的第一个问题,关于StringBuilder.我是否需要在StringBuilder的末尾添加一个AppendLine,以便foreach循环中的每个字符串输出都在一个新行上?我是否需要在foreach循环中执行此操作?
我的第二个问题是实际上将我的字符串写入CSV文件.它看起来像什么?
swOutputFile.WriteLine(strAppendedJobData)
Run Code Online (Sandbox Code Playgroud)
我认为这也会进入foreach循环,但我不太确定.
感谢您的帮助,我希望我以一种易于理解的方式表达我的问题.
//Create a stream writer to write the data from returned XML job ticket to a new CSV
StreamWriter swOutputFile;
string strComma = ",";
swOutputFile = new StreamWriter(new FileStream("C:\\Dev\\AppendedJobData.csv", FileMode.Create, FileAccess.Write, FileShare.Read));
//Get nodes from returned XML ticket
XmlNodeList xmlJobs = xdResults.SelectNodes("/Updates/Jobs/Job");
//Pull out data from XML attributes
foreach (XmlElement xeJobUpdate in xmlJobs)
{
//Break down the job data
string strProjectID = xeJobUpdate.GetAttribute("SharpOwlProjectID");
string strJobNumber = xeJobUpdate.GetAttribute("JobNumber");
string strClientCode = xeJobUpdate.GetAttribute("SharpOwlClientCode");
string strClient = xeJobUpdate.GetAttribute("Client");
string strVCAOffice = xeJobUpdate.GetAttribute("VCAOffice");
string strLoadStatus = xeJobUpdate.GetAttribute("LoadStatus");
//Build the string to be added to the new CSV file
StringBuilder sbConcatJob = new StringBuilder();
sbConcatJob.Append(strProjectID).Append(strComma).Append(strJobNumber)
.Append(strComma).Append(strClientCode).Append(strComma).Append(strClient).Append(strComma)
.Append(strVCAOffice).Append(strComma).Append(strLoadStatus).Append(strComma);
string strAppendedJobData = sbConcatJob.ToString();
Run Code Online (Sandbox Code Playgroud)
如果你想做得更优雅,你可以这样做:
using(StreamWriter swOutputFile = new StreamWriter(new FileStream("C:\\Dev\\AppendedJobData.csv", FileMode.Create, FileAccess.Write, FileShare.Read)))
{
//Get nodes from returned XML ticket
XmlNodeList xmlJobs = xdResults.SelectNodes("/Updates/Jobs/Job");
//Pull out data from XML attributes
foreach (XmlElement xeJobUpdate in xmlJobs)
{
List<String> lineItems = new List<String>();
lineItems.add(xeJobUpdate.GetAttribute("SharpOwlProjectID"));
//add all the other items
swOutputFile.WriteLine(String.Join(',', myLine.ToArray()));
}
//after the loop you close the writer
}
//all the work is done much easier
Run Code Online (Sandbox Code Playgroud)