Kendo网格导出到excel标题标题显示html字符

时间:2016-02-10 13:44:52

标签: angularjs excel kendo-ui kendo-grid

当我将网格导出到Excel时,标题如下:产品名称,excel中的{{'unitsOrder'| translate}}。我的网格支持2种语言,我用angularjs翻译方式显示它。任何报价?

 <script>
    $("#grid").kendoGrid({
        toolbar: ["excel"],
        excel: {
            fileName: "Kendo UI Grid Export.xlsx"
        },
        dataSource: {
            type: "odata",
            transport: {
                read: "http://demos.telerik.com/kendo-ui/service/Northwind.svc/Products"
            },
            pageSize: 7
        },
        sortable: true,
        pageable: true,
        columns: [
            { width: 300, field: "ProductName", title: "<b>Product Name</b>" },
            { field: "UnitsOnOrder", title: "{{'unitsOrder'| translate}}" },
            { field: "UnitsInStock", title: "Units In Stock" }
        ]
    });
</script>

1 个答案:

答案 0 :(得分:0)

我有一个类似的问题,但我使用i18next翻译而不是角度,但也许它可以帮助你找到你的案例的解决方案:

我使用&#39; excelExport&#39;手动更新生成的工作表的事件。在工作表对象中,我搜索标题单元格并手动触发其包含的文本的翻译:

 excelExport: function(e) {

        // First I loop through all rows in the worksheet
        e.workbook.sheets[0].rows.forEach(function(row){

          // Ignore 'data' rows (only use 'header' and 'footer')
          if(row.type != 'data'){

            // Loop through all cells of the row
            row.cells.forEach(function(cell){

              // Here I overwrite the cell value with its translation
              // You have to implement translate() so it works with angular
              cell.value = translate(cell.value)
            });
          }
        });
      },

您现在必须编写自己的翻译功能,可以处理您的角度转换。当我使用i18next进行翻译时,我的解决方案在这里没有帮助(我使用jquery生成一个jquery html对象,我可以在其上触发翻译)