export-to-excel - 将超过 100000 行导出到 Excel - Infragistics Excel 导出器

标签 export-to-excel infragistics ultrawebgrid

我使用 ultrawebgrid v11.1 和 xml LoadOnDemand 并启用分页来加载超过 100,000 条记录。

我在 InitializeDataSource 事件中编写了 BindGrid() 功能。

在每次回发(保存、ExcelExport、加载..)和/或部分回发(页面导航、排序、过滤..)中,我从数据库中获取超过 100,000 条记录并设置网格的数据源。

问题 1:

每次从数据库查询大量数据都会花费更多时间。有没有办法仅在加载时查询数据一次,然后在修改网格中的数据时查询数据。

问题 2:

我正在使用UltrawebgridExcelExporter v11.1。单击“导出”按钮后,Grid 的数据源将在 InitializeDataSource 内初始化,并从数据库中获取超过 100,000 条记录。

我必须知道,当设置xml LoadOnDemand时,每次导出到excel时,我都应该设置

AllowPaging = False  

and

LoadOndemand = LoadOnDemand.NotSet

然后绑定(bind)网格并导出。

从数据库中获取大量数据需要很长时间,而绑定(bind)数据则需要更长的时间。绑定(bind)后,导出到 Excel 时会抛出“系统内存不足” 异常。

问题 3:

即使解决了上述问题,我也不确定是否能够在 Excel 97-2003 中导出超过 65535 行?

如何使用xml LoadOnDemand优化网格所有操作的性能。

代码:

Protected Sub UWGrid_InitializeDataSource(ByVal sender As Object, ByVal e As Infragistics.WebUI.UltraWebGrid.UltraGridEventArgs) Handles UWGrid.InitializeDataSource

UWGrid.DataSource = dsData 'record set with 100000 rows.

End Sub

Protected Sub btnExportToExcel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExportToExcel.Click

UWGrid.DisplayLayout.Pager.AllowPaging = False

UWGrid.DisplayLayout.LoadOnDemand = LoadOnDemand.NotSet

UWGrid.DataBind()

'Dim wBook As New Excel.Workbook(Excel.WorkbookFormat.Excel2007)

UltraWebGridExcelExporter1.DownloadName = "ExportFile.xls"

UltraWebGridExcelExporter1.Export(UWGrid)

End Sub

最佳答案

回答您的问题 3 - 65535 行不是 Infragistics 限制,而是 Excel 97/2003 格式的限制。解决这个问题的唯一方法是以 Excel 2007+ 格式 (XLSX) 导出

关于export-to-excel - 将超过 100000 行导出到 Excel - Infragistics Excel 导出器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10880753/

相关文章:

c# - 获取 ultragridcolumn 的实际宽度

c# - 什么是最快的 winforms 数据网格?

jquery - Infragistics MVC 助手自定义列

c# - ASP.NET MVC Excel 导出文件格式错误

ruby-on-rails - Rails - 使用 axlsx gem (Keep MVC) 将记录导出到可下载的 excel 文件

C# excel单元格多色文本

javascript - 将 HTML 表格导出到 Excel JavaScript 函数添加选择文件名