使用c将csv文件转换为html时出错#
问题描述:
我想通过使用流读取器将csv文件转换为html并将其写入流编写器。问题是缺少csv文件的最后一行。我调试并试图跟踪流读取器,但我无法在每个循环的手表中看到流读取器输出。使用c将csv文件转换为html时出错#
string Line, path = @"C:\Vertex\nov\Source\Reports\Rpt_Disconn_and_Reconn_List_for_Customer_Operations_Results.csv";
System.IO.StreamReader ObjectStreamReader = null;
System.IO.StreamWriter ObjectStreamWriter = null;
ObjectStreamReader = new System.IO.StreamReader(path);
ObjectStreamWriter = new System.IO.StreamWriter("result.html");
Line = ObjectStreamReader.ReadLine();
ObjectStreamWriter.Write("<html><head><table border =1><>");
ObjectStream.Writer.Write(""):
while (ObjectStreamReader.Peek() > -1)
{
Line = ObjectStreamReader.ReadLine();
ObjectStreamWriter.WriteLine("<tr><td>" +
string.Join("</td><td>", Line.Split('\t')) +
"</td></tr>");
}
ObjectStreamWriter.WriteLine("</table></body></html>");
答
我建议在这样的使用File.ReadAllLines:
const string path = @"c:\temp\data.csv";
const char token = '\t';
string[] lines = File.ReadAllLines(path);
StringBuilder result = new StringBuilder();
result.Append("<html><head><table border =1>");
foreach (string line in lines)
{
string[] parts = line.Split(token);
string row = "<tr><td>" + string.Join("</td><td>", parts) + "</td></tr>";
result.Append(row);
}
result.Append("</table></body></html>");