【问题标题】:SSIS - SSRS Rendering Clash Between EXCEL and EXCELOPENXMLSSIS - SSRS 渲染 EXCEL 和 EXCELOPENXML 之间的冲突
【发布时间】:2017-02-28 13:31:12
【问题描述】:

我正在尝试将 SSRS 仪表板 (ssrs 2016) 呈现到 Excel (2010)。

我的仪表板有 4 个参数

StartDate, EndDate, Company, NumberOfJobs.

使用渲染到 xlsx (EXCELOPENXML) 时,StartDate、Company 和 NumberOfJobs 都将完美渲染。在我的 SSIS VB 脚本中使用 EXCEL 作为格式时,它们不会呈现。

EndDate 不会使用 EXCELOPENXML 呈现,但在使用呈现到 xls (Excel) 时很好。

如果在 IE 中输入,报告的 URL 将愉快地将所有 4 个呈现为 xlsx,提供打开 Excel 或保存到文件的选项。但是,当它使用 SSIS 运行时,它会生成一个 0kb 的文件并给出错误消息

excel无法打开文件,因为扩展名无效。

我注意到 EndDate 也会中断对 PDF 的呈现。

有什么想法可以在运行 VB 脚本时合并渲染?

非常感谢, 斯蒂芬

【问题讨论】:

  • 我不清楚你说参数不会呈现是什么意思。您的仪表板是否有 4 个不同的报告?你有任何截图来展示你所看到的吗?
  • 你好 Wesley,我发现如果我删除 &rs:Command=render 部分,报告将实际运行。这只是一份包含 4 个输入参数的报告。但是,它完全忽略了 EndDate 参数(这是导致呈现问题的参数)。您可以完美地从 SSRS 运行报告,但是,使用 SSIS 和固定 URL 时的结果要么不起作用,要么创建不正确的结果。这是 URL 的示例。 url = "svr-xxx/ReportServer?/Dasboard&StartDate=1/1/…"
  • 我发现您提供的 URL 有几处可能有问题。 1.前面没有协议。 2. 仪表板拼写错误(这与您的报告名称匹配吗?) 3. IIRC,日期应传递为 MM/DD/YYYY,而您的结束日期不是。 4. 你以双引号 (%22) 结尾,但我没有看到开头引号。
  • 感谢 Wesley,我一直在更改代码以隐藏任何敏感信息。基本上,我遇到的问题是,如果我将所有参数硬编码到 URL 中,我可以 ctrl+单击地址,它会打开一个完美的 Excel 文档。但是,当我尝试在 SSIS 中使用相同的 URL 时,Excel 文档无法正确创建。问题出在 endDate 上,它会破坏 Excel 文档。如问题中所述,如果文件保存为 xls 和 rs:Format=Excel,则 endDate 似乎可以正常工作。但是,其他 3 个参数要求 URL 具有 xlsx & rs:Format=EXCELOPENXML
  • 您是否尝试按照我之前评论中的建议 3 将您传递的结束日期从 DD/MM/YYYY 重新格式化为 MM/DD/YYYY?

标签: excel vb.net reporting-services ssis ssrs-2016


【解决方案1】:

非常感谢韦斯利的帮助。日期应作为 MM/DD/YYYY 传递。来自英国,我使用的是 DD/MM/YYYY 格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 2012-06-27
    相关资源
    最近更新 更多