如何在SQL Server Reporting Services 2012中导出CSV时避免表头重复
解决SSRS 2012导出CSV表头重复的问题
嘿,我之前帮不少人搞定过SSRS导出CSV时表头重复的坑,大概率是你的Tablix控件的表头设置或者分组配置出了问题,下面几个方法应该能解决你的需求:
方法1:修正Tablix表头的重复属性
这是最常见的原因——你的表头行被设置成了每页/每组重复显示:
- 选中报表里的Tablix控件,右键点击行组面板里的「静态」行(就是你那行Header1、Header2所在的行)
- 在弹出的属性窗口里,找到
RepeatOnNewPage和KeepWithGroup这两个属性:- 把
RepeatOnNewPage改成False,禁止表头在新页面重复 - 把
KeepWithGroup设为None,让表头不跟任何分组绑定重复
- 把
- 改完后预览一下CSV格式,应该就能看到表头只出现一次了。
方法2:简化Tablix结构,避免嵌套表头
如果你的Tablix有嵌套的行/列组,子分组的表头可能会被当成主表头重复导出:
- 检查你的表头是否是单独的一行,没有和分组行合并或者嵌套
- 如果有子分组的表头,要么把它们合并到主表头里,要么直接在属性里把子表头的
Visibility设为Hidden,不让它导出到CSV里
方法3:修改SSRS的CSV导出配置(进阶方案)
如果上面的方法都没效果,可以直接修改SSRS服务器的导出配置,强制只输出一次表头:
- 找到SSRS服务器上的
RSReportServer.config文件(默认路径是C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer) - 找到
<Extension Name="CSV" Type="Microsoft.ReportingServices.Rendering.DataRenderer.CsvReport,Microsoft.ReportingServices.DataRendering">这段配置 - 在这个节点里添加如下
DeviceInfo配置:<DeviceInfo> <NoHeader>False</NoHeader> <RepeatHeader>False</RepeatHeader> </DeviceInfo> - 保存文件后重启SSRS服务,这样导出CSV时就会严格只输出一次表头,不会重复。
最后提醒下,改完设置后先在报表预览里切换到CSV视图确认效果,没问题再正式导出,省得白忙活~
内容的提问来源于stack exchange,提问作者ethan
相关产品推荐
相关产品推荐

