我正在尝试使用流式读取器将csv文件转换为html并将其写入流式编写器。问题是它缺少csv文件的最后一行。我调试并尝试跟踪流阅读器,但我无法在每个循环中看到手表中的流阅读器输出。
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>");
答案 0 :(得分:0)
我建议使用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>");