2010-12-01 96 views
0

我想通過使用流讀取器將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>"); 

回答

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