【问题标题】:Export Kendogrid data to excel in a generic way以通用方式将 Kendogrid 数据导出到 excel
【发布时间】:2014-03-18 23:43:44
【问题描述】:

我已经配置了剑道网格并配置了所有的表格行和标题。 当我单击导出按钮时,它正在生成一个 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/

谢谢。

【问题讨论】:

  • 你的意思是列名和数据应该以通用方式导出???
  • 是的。就算这样也好。但这在 IE 中不起作用。所以我正在寻找替代方案。
  • 我看到一些链接告诉我 saveblob 适用于 Ie10+ stuk.github.io/jszip/examples/download-zip-file.html
  • 能否请您更新小提琴并检查它是否在 IE 中有效。
  • 我正在尝试,但您的代码在 ie 10 及以下版本中无法使用

标签: kendo-ui kendo-grid


【解决方案1】:

您是否尝试过进行服务器端导出?这肯定会起作用,并且还为您提供了执行完整导出而不是导出网格当前页面数据的规定。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多