[英]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
我想要實現的目標:
上面的代碼做了什么:
我在劍道網格源中發現了一個未記錄的功能。 如果可用,它將在過濾器上使用一個名為“ref”的屬性。 這似乎也需要將from
和to
屬性更改為 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.