繁体   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