Web开发实用技能,看Kendo UI for jQuery如何导出Excel(一)

Kendo UI for jQuery R2 2020 SP1试用版下载

Kendo UI目前最新提供Kendo UI for jQueryKendo UI for AngularKendo UI Support for ReactKendo UI Support for Vue四个控件。Kendo UI for jQuery是创建现代Web应用程序的最完整UI库。

从Kendo UI Q3 2014(2014.3.1119)版本开始,Grid小部件提供内置的Excel导出功能。

入门指南

要启用网格的Excel导出选项:

  1. 引入相应的工具栏命令并设置导出设置。
    • 工具栏配置
    • Excel导出配置
  2. 在页面上包含JSZip脚本。

要通过代码启动Excel导出,请调用saveAsExcel方法。

注意

  • 默认情况下,网格将导出应用了排序、过滤、分组和聚合数据的当前页面。
  • 网格使用当前列顺序、可见性和尺寸来生成Excel文件。
  • 网格不会在Excel文件中导出当前CSS主题。
  • 网格仅导出数据绑定列,所有未设置其字段选项的列将被忽略。
  • 导出期间不使用format选项。
  • 导出期间不使用模板选项。
  • 导出期间不使用detailTemplate选项。

下面的示例演示如何启用Grid的Excel导出功能。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/2.4.0/jszip.min.js"></script>

<div id="grid"></div>
<script>
$("#grid").kendoGrid({
toolbar: ["excel"],
excel: {
fileName: "Kendo UI Grid Export.xlsx"
},
dataSource: {
type: "odata",
transport: {
read: "https://demos.telerik.com/kendo-ui/service/Northwind.svc/Products"
},
pageSize: 7
},
sortable: true,
pageable: true,
columns: [
{ width: 300, field: "ProductName", title: "Product Name" },
{ field: "UnitsOnOrder", title: "Units On Order" },
{ field: "UnitsInStock", title: "Units In Stock" }
]
});
</script>

 

配置

关于其Excel导出,网格使您能够:

  • 将其所有页面导出到Excel
  • 自定义导出的文件
  • 导出RTL内容
  • 导出多个网格
  • 将文件保存在服务器上

导出所有页面

默认情况下,网格仅导出当前数据页面。 要导出所有页面,请将allPages选项设置为true。

注意:当allPages选项设置为true并启用serverPaging时,网格将对所有数据发出“读取”请求。 如果数据项太多,浏览器可能会无响应。 在这种情况下,请使用服务器端导出。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/2.4.0/jszip.min.js"></script>

<div id="grid"></div>
<script>
$("#grid").kendoGrid({
toolbar: ["excel"],
excel: {
allPages: true
},
dataSource: {
type: "odata",
transport: {
read: "https://demos.telerik.com/kendo-ui/service/Northwind.svc/Products"
},
pageSize: 7
},
pageable: true,
columns: [
{ width: 300, field: "ProductName", title: "Product Name" },
{ field: "UnitsOnOrder", title: "Units On Order" },
{ field: "UnitsInStock", title: "Units In Stock" }
]
});
</script>

 

自定义导出的文件

要自定义生成的Excel文件,请使用excelExport事件,workbook事件参数公开生成的Excel工作簿配置。


了解最新Kendo UI最新资讯,请关注Telerik中文网!

慧都高端UI界面开发

Kendo UI框架提供了强大的Excel导出功能,通过Grid的saveAsExcel能方便地导出Grid中的数据,而且格式美观大方,使用起来也非常方便。但是在实际使用中不是很理想,主要有以下两个问题: 1. 导出的列数据是原始值 Kendo UI默认导出的是该列的value值,及查出来的值,有时候我们会用template渲染一下导出的列,比如将“Y”显示成“是”,把“N”显示成“否”。而Kendo UI导出的却是Y/N这种只有程序员看得懂的数据库标识,显然不是我们需要的,这种情况非常常见。 2. 不能灵活控制可导出的列 Kendo UIExcel导出主要看两点,一是该列(column)是field字段,而不是自定义的name;二是该列不是隐藏的(hidden:true)。这样我们无法灵活导出我们需要的列。 为了解决上面两个问题,我查看了Kendo UI的源代码,提取并改进了源代码。主要更改点及使用方法请看下面源代码。主要针对以上两点做了更改,只需要在grid定义columns时加上isExport或exportTemplate即可: 在导出数据,先看该列有没有自定义exportTemplate(),没有则看Kendo UI自带的template(),再没有才会导出查出来的值。 判断是否导出该列不再看hidden属性,而是看列的isExport属性,如果为false则不导出,其它情况一律导出该列。 经过这两个更改,基本可以应对所有业务场景,可以方便快捷地开发了! 但要注意,Kendo UI自带的导出功能无法应用于导出大量数据,似乎是浏览器的jvm溢出了,建议超过5万条的数据导出还是老老实实写后台导出功能吧。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值