以通用方式将Kendogrid数据导出为ex​​cel

时间:2014-03-18 23:43:45

标签: kendo-ui kendo-grid

我已配置了kendo网格并配置了所有表格行和标题。 当我单击导出按钮时,它正在生成一个excel文件。但它通过在另一个URL中打开数据显示数据格式:application / vnd.ms-excel,OrderIDFreight ....... 我不需要提及列名称,并喜欢这个导出。 单击按钮将网格数据导出到Excel

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>";
 if (window.navigator.msSaveBlob) {
    window.navigator.msSaveBlob(new Blob([result]),'export.xls');
 } else {
    window.open(result);
  }


 e.preventDefault(); 
 });

它应该是通用的。

http://jsfiddle.net/SZBrt/100/

感谢。

1 个答案:

答案 0 :(得分:0)

您是否尝试过进行服务器端导出?这肯定会有效。还为您提供了执行完全导出而不是导出网格当前页面数据的规定。

在Kendo Code库中,他们已经有一个项目可以帮助您这样做。请参阅链接http://www.telerik.com/support/code-library/export-grid-to-excel-8d91dd145501了解更多详情。