代码之家  ›  专栏  ›  技术社区  ›  Adam

ssrs 2005是否在报表上而不是服务器上设置simplepageheaders?

  •  8
  • Adam  · 技术社区  · 16 年前

    我有一个报告没有从SSR2005导出到Excel友好型。我知道我可以用

    
    <Render>
        <Extension Name="EXCEL" Type="Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer,Microsoft.ReportingServices.ExcelRendering">
            <Configuration>
                <DeviceInfo>
                    <SimplePageHeaders>True</SimplePageHeaders>
                </DeviceInfo>
            </Configuration>
        </Extension>
    </Render>
    

    在rsreportserver.config中,但我不是这台机器上唯一有报告的人。我还发现你可以通过

    &rc:SimplePageHeaders=True
    在URL中以编程方式导出报告。

    我试图添加 &rc:simplePageHeaders=true 导航到报表管理器时指向URL结尾,但当我从下拉列表中选择Excel并单击“导出”时,标题仍将被导出。我甚至尝试设置 rc:Command=Render 和 rc:Format=EXCEL 也没有任何运气。

    有没有办法做我想做的事?

    注意:我希望在内置报表管理器上呈现报表,并使用内置导出到Excel下拉列表,而不是在应用程序或网站中。

    1 回复  |  直到 16 年前
        1
  •  27
  •   Chris Latta    16 年前

    您要做的不是覆盖现有的Excel渲染器,而是提供另一个渲染器,该渲染器将除去标题并将其包含在“导出”菜单可用的渲染器列表中。您几乎有了解决方案——您不需要修改当前的Excel渲染器,而是想提供另一个。这里有几个技巧:

    • 必须为该呈现器指定一个不同于当前Excel呈现器的名称 Name="EXCEL" 在我的系统上,否则您只能看到一个Excel渲染器
    • 渲染器的显示名称将不是您在上面调用它的名称,而是 Excel 因为这是渲染器提供的显示名称,所以您将看到两个名为Excel的选项,并且不知道哪个选项没有页头。
    • 因此,必须重写名称
    • 覆盖名称时,必须指定要覆盖该名称的语言。您设置的语言值必须对报表服务器计算机有效。例如,如果报表服务器在法国操作系统上运行,则应指定 "fr-FR" 作为属性值。我在用 "en-AU" 因为我是澳大利亚人,你会用 "en-US" 如果你在美国。

    因此, 在下面 中的当前Excel呈现器(不替换现有呈现器) <Render> rsreportserver.config的节,您将插入如下内容:

    <Extension Name="EXCEL (No Header)" Type="Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer,Microsoft.ReportingServices.ExcelRendering">
        <OverrideNames>
            <Name Language="en-AU">Excel (No Header)</Name>
        </OverrideNames>
        <Configuration> 
            <DeviceInfo>
                <SimplePageHeaders>True</SimplePageHeaders> 
            </DeviceInfo> 
        </Configuration> 
    </Extension>
    

    这将为您提供Reporting Services导出菜单上的两个Excel选项: 擅长 和 Excel(无标题)

    不要忘记在中更改语言属性 <OverrideNames> 使用报表服务器上的语言,或者只调用这两个选项 擅长

    推荐文章