如何使用jQuery移除Kendo Grid导出Excel的默认表头
解决Kendo Grid导出Excel时表头显示属性名的问题
你当前代码是在原始表头前插入了自定义表头,导致导出的Excel会出现两行表头。要替换原始属性名表头,只需操作sheet.rows数组修改默认生成的表头行即可,具体有两种实现方式:
方法一:删除原始表头后插入自定义表头
先移除sheet.rows数组里的默认属性名表头(默认是数组第一个元素),再插入自定义表头:
var sheet = e.workbook.sheets[0]; sheet.name = "My Sheet"; var myHeaders = [{ value: "Header 1", textAlign: "left", background: "#60b5ff", color: "#ffffff" }, { value: "Header 2", textAlign: "left", background: "#60b5ff", color: "#ffffff" }, { value: "Header 3", textAlign: "left", background: "#60b5ff", color: "#ffffff" }]; // 删除原始属性名表头行 sheet.rows.splice(0, 1); // 插入自定义表头行 sheet.rows.splice(0, 0, { cells: myHeaders, type: "header" });
方法二:直接替换原始表头行
更简洁的方式是直接覆盖sheet.rows数组的第一个元素,省去删除步骤:
var sheet = e.workbook.sheets[0]; sheet.name = "My Sheet"; var myHeaders = [{ value: "Header 1", textAlign: "left", background: "#60b5ff", color: "#ffffff" }, { value: "Header 2", textAlign: "left", background: "#60b5ff", color: "#ffffff" }, { value: "Header 3", textAlign: "left", background: "#60b5ff", color: "#ffffff" }]; // 直接用自定义表头替换原始属性名表头行 sheet.rows[0] = { cells: myHeaders, type: "header" };
原理说明:Kendo Grid导出Excel时,默认会将数据属性名作为第一行表头存入sheet.rows数组的首位。通过修改这个数组的对应元素,就能实现替换表头的效果,不需要额外的API来删除工作表行。
内容的提问来源于stack exchange,提问作者John Butler
相关产品推荐
相关产品推荐

