使用c#将csv文件转换为html时出错

时间:2010-12-01 22:46:54

标签: c# .net html csv

我正在尝试使用流式读取器将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>");

1 个答案:

答案 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>");