Excel导出
网格使您能够将其内容导出到Excel。
有关可运行示例,请参阅演示Excel导出的网格.
开始
启用网格的Excel导出选项:
- 包括工具栏配置.
- 设置导出选项.
要充分利用Excel导出功能,请下载JSZip库,并在Kendo UI JavaScript文件之前包含该文件
Layout.cshtml
.有关更多信息,请参阅带有需求.@(Html.Kendo(). grid
() . name ("grid") . toolbar (tools => tools. excel ()) . excel (excel => excel . filename ("Products.xlsx") . dataSource (dataSource => dataSource . ajax (). read (read => read)。操作(“Products_Read”,“Home”))))
要启动Excel导出,请按工具栏按钮或使用网格客户端API打电话给saveAsExcel
方法。
浏览器版本(如Internet Explorer 9及更早版本和Safari)需要实现服务器代理。
[HttpPost] public ActionResult Pdf_Export_Save(string contentType, string base64, string fileName) {var fileContents = Convert.FromBase64String(base64);返回文件(fileContents, contentType, fileName);}
输出结果
通过其默认配置,用于ASP的Telerik UI Grid。网络核心exports the current page of the data with sorting, filtering, grouping, and aggregates applied. To export all pages, refer to the section on导出所有数据.
网格使用当前的列顺序、可见性和维度来生成Excel文件。它不导出Excel文件中的当前CSS主题。有关更改Excel文档的视觉外观的详细信息,请参阅关于自定义Excel文档.
导出所有数据
默认情况下,asp.net的Telerik UI Grid。网络核心exports only the current page of data. To export all pages, set theAllPages
选项真正的
.
当
AllPages
选项设置为真正的
,网格生成一个读
请求所有数据。如果数据项太多,浏览器可能会变得无响应。对于这样的场景,实现服务器端导出。
@(Html.Kendo(). grid () . name ("grid") . toolbar (tools => tools. excel ()) . excel (excel => excel . allpages (true)). dataSource (dataSource => dataSource . ajax (). read (read => read)。操作(“Products_Read”,“Home”))))
< excel all-pages="true" />
自定义Excel文档
的ExcelExport ()
事件允许自定义生成的Excel文档。的工作簿
事件参数公开生成的Excel工作簿配置。有关Excel文档如何工作的更多信息,请参阅关于Excel导出在剑道UI的jQuery.
附加一个excel导出处理程序。
@(Html.Kendo(). grid
() . name ("grid") . toolbar (tools => tools. excel ()) . events (e => e. excelExport ("excelExport"))) /*其他配置。* /) 在处理程序中,操作生成的工作簿。该示例交替使用行单元格的背景颜色.
导出从右到左的内容
的ExcelExport ()
事件允许您反转单元格并将文本对齐方式设置为支持从右向左(RTL)语言。要在Excel中以从右向左的流呈现文档,请启用rtl
选项。
每一行都有类型
字段,可用于区分网格中的各种行类型。支持的值为:
“头”
“页脚”
“组合”
“group-footer”
“数据”
设置列模板
面向ASP的Telerik UI网格。. NET Core不使用ClientTemplate
Excel导出过程中。它只导出数据。原因是列模板可能包含无法转换为Excel列值的任意HTML。下面是如何使用不包含HTML的列模板:
附加一个excel导出处理程序。
@(Html.Kendo(). grid
() . name ("grid") . toolbar (tools => tools. excel ()) . events (e => e. excelExport ("excelExport")) . columns (columns => {columns。bind (p => p. orderid).Filterable(false).Width(100);列。绑定(p => p.运费)。ClientTemplate("Freight: #: kendo.format('{0:c}', Freight) #"); }) /* Other configuration. */ ) 在处理程序中,操作生成的工作簿。方法将列模板应用于单元格rows.cells.value.
定义列格式
面向ASP的Telerik UI网格。. NET Core不使用格式
选项,因为某些格式与Excel不兼容。要格式化单元格值,请为jQuery设置Kendo UI格式
单元格的选项。
的关于创建自定义号码格式的页面介绍Excel支持的格式。
附加一个excel导出处理程序。
@(Html.Kendo(). grid
() . name ("grid") . toolbar (tools => tools. excel ()) . events (e => e. excelExport ("excelExport")) . columns (columns => {columns。bind (p => p. orderid).Filterable(false).Width(100);列。绑定(p => p.运费)。ClientTemplate("Freight: #: kendo.format('{0:c}', Freight) #"); }) /* Other configuration. */ ) 在处理程序中,操作生成的工作簿。方法将格式应用于单元格rows.cells.format
服务器端处理
要将大型数据集导出到Excel,请使用RadSpreadStreamProcessing图书馆这是远程文件处理(TDP)的进展.
从导出中排除列
在某些场景中,您可能希望隐藏给定的列或多个列,以免被导出。方法可以实现这一点出口
设置。
列。bind (p => p. productname).Exportable(false);
你也可以设置出口
以详细的方式包括Excel和PDF导出模式的不同值,并为每种模式提供单独的选项:
列。绑定(p => p. productname)。出口(x=> x.Pdf(true).Excel(false));
在某些情况下,您可能希望包含列而不是排除列。您可以定义在View模式中不显示的Grid列,并在导出的文件中显示它们。在本例中,设置.Exportable(真正的)
将不会自动工作,您将需要特别使用.Exportable (x = > x.Pdf (false) .Excel(真));
.
的区别也很重要.Hidden ()
和.Visible ()
属性。.Hidden ()
将通过使用CSS在视觉上隐藏列。.Visible ()
将完全阻止列的呈现。
已知的限制
- 在客户端导出期间,网格及其DataSource仅包含来自当前页面的数据项。因此,要么以块的形式导出,要么禁用分页特性。
- 导出文件的最大大小有系统限制。对于大型数据集,使用服务器端解决方案,它由RadSpreadStreamProcessing作为文档处理库.
- 在旧的浏览器(如Internet Explorer 9和Safari)中,将网格导出到Excel需要实现服务器代理。更多信息请参考的
ProxyURL
配置节. - 网格不使用列
ClientTemplate
在Excel导出过程中,它只导出数据。产生这种行为的原因是列模板可能包含无法转换为Excel列值的任意HTML。有关如何使用不包含HTML的列模板的详细信息,请参阅这个列模板示例. - 网格不导出它的
ClientDetailTemplateId
出于与不导出列模板相同的原因。 - 网格不使用列格式由于一些剑道UI格式与Excel不兼容。若要设置单元格值的格式,请设置单元格
格式
单元格的选项。
有关Excel支持的格式的详细信息,请参阅这个页面.