2010-08-16 31 views
0

我有以下PHP讀取CSV文件並輸出HTML表格的行/單元格。有人可以幫助我與ASP.net等效?ASP.net等效於PHP的fgetcsv將CSV轉換爲HTML表格

<?php 
$f = fopen("spreadsheet.csv", "r"); 
while (($line = fgetcsv($f)) !== false) { 
    if(trim($line) != '' && $line != "\n" && $line != "\r") { 
     echo '<tr>'; 
     foreach ($line as $cell) { 
      echo "<td>" . htmlspecialchars($cell) . "</td>"; 
     } 
     echo "</tr>\n"; 
    } 
} 
fclose($f); 
?> 

我看到不同的選項,如http://github.com/claco/csvdatareader/但作爲無能ASP.net,我怕我不知道如何使他們的工作。

回答

1

如下所示,不需要超出.Net核心框架來處理CSV文件 - Visual Basics TextFieldParser類將爲您完成外部依賴關係。你甚至可以在C#中使用它!

StringBuilder MyTable = new StringBuilder(); 

var Parser = new TextFieldParser(@"C:\Path\To\File\File.csv"); 
Parser.HasFieldsEnclosedInQuotes = true; 
Parser.SetDelimiters(","); 
Parser.TextFieldType = FieldType.Delimited; 
MyTable.AppendLine("<table>"); 

while(var Row = Parser.ReadFields()) 
{ 
    MyTable.AppendLine("<tr>"); 

    foreach(var Field in Row) 
    { 
     MyTable.AppendLine("<td>" + Field + "</td>"); 
    } 

    Mytable.AppendLine("</tr>"); 
} 

MyTable.AppendLine("</table>"); 

有可能是錯的上述一些小事情,我做它的飛行和速度非常快:)這應該是大部分正確但是 - 它是一個相當OK的代碼示例的介紹,個人我不會自己創建表,但我會創建一個數據源(可能將csv文件讀入數據表),並將其綁定到一個將爲我們構建html的ASP.Net控件(HtmlTable或Gridview)。

但在這種情況下,它是一個很好的例子,給你你在PHP中的確切內容。

+0

謝謝@Moo。一個代碼示例真的有幫助。我害怕我是一個PHP的人,我不知道任何關於.NET的東西。 – skypanther 2010-08-17 14:08:45

+0

@skypanther - 你去:) – Moo 2010-08-17 14:50:03

+0

謝謝!我會測試它......用我的php版本,我輸出到一個HTML表格,然後使用jQuery插件來創建一個可排序的,可搜索的表格。這是我的意圖與ASP版本 - 我試圖將這添加到我的木工俱樂部的網站,但他們使用ASP不PHP,所以我有點失落。謝謝! – skypanther 2010-08-17 17:27:07