2017-05-19 42 views
0

我有剑道网格footerTemplate。我已经成功地将这个网格导出为ex​​cel。但是,导出的excel footerTemplate显示html字符串。当输出Kendo网格footerTemplate显示html字符串?

样品网格列:

  { 
       field: "January", 
       title: "January", 
       aggregates: ["sum"], 
       filterable: false, 
       resourcename: "january", 
       type: "currency", 
       footerTemplate: function (data) { 
        return "<div style='white-space:initial;float:right'>" + kendo.toString(data.January.sum, "n0") + "</div>"; 
       } 
      } 

图片:enter image description here

问: 如何解决这个HTML字符串问题?

谢谢.......

回答

1

确保您dataSource包含你希望得到的列sumaggregate功能sum的:

dataSource: { 
    data: [ 
    { item: "AB", january: 12.24 }, 
    { item: "CD", january: 22.23 } 
    ], 
    aggregate: [ 
    { field: "january", aggregate: "sum" }   
    ] 
} 

你希望列然后宣布你footerTemplate以显示值:

columns: [ 
    { field: "item" }, 
    { field: "january", 
    type: "currency", 
    footerTemplate: "Sum: #: sum #" 
    } 
] 

完整的Dojo工作示例here

编辑 - 在footerTemplate

电网右对齐内容:

footerTemplate: "<div style='text-align: right'>Sum: #: sum #</div>"

Excel导出 - 包括在你的网格定义如下excelExport功能:

excelExport: function(e) { 
    var rows = e.workbook.sheets[0].rows; 

    for (var ri = 0; ri < rows.length; ri++) { 
     var row = rows[ri]; 

     if (row.type == "group-footer" || row.type == "footer") { 
     for (var ci = 0; ci < row.cells.length; ci++) { 
      var cell = row.cells[ci]; 
      if (cell.value) {     
      cell.value = $(cell.value).text(); 
      // Set the alignment 
      cell.hAlign = "right"; 
      } 
     } 
     } 
    } 
    } 

hAlign is th e属性设置为对齐文本,但如果使用Kendo版本2015.3/newer,则此属性已被弃用,因此请改为使用textAlign

我也更新了Dojo example以反映这些变化。

+0

是的。如何在excel中对齐footerTemplate? – JiLaBaJi

+0

我已经更新了答案:) – Sandman

+0

非常感谢.... – JiLaBaJi