【问题标题】:How to export a csv without header in SSRS如何在 SSRS 中导出没有标题的 csv
【发布时间】:2012-07-17 22:44:34
【问题描述】:

有没有办法在只有一个 SSRS 报告上关闭 CSV 导出的标题?

我正在使用 Report Builder 3 并从报告中删除了标题,但在导出为 CSV 时它们又回来了。我找不到任何地方可以关闭它们。

我见过this question,但它似乎涵盖了服务器上的所有报告,我只需要关闭几个标题。

【问题讨论】:

  • 是直接从报表生成器导出还是先部署报表服务器再导出?如果来自 Report Builder,答案是否定的。如果你可以部署到报表服务器,也许吧。
  • 使用服务器上的数据驱动订阅导出。但我无法从服务器或直接在报表生成器中删除标题。

标签: sql reporting-services


【解决方案1】:

无论您如何实现(自定义程序集、自定义渲染扩展),您都需要修改服务器上的一些配置文件,除非您通过 URL 发送 deviceinfo 参数,或者以编程方式从外部应用程序渲染报告.

更简单的方法是在服务器范围内使用,您无需理会当前的 CSV 扩展,而且很容易实现。对你(和我)来说幸运的是,这几乎不需要任何代码就可以完成。

由于这是 CSV 扩展的 deviceinfo 参数之一,您只需将以下代码行添加到 RSReportServer.config 文件中。您正在使用当前的 CSV 文件在此处添加另一个扩展程序。

<Extension Name="CSV (No Header)" Type="Microsoft.ReportingServices.Rendering.DataRenderer.CsvReport,Microsoft.ReportingServices.DataRendering">
    <OverrideNames>
       <Name Language="en-us"> CSV No Header</Name>
    </OverrideNames>
    <Configuration>
       <DeviceInfo>
          <NoHeader>true</NoHeader>
       </DeviceInfo>
    </Configuration>
</Extension>

将其放置在已经存在的 CSV 扩展代码行下方的行中,或 Render 元素内的任何位置。

这将允许您使用该新扩展程序订阅报告或使用下拉菜单导出报告,因为 sql server 报告服务在填充下拉菜单时会查询该 xml 文件。

如果您确实使用按钮并实例化 Reportexecutionservice,则无论如何您都必须触摸配置文件才能使用 .dll。

【讨论】:

    【解决方案2】:

    您无法对开箱即用的数据驱动订阅进行任何操作。可能可以编写一个自定义订阅扩展来做到这一点。对于直接从报表生成器导出,您也无法做任何事情,除非您做了一些聪明的事情,例如添加一个看起来像按钮的独立文本框,然后将一个操作与其关联,该操作创建一个 URL 供您使用 URL Access 打开/呈现报表。你可以在这里看到一些信息:http://msdn.microsoft.com/en-us/library/ms155046.aspx

    通过 URL 访问,您可以传递 CSV 设备信息,在您的情况下,NoHeader=true 根据http://msdn.microsoft.com/en-us/library/ms155365.aspx

    【讨论】:

    • 是的,看来没办法了。
    【解决方案3】:

    添加这个:

    <Extension Name="CSV (No Header)" Type="Microsoft.ReportingServices.Rendering.DataRenderer.CsvReport,Microsoft.ReportingServices.DataRendering">
    <OverrideNames>
       <Name Language="en-us"> CSV No Header</Name>
    </OverrideNames>
    <Configuration>
       <DeviceInfo>
          <NoHeader>true</NoHeader>
       </DeviceInfo>
    </Configuration>
    </Extension>
    

    到这里的配置文件:C:\Program Files\Microsoft SQL Server{INSTANCE}\Reporting Services\ReportServer\rsreportserver.config(在该部分)

    将在导出选项的下拉列表中创建另一个选项,但仍将使用 CSV 格式 (Microsoft.ReportingServices.DataRenderer),因此用户仍然可以为每个报告选择他们想要的格式。

    【讨论】:

    • 谢谢!我更正了 XML Extension 标记中的一个小但导致崩溃的错误,但除此之外它运行良好。
    • 很高兴为您提供帮助,我应该补充一点,在添加此内容后,我必须在 SSRS 服务注意到配置更改之前手动回收它。
    【解决方案4】:

    对于那些寻找仅使用 URL 访问的导出选项的人,如 @Stacia 所建议的,您可以请求使用无标题选项的 CSV 导出,只需在您的请求中包含以下内容:rc:NoHeader (命名空间是 rc: 不是 rs:)

    示例网址:http://localhost/ReportServer/?ReportName&rs:Command=Render&rs:Format=CSV&rc:NoHeader=true

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-30
      • 2011-02-07
      • 2018-02-03
      • 2023-03-05
      • 1970-01-01
      • 2018-03-03
      • 2014-02-18
      • 2020-01-01
      相关资源
      最近更新 更多