导出到excel时如何取消合并s-s-rs中的单元格以尝试排序

Posted

技术标签:

【中文标题】导出到excel时如何取消合并s-s-rs中的单元格以尝试排序【英文标题】:How can I unmerge cells in s-s-rs when exporting to excel to try to sort 【发布时间】:2012-06-20 01:50:24 【问题描述】:

我正在将 s-s-rS 报告导出到 Excel,并且当用户尝试对某些列进行排序时。他们收到消息“此操作要求合并的单元格大小相同。

如何在 s-s-rS 中使用未合并的单元格生成报告? 我试图在 tablix 中获取一些属性,但我找不到

提前致谢

【问题讨论】:

【参考方案1】:

这通常是由于标题的列宽与数据区域不同 - 渲染器将合并的单元格放入表格中,以使标题文本 Excel 列与表格单元格的 Excel 列对齐。您可以尝试通过确保标题项与表格单元格完全对齐来解决此问题。

但是,解决此问题的最佳方法是在导出到 Excel 时消除标题,这样您就可以得到表格单元格。没有标题,就没有对齐问题。

这里有几个选项。对于永久导出选项,您可以查看我之前关于 adding a new Excel report rendering option 的答案,或者您可以通过 output to Excel using Simple Page Headers 以更手动的方式进行操作。

【讨论】:

我已经阅读并测试了您的解决方案,但 SimplePageHeaders 在 s-s-rS 2008 R2 中不起作用。即使我重新启动了服务。那是有人在你的一个答案中写的..【参考方案2】: 一种方法是不输出报告的麻烦部分。 你可以去元素的属性页 -> Visibility -> Show/Hide based on expression,然后使用这个表达式:

=(Globals!RenderFormat.Name = "EXCEL") 并且它不会在 excel 导出中显示该部分。

另一个提示是确保一切都完美排列,并使用点测量而不是厘米来测量尺寸。

参考资料:

http://blogs.msdn.com/b/robertbruckner/archive/2010/05/16/report-design-naming-excel-worksheets.aspx http://edspencer.me.uk/2010/10/23/how-to-avoid-cell-merging-when-exporting-to-excel-in-s-s-rs-2008/ How to get named excel sheets while exporting from s-s-rS

【讨论】:

【参考方案3】:

这通常是由未对齐对齐的页眉/列/文本框/页脚引起的。在导出到 Excel 时,即使相差 1 点或 0.5 英寸也会导致合并单元格。确保一切都正确对齐。在多个项目中多次遇到此问题,并且始终是相同的根本原因。

【讨论】:

我刚刚解决了这个问题,正如您所说,您必须确保所有内容(徽标、标题、表格、页脚...)都对齐良好,以便大多数左侧项目从相同位置开始(在我的情况下为 0.0)并且也以相同的位置结束。要确定问题出在哪里,导出到 excel 并在序列中查找空列 这正是我遇到问题的原因。我在报告顶部有一个标题,它跨越了许多列,但它的末端正好在一个报告列的中间。我刚刚将该单元格调整为与它平分的列的末尾对齐,从而解决了问题。【参考方案4】:

请确保您的标题文本框和 tablix 具有相同的宽度。这将消除合并单元格的机会。 如果两者的宽度不同,那么它将合并您的标题边缘所在的 excel 单元格。

    确保所有未绑定文本框的大小都与您的 tablix 相匹配 宽度。 确保所有未绑定的文本框都适合 tablix 列。

Reference - How to Eliminate Excel Column Merging in Exported s-s-rS Reports

【讨论】:

【参考方案5】:

你也可以修改 rsreportserver.config 发现如果 C:\Program Files\Microsoft SQL Server(s-s-rS 安装文件夹)\Reporting Services\ReportServer 并替换:

 <Extension Name="EXCELOPENXML" Type="Microsoft.ReportingServices.Rendering.ExcelOpenXmlRenderer.ExcelOpenXmlRenderer,Microsoft.ReportingServices.ExcelRendering"> <Extension Name="EXCELOPENXML_NoHeader" Type="Microsoft.ReportingServices.Rendering.ExcelOpenXmlRenderer.ExcelOpenXmlRenderer,Microsoft.ReportingServices.ExcelRendering"/>

 <Extension Name="EXCELOPENXML_NoHeader" Type="Microsoft.ReportingServices.Rendering.ExcelOpenXmlRenderer.ExcelOpenXmlRenderer,Microsoft.ReportingServices.ExcelRendering"> <Extension Name="EXCELOPENXML_NoHeader" Type="Microsoft.ReportingServices.Rendering.ExcelOpenXmlRenderer.ExcelOpenXmlRenderer,Microsoft.ReportingServices.ExcelRendering">                <OverrideNames>                        <Name Language="en-US">Excel With No Header                        </Name>                </OverrideNames>                <Configuration>                    <DeviceInfo>                        <SimplePageHeaders>True</SimplePageHeaders>                    </DeviceInfo>                </Configuration>            </Extension>            <Extension Name="EXCELOPENXML" Type="Microsoft.ReportingServices.Rendering.ExcelOpenXmlRenderer.ExcelOpenXmlRenderer,Microsoft.ReportingServices.ExcelRendering">                <OverrideNames>                    <Name Language="en-US">Excel With Header                    </Name>                </OverrideNames>            </Extension>

它将为您提供将报告导出到带有或不带有标题的 Excel 的选项。 这是一次性更改,无需修改所有报告。无需重启 s-s-rS 服务。 通过 s-s-rS 2014、2016、2017 测试

【讨论】:

以上是关于导出到excel时如何取消合并s-s-rs中的单元格以尝试排序的主要内容,如果未能解决你的问题,请参考以下文章

如何阻止 excel 合并我的 s-s-rS 报告列?

在 s-s-rs 2008 中将报告导出到 excel 时合并或空白列

导出到excel时s-s-rs不保持格式

s-s-rS 在导出到 Excel 时不支持 CanGrow 属性

导出到 excel 时 s-s-rS 报告颜色发生变化

如何通过Java 合并和取消合并 Excel 单元格