【问题标题】:Sharepoint Integrated SSRS report excel export failsSharepoint 集成 SSRS 报告 Excel 导出失败
【发布时间】:2017-02-12 12:21:30
【问题描述】:

当尝试将报告导出到 Excel 时,网站加载了一段时间,我收到“无法显示此页面。请确保网址正确”错误。

以下是一些平台详情:

  • 带有 SP2 的 SQL Server 2012
  • Sharepoint 2013
  • 具有 Sharepoint 集成模式的 SS Reporting Services
  • Windows Server 2012 R2

报表本身有 4-5 个参数,调用一些视图和一个过程,并显示 120K 行,最多 30 列。在 SSMS 中,整个没有过滤的报告可以在大约 7 秒内执行。 SP网站可以很好的显示rdl的结果,report显示的很好也够快。我还可以将结果导出到 csv、xml 以及它的所有 120K 行。但是导出到excel的时候就卡住了。

现在这很有趣。

当使用某些参数或日期过滤调用时,报告出来的效果很好,很容易,并且可以毫不延迟地导出到 Excel。我已经测试了越来越多的行,并且 excel 导出可以正常工作到大约 50K 行。导出的 xlsx 文件大约 9MB。但是当我增加日期范围时,excel 导出超时。

现在谈谈我尝试过的事情。

导出到其他格式工作正常。只是 EXCELOPENXML 不起作用。

增加ProcessTimeoutProcessTimeoutGcExtension的值,甚至在rsreportserver.config中添加DatabaseQueryTimeout 没有帮助。

增加 web.configexecutionTimeoutmaxRequestLength 键的值也没有效果。 p>

我在配置更改后重新启动了报告服务器服务。

我怀疑 SQL 2012 中的 10MB excel 导出错误,但应该使用此系统中应用的 SP2 解决。

同样相关,在显示错误消息前几分钟,网站要求重新登录到 sharepoint 站点。这发生在点击 excel 导出几分钟后。在进行任何 IIS 配置更改之前,我想确保一切都是 sql 端的内容。

有什么想法吗?

【问题讨论】:

    标签: sql-server sharepoint reporting-services ssrs-2012 rdl


    【解决方案1】:

    经过几天的反复试验,我找到了这个问题的原因。

    问题出在具有“转到 URL”的操作属性的列中,并且 url 由字符串连接表达式设置,从报告字段中获取 4 个参数。显然,SSRS 在导出到 excel 时会重新处理所有数百 K 的数据。 csv 和 xml 格式能够处理相同的报告,但 excel 抛出超时的原因对我来说仍然是一个谜。我只能推测,excel 渲染器需要更多的处理时间来格式化单元格。

    解决问题的另一种方法可能是启用报表快照,因此报表数据将从缓存中消耗,但我不确定 excel 导出是否仍会重新处理报表。

    我通过添加具有相同数据的另一列解决了该问题,但将以下表达式添加到列可见性属性:

    =(Globals!RenderFormat.Name="EXCELOPENXML")

    所以现在,带参数的字符串操作在web视图中成功处理形成URL格式,但在excel渲染器中没有处理。

    希望这对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多