2017-05-19 76 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