有没有办法从 SSRS 报告导出到 excel,以便仅在 excel 导出中省略报告第一页上显示的标题?目前,它在工作表的顶部添加了一个冻结的框架。
3 回答
更新
另请参阅我关于如何添加去除标题的新 Excel 呈现选项的答案
原答案如下:
如果您可以获得 Excel 输出的 URL(某些版本的 SSRS 让浏览器显示它),您可以在末尾附加一些代码:
&rc:SimplePageHeaders=True
这将删除标题。这是一个派上用场的手动 hack,或者您可以将其添加到 rsreportserver.config 文件中
<Render>
<Extension Name="EXCEL" Type="Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer,Microsoft.ReportingServices.ExcelRendering">
<Configuration>
<DeviceInfo>
<SimplePageHeaders>True</SimplePageHeaders>
</DeviceInfo>
</Configuration>
</Extension>
</Render>
如果没有Aspose.Cells或OfficeWriter - 我没有使用过这两种产品,我只知道它们的存在。
或者对于真正勇敢的人,您可以创建自己的自定义渲染器
不幸的是,Reporting Services 2000、2005 和 2008 无法根据用户选择的呈现方法更改报表的结果。这意味着您唯一的选择是为报表提供一个隐藏或显示标题的参数。
如果用户通过报表管理器访问报表,那么这通常不是一个合理的解决方案,也没有很好的解决方案。如果您正在运行将报表呈现到 Excel 并通过电子邮件、文件共享或 SharePoint 传递报表的订阅,则此方法足以解决问题。
如果有人为此编写了解决方案,我愿意为自定义渲染方法扩展支付少量费用。但是到目前为止,我还没有看到一套代码可以达到这个目的。
关于我在克里斯的回答中应用配置模式的经验的几点说明:
如果您的报告是由报告向导生成的,请注意向导将报告的“标题”文本放在正文中,而不是标题中。因此,请确保您的标题实际上位于标题部分中。
我发现使用 VS 2008 报告预览不会显示导出更改。但是,当我返回浏览我的网页(其中包含一个 ReportViewer 控件)时,我按了 Ctrl+F5,然后它按预期导出。
不要忘记重新部署您的报告。