导出到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中的单元格以尝试排序的主要内容,如果未能解决你的问题,请参考以下文章
在 s-s-rs 2008 中将报告导出到 excel 时合并或空白列