【问题标题】:Kendo grid export to excel剑道网格导出到excel
【发布时间】:2015-02-12 11:57:44
【问题描述】:

我有一个要导出到 Excel 工作表的 Kendo 网格。我编写了生成代码但无法下载 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,";

        //start with the desired column headers here
        var result = '';
        result = "data:application/vnd.ms-excel,";
        result += "<table><tr><th>ID</th><th>Display Name</th></tr>";
        //each column will need to be called using the field name in the data source
        for (var i = 0; i < data.length; i++) {
            result += "<tr>";
            result += "<td>" + data[i].StudentID + "</td>";
            result += "<td>" + data[i].DisplayName + "</td>";
            result += "<td>" + data[i].BirthAddress + "</td>";
            result += "<td>" + data[i].Email1 + "</td>";
            result += "<td>" + data[i].isActive + "</td>";
            result += "</tr>";
        }

        result += "</table>";
        alert(result);
        if (window.navigator.msSaveBlob) {
            //Internet Explorer
            window.navigator.msSaveBlob(new Blob([result]), 'export.xls');
        }

        else if (window.webkitURL != null) {
            //Google Chrome and Mozilla Firefox
            var a = document.createElement('a');
            alert(a);
            a.href = result;
            a.download = 'export.xls';
            result = encodeURIComponent(result);
            a.href = 'data:application/xls;charset=UTF-8,' + result;
            a.download = 'export.xls';
            a.click();
        }
        else {
            //Everything Else
            window.open(result);
        }
        e.preventDefault();

【问题讨论】:

  • 您是否收到错误?哪个版本的剑道?
  • 我可以 alert() 结果,但无法将其导出到 excel。我认为有一种错误。
  • 我正在为 ASP.NET MVC 使用 Kendo 2014。

标签: asp.net-mvc kendo-grid kendo-asp.net-mvc


【解决方案1】:

我已经解决了大部分问题,现在我可以使用下面的代码在 Firefox 中生成 excel 文件。

if (navigator.appName == 'Microsoft Internet Explorer') {
          window.navigator.msSaveBlob(new Blob([result]), 'exporteddata' + postfix + 'export.xls');

        }
        else if (window.webkitURL != null)
        {
            // Chrome allows the link to be clicked programmatically.
            var a = document.createElement('a');
            var table_div = (document.getElementById('grid').getElementsByTagName('tbody')[0]);
            var table_html = table_div.innerHTML.replace();
            a.href = result;
            result = encodeURIComponent(result);
            a.href = 'data:application/xls;charset=UTF-8,' + result;
            a.download = 'exporteddata' + postfix + 'export.xls';
            a.click();
        }

但我仍然无法使用 IE 生成 Excel。

【讨论】:

  • 生成了一个空文件 - 一些垃圾。
猜你喜欢
  • 2017-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多