2015-11-16 94 views
1

我需要的數據Grid.MVC導出到Excel中。我在這個鏈接中使用瞭解決方案。導出Grid.MVC數據到Excel

http://www.codeproject.com/Articles/325103/MVC-Grid-to-Excel-file-download?msg=5161340#xx5161340xx

它是工作,但我有2個問題。首先它是在鉻工作,但它不在IE中工作。它在IE中給我一個錯誤(文件不能被讀取)。第二個問題是當我過濾網格時,Excel中導出的數據仍顯示所有數據而不是過濾數據。

如果這不是一個好的解決辦法,請給我提供例如用於出口Grid.MVC數據到Excel。

+0

對於「文件無法讀取」這是一個有點猜測的,而是從例子中,我注意到'''curContext.Response.AddHeader(「內容處置」,「附件;文件名=「+文件名);''' 並記住Firefox有一些問題,如果文件名有空格,會導致瀏覽器混淆。你應該把文件名一起放在引號中,像這樣:'''''''''''''''' ''' –

回答

0

我有一個使用Javascript/jQuery的解決方案,爲我的作品。

當您使用grid.mvc它的一些類添加到THEAD和TBODY,這個班需要爲您生成Excel文件的正確的出口/可視化被刪除。我也使用grid.mvc,並且此代碼導出爲ex​​cel,請讓我知道這是否適用於您。

<script> 
 

 
    $("#btnExport").click(function (e) { 
 
     $('.grid-wrap').find('table').removeAttr('class'); 
 
     $('.grid-header').removeAttr('class'); 
 
     $('.grid-row').removeAttr('class'); 
 

 
     $('.grid-cell').removeAttr('data-name'); 
 
     $('.grid-cell').removeAttr('class'); 
 

 

 
     window.open('data:application/vnd.ms-excel,' + $('.grid-wrap').html()); 
 

 
     
 
     //MakeAnyFunctionToReloadThePageToGetTheClassesAgain(); 
 
     e.preventDefault(); 
 
    }); 
 

 
</script>
@Html.Grid(Model).Columns(columns => 
 
{ 
 
    
 
    columns.Add(foo => foo.Date).Sortable(true).Filterable(true); 
 
    columns.Add(foo => foo.User).Sortable(true).Filterable(true); 
 
    columns.Add(foo => foo.Controller).Sortable(true).Filterable(true); 
 
    columns.Add(foo => foo.Action).Sortable(true).Filterable(true); 
 
    columns.Add(foo => foo.ActionType).Sortable(true).Filterable(true); 
 
    columns.Add(foo => foo.JsonObject).Sortable(true).Filterable(true); 
 
}).WithMultipleFilters() 
 

 
<button type="button" class="btn btn-danger" id="btnExport">export csv</button>