表少于 4 列时导出到 excel 后隐藏列 (s-s-rS)

Posted

技术标签:

【中文标题】表少于 4 列时导出到 excel 后隐藏列 (s-s-rS)【英文标题】:Hidden column after export to excel when table has less than 4 columns (s-s-rS) 【发布时间】:2013-12-04 20:13:34 【问题描述】:

我在将 s-s-rs 报告导出到 Excel 时遇到了以下问题。 当我创建一个有 4 列的表格然后将其导出到 excel 时,我得到了正确的布局:

但是当我在 s-s-rs 设计器中删除至少一列时(当表包含少于 4 列时),在将其导出到 excel 后,一列被隐藏:

当我手动将宽度(通过在属性窗口中键入宽度)更改为至少 3 厘米时,在将其导出到 excel 后,附加列消失了(即使表格少于 4 列)。

有人知道为什么会这样吗? 任何帮助将不胜感激。

【问题讨论】:

1.不,我可以删除任意列,如果少于 4 列,它就会发生。 2. 默认情况下,我在 s-s-rs 中创建表时,它有 3 列。预览并导出后,excel中的一列被隐藏。当我在表格中添加一列或多列时,在 Excel 中就可以了。报告中没有其他元素(页眉、页脚、文本框等)。我在 s-s-rs 2008 和 2012 中对此进行了检查。 【参考方案1】:

简单的解决方案:以点为单位,而不是英寸或厘米。 Excel 以点为单位呈现,因此这可以防止定位中的所有舍入。就这么简单。

【讨论】:

我发现这些关于如何“按点工作”的说明很有帮助:social.msdn.microsoft.com/Forums/sqlserver/en-US/… 只要加上我的 0.02 美元,我就遇到过很多报告标题文本框在导出到 Excel 时在我的列中导致额外/缩小的空白列的情况,无论文本框右边缘在哪里结束。为了解决这个问题,我在属性中手动增加了文本框的宽度大小,然后稍微拖动数据列的宽度以匹配。您的里程可能会有所不同,但可能会对其他人有所帮助。【参考方案2】:

这是标题的问题。

为避免这一切,在您的 tablix 中插入一行(最重要的是)并将“RepeatOnNewPage”tablix 属性设置为“True”(高级模式>>选择您需要重复的静态行组>>RepeatOnNewPage)。

这种方法与标题的作用相同,您不必再处理那些讨厌的额外列!

【讨论】:

...除了您不能再冻结 Excel 中的第一行。【参考方案3】:

尝试矩形到矩形。 如果这不起作用 - 插入一个列表并将您的对象插入到列表中。 这应该会有所帮助 - 不知道为什么会这样 - 但有时需要大量尝试和场景才能为一份报告解决这个问题......继续尝试使用矩形和列表 - 这就是我一直在做的事情。

【讨论】:

还是不行。您可以通过在报表中插入一个新表来模仿我的情况(不更改任何属性,甚至不插入任何值)。然后预览报表并将其导出到 Excel。您会看到,excel 中的“D”列被隐藏了。【参考方案4】:

这是 s-s-rS 中的常见问题 - 我解决此问题的方法是使用矩形的 . 插入矩形,然后在矩形内剪切表格/矩阵粘贴 - 确保没有空格。 如果您使用多个表/矩阵,则在矩形内插入矩形等(我的记录是第 14 深度) - 这很烦人,但我只知道这种方式。 - 还 - 将所有东西都放在左侧角落

【讨论】:

我将表格剪切,粘贴成矩形,但是当我将它导出到excel时,问题仍然存在(表格后面的一列被隐藏了)。【参考方案5】:

对我来说很好用……你用的是什么版本的 excel? 您可以在此处发布 rdl 文件或文件中的代码吗? 您使用的是报表生成器还是 Visual Studio? - 报告上还有其他对象还是只有那张桌子? D.

【讨论】:

报告没有更多项目 - 只有表格。这是文件:speedyshare.com/Bj8yx/Report1.rdl【参考方案6】:

我发现,如果您的报告中的标题高于实际的 tablix,则必须扩展标题的宽度以匹配 tablix 的宽度(您应该看到显示对齐的蓝线)并确保标题也与 tablix 的开始位置对齐。基本上,只要确保一切都对齐。希望这会有所帮助。

【讨论】:

【参考方案7】:

在为此苦苦挣扎了几天之后,这篇博文帮助了我:

How to eliminate merged and hidden Cells issue from Excel Export of s-s-rS report - MSDN

问题似乎在于像素和厘米(或英寸)不能很好地对齐。当您拖动列时,它们会得到值的非精确近似值。当您输入一个漂亮的整数(甚至像 3.25 厘米)时,它们似乎会打得更好。您可能希望使用像素或点(Excel 用于存储单元格大小的内容)来防止最后一列压缩。

我希望这会有所帮助...

【讨论】:

@Tomtom 文章的重要部分出现在链接后面的段落中。我是否应该改写并将链接移至段落下方以使其更清晰?【参考方案8】:

和往常一样,比赛迟到了。但是我玩了一段时间,在我看来它最终会变得相当随机。有时我可以让他们离开,有时我不能。我并不总是有能力将事物更改为代表偶数点的漂亮整数。即使我这样做了,它仍然并不总是有效。但我确实注意到了这一点。如果你仔细放大,你可以看到线条只是稍微错位。当我告诉你数学上不应该发生的时候,相信我。但我想知道这是否有助于解释问题。

【讨论】:

以上是关于表少于 4 列时导出到 excel 后隐藏列 (s-s-rS)的主要内容,如果未能解决你的问题,请参考以下文章

从 s-s-rS 导出到 Excel 中删除附加列

s-s-rS:报告导出到 excel,不包括特定列

在 s-s-rS 中将报告导出到 Excel

配置简单功能强大的excel工具类搞定excel导入导出工具类

导出数据表时排除/隐藏某些列

当我使用少于 12 个列时,如何避免将 Bootstrap 列分成行?