面向ASP的Telerik UI。网络核心免费下载30天试用版

Excel导出

网格使您能够将其内容导出到Excel。

有关可运行示例,请参阅演示Excel导出的网格

开始

启用网格的Excel导出选项:

  1. 包括工具栏配置
  2. 设置导出选项
  3. 要充分利用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 file-name="Products.xlsx" /> < DataSourceTagHelperType ="DataSourceTagHelperType. "Ajax">     

要启动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文档

  • Grid只导出数据绑定列。模板列和命令列将被忽略。
  • 格式选项在导出过程中不使用。有关更多信息,请参阅关于一节定义列格式
  • ClientTemplate选项在导出过程中不使用。有关更多信息,请参阅设置列模板

导出所有数据

默认情况下,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

  1. 附加一个excel导出处理程序。

    @(Html.Kendo(). grid () . name ("grid") . toolbar (tools => tools. excel ()) . events (e => e. excelExport ("excelExport"))) /*其他配置。* /)
  2. 在处理程序中,操作生成的工作簿。该示例交替使用行单元格的背景颜色

导出从右到左的内容

ExcelExport ()事件允许您反转单元格并将文本对齐方式设置为支持从右向左(RTL)语言。要在Excel中以从右向左的流呈现文档,请启用rtl选项。

每一行都有类型字段,可用于区分网格中的各种行类型。支持的值为:

  • “头”
  • “页脚”
  • “组合”
  • “group-footer”
  • “数据”

设置列模板

面向ASP的Telerik UI网格。. NET Core不使用ClientTemplateExcel导出过程中。它只导出数据。原因是列模板可能包含无法转换为Excel列值的任意HTML。下面是如何使用不包含HTML的列模板:

  1. 附加一个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. */ )
  2. 在处理程序中,操作生成的工作簿。方法将列模板应用于单元格rows.cells.value

定义列格式

面向ASP的Telerik UI网格。. NET Core不使用格式选项,因为某些格式与Excel不兼容。要格式化单元格值,请为jQuery设置Kendo UI格式单元格的选项。

关于创建自定义号码格式的页面介绍Excel支持的格式。

  1. 附加一个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. */ )
  2. 在处理程序中,操作生成的工作簿。方法将格式应用于单元格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支持的格式的详细信息,请参阅这个页面

另请参阅

在本文中
Baidu
map