簡體   English   中英

KendoUI 導出到 excel,表格上方的行為 header

[英]KendoUI export to excel with row above table header

導出到 excel 時,如何在表格數據上方添加一個常規的 excel 行? 有一個“從”和“到”過濾器選項,但這似乎只影響列索引。

filter: { from: 1, to: 2 }

將其從 integer 更改為字符串會導致損壞的 excel 文件:

filter: { from: "A2", to: "B2" }

文檔似乎沒有提及過濾器的任何其他屬性。

我嘗試將sheets.rows.type選項從data更改為header但這似乎沒有任何作用。

示例導出:

var workbook = new kendo.ooxml.Workbook({
  sheets: [
      {
          filter: { from: 1, to: 2 },
          rows: [
            // row above table
            { cells: [ { value: "pre table header", "colSpan": 4 } ] },

            // table: header
            { cells: [ { value: "First Name" }, { value: "Last Name" } ] },
            // table: data
            { cells: [ { value: "John" }, { value: "Doe" } ] },
            { cells: [ { value: "Jane" }, { value: "Doe" } ] }
          ]
      }
  ]
});
kendo.saveAs({
  dataURI: workbook.toDataURL(),
  fileName: "Test.xlsx"
});

https://dojo.telerik.com/emUzuPeq

我想要實現的目標:

excel截圖

上面的代碼做了什么:

excel截圖

我在劍道網格源中發現了一個未記錄的功能。 如果可用,它將在過濾器上使用一個名為“ref”的屬性。 這似乎也需要將fromto屬性更改為 excel 文件中的字符串地址。 不確定這有多穩定,但這適用於最新版本的 kendoui。

filter: { ref: "A2:B2", from: "A2", to: "B2" },

在此處輸入圖像描述

在 excel 導出的事件處理程序中實現,它看起來像

var intFrom = sheet["filter"]["from"];
var intTo = sheet["filter"]["to"];

// kendo uses zero based index for column, but need column 1 to be "A"
var colFrom = excelGetCharFromNumber(intFrom + 1);
var colTo = excelGetCharFromNumber(intTo + 1);

// "2" row is hardcoded here
sheet["filter"] = {
    // redefine "from" and "to"
    "ref": "" + colFrom + "2:" + colTo + "2",
    "from": "" + colFrom + "2",
    "to": "" + colTo + "2"
};

這個答案在哪里excelGetCharFromNumber

function excelGetCharFromNumber(columnNumber){
    var dividend = columnNumber;
    var columnName = "";
    var modulo;

    while (dividend > 0)
    {
        modulo = (dividend - 1) % 26;
        columnName = String.fromCharCode(65 + modulo).toString() + columnName;
        dividend = parseInt((dividend - modulo) / 26);
    } 
    return  columnName;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM