2

I am using a ReportViewer control to export the report data to Excel. Everything works fine except when I try to export data that has more than ~65,000 rows it throws an exception.

Is there any work-around I can use to possibly render the report in multiple sheets? Thanks!

4

2 回答 2

2

为了克服限制错误,RDLC 提供了将页面分成多个工作表的选项。

在此处输入图像描述

例子

使用显示超过 66000 条记录的 Adventure Works 数据库,使用 Report Viewer 10.0 创建示例 RDLC 报表。

通过应用以下 RDLC 报告中提到的步骤,可以轻松地将大数据导出到多个工作表中。

步骤1

打开 RDLC 并选择表的数据行。右键单击它,选择添加组,然后选择父组。

第2步

在这一步中,您应该得到一个 Tablix 组窗口。在 Group by Text 框中输入下面提到的函数,然后单击 OK。

=Int((RowNumber(Nothing))/65520)

第 3 步

在下一步中,在 RDLC 报告的底部,您将找到“行组”窗格。在这里,右键单击组名称并选择组属性。

  1. 您将获得一个组属性窗口。我们可以在这里给一个合适的组名。

  2. 在左侧窗格的分页符中选中“组的每个实例之间”选项。

  3. 接下来,在排序部分中,删除排序依据函数。

如果您在执行上述步骤后观察报告,它会添加 Group1 列,如下所示。选择添加删除列。

现在,保存并运行报告并导出为 Excel 格式。如果一切正常,数据应显示在多个工作表中。

如果我们在表 2 中观察,则不会显示报告标题。为了显示标题,添加下面提到的代码。

在 XML 编辑器中打开 RDLC 报告。在 TablixMembers 节点的第一个 TablixMember 节点处添加节点,如下所述。

<KeepWithGroup>After</KeepWithGroup> <RepeatOnNewPage>true</RepeatOnNewPage>

保存、重新运行报告并导出到 Excel。您可以通过所有工作表中的标题观察多张工作表中的数据。

于 2019-08-08T07:19:23.640 回答
1

Excel 2005 及更早版本仅支持每张工作表 65536 行。

Excel 2007 和 2010 支持每张 1048576 行

也就是说,ReportViewer 导出到 Excel 的限制可能只有 65536。以CSV格式导出可以绕过这个限制。

于 2013-09-05T05:49:46.257 回答