2014-06-24 64 views
0

我想將我的html頁面中的表導出爲.csv文件。我可以使用類似:從html導出爲.csv

private void GenerateExcelFileOnType(string filePath1, ref DataTable dt) 
     { 
      if (dt != null) 
      { 
       string line = string.Empty; 
       if (dt.Rows.Count > 0) 
       { 
        string str = dt.ToCSV(); 
        using (StreamWriter sw = new StreamWriter(filePath1)) 
        { 
         sw.Write(str); 
        } 
       } 
       dt.Clear(); 
       dt = null; 
      } 
     } 

但是有沒有用,我可以直接從HTML頁面導出,就像我們做了print (windows.print)

回答

0

據我所知任何方式有沒有可靠的方法直接從網頁啓動可下載文件,除了發送另一個HTTP請求並以可下載的MIME類型進行響應之外。

我真的不能看到一個偉大的需要。只要您可以發送需要的各種信息的請求,您的服務器就可以做出適當的響應。

更新

看來,從你的意見,你是不是看實際寫入CSV文件本地。如果你只是想顯示CSV作爲瀏覽器中的文本,然後當然的,這是可能的,用一些簡單的迭代:

function csv(id){ 

    var output = ''; 

    $('table#' + id + ' tr').each(function(i){ 

    if(i) 
     output += '</br>'; 

    var children = $(this).find('td, th'); 

    children.each(function(j){ 

     output += '\"' + $(this).html() + '\"'; 

     if(j < children.length - 1) 
     output += ', '; 

    }); 
    }); 

    return output; 

} 

這裏有一個fiddle ...

+0

好,但能我是否遍歷表中的行,並將它們寫入csv? –

+0

簡短的回答是否定的。您可以遍歷表並將數據發送到您的服務器,構建CSV服務器端,然後將其傳回瀏覽器進行下載。但是瀏覽器不允許你'*'寫*到客戶端機器上的本地文件。這將是一個重大的安全缺陷。 – shennan

+0

嘿,我有東西!看看這個! http://www.kunalbabre.com/projects/table2CSV.php –