2013-03-26 39 views
2

我在我的應用程序中有劍道網格和導出按鈕。導出網格數據工作正常,但這裏有一些行重複,它們顯示在文件的末尾。我給出了導出文件的自定義名稱。任何人都可以告訴我我的代碼有什麼問題。請? 這裏是出口按鈕,單擊代碼在我的(劍道網格)導出的數據文件中的重複字段

 $("#btnExport").click(function(e) { 
    var dataSource= $("#grid").data("kendoGrid").dataSource; 
    var filteredDataSource = new kendo.data.DataSource({ 
    data: dataSource.data(), 
    filter: dataSource.filter() 
}); 
filteredDataSource.read(); 
var data = filteredDataSource.view(); 

    var result = "data:application/vnd.ms-excel,"; 

result += "<table><tr><th>OrderID</th><th>Freight</th><th>Order Date</th><th>Ship Name</th><th>Ship City</th></tr>"; 

for (var i = 0; i < data.length; i++) { 
    result += "<tr>"; 

    result += "<td>"; 
    result += data[i].OrderID; 
    result += "</td>"; 

    result += "<td>"; 
    result += data[i].Freight; 
    result += "</td>"; 

    result += "<td>"; 
    result += kendo.format("{0:MM/dd/yyyy}", data[i].OrderDate); 
    result += "</td>"; 

    result += "<td>"; 
    result += data[i].ShipName; 
    result += "</td>"; 

    result += "<td>"; 
    result += data[i].ShipCity; 
    result += "</td>"; 

    result += "</tr>"; 
} 

result += "</table>"; 
var dt = new Date(); 
    var day = dt.getDate(); 
    var month = dt.getMonth() + 1; 
    var year = dt.getFullYear(); 
    var hour = dt.getHours(); 
    var mins = dt.getMinutes(); 
    var postfix = day + "." + month + "." + year + " " + hour + ":" + mins; 
    var a = document.createElement('a'); 
    var table_div = (document.getElementById('grid').getElementsByTagName('tbody')[0]); 
var table_html = table_div.outerHTML.replace(); 
a.href = result + ',' + table_html; 
     a.download = '[email protected]' +postfix+ '.xls'; 
    a.click(); 
e.preventDefault(); 
                }); 

這裏是小提琴http://jsfiddle.net/SZBrt/35/

+0

我已經試過你的代碼在小提琴上,但它沒有爲我導出任何文件。然後我嘗試了我的本地系統,它在addign $後工作的(a).appendTo( '主體');但是我收到的excel文件沒有任何重複的行,但它包含了一些不可讀的行。是你的問題嗎? – Gerry 2013-03-26 05:50:04

+0

亞正是這是我的問題 – user2049357 2013-03-26 06:05:39

+0

a.href = result +','+ table_html;但是,當我從a.href中刪除table_html時,這已經解決了。試試這個:「** a.href = result; **」而不是** a.href = result +','+ table_html; ** – Gerry 2013-03-26 06:28:50

回答

4

修改這個對小提琴代碼:

for (var i = 0; i < data.length-1; i++) 
    { 
     //your code 
    } 

for (var i = 0; i < data.length; i++) 
    { 
     //your code 
    }