每当将单页报表导出到 excel 时,excel 中的工作表都会以报表名称命名。如果报表有多个页面,则工作表被命名为 sheet1、sheet2、.... 有没有办法在 SSRS 2005 中指定工作表名称?
解决方案:经过一些谷歌搜索后发现: 更改 SQL Server RS Excel 中的工作表名称:QnD XSLT
如果可行,将尝试并发布更新。
每当将单页报表导出到 excel 时,excel 中的工作表都会以报表名称命名。如果报表有多个页面,则工作表被命名为 sheet1、sheet2、.... 有没有办法在 SSRS 2005 中指定工作表名称?
解决方案:经过一些谷歌搜索后发现: 更改 SQL Server RS Excel 中的工作表名称:QnD XSLT
如果可行,将尝试并发布更新。
死灵术,以防万一所有链接都变暗:
将组添加到您的报告
此外,建议在此处设置组表达式的排序顺序,以便选项卡按字母顺序排序(或者您希望它排序)。
现在您需要设置PageName
Tablix成员(组)的,而不是PageName
Tablix本身的。
如果你得到了正确的对象,如果会在属性网格的标题框中显示“Tablix Member ”(德语中的 Tablix-Element)。如果它是错误的对象,它会在属性网格的标题框中只显示“table/tablix”(没有member)。
注意:如果您获得的是 tablix 而不是 tablix 成员,它将在每个选项卡中放置相同的选项卡名称,后跟一个(tabNum)
!如果发生这种情况,您现在就知道问题所在了。
要导出到不同的工作表并使用自定义名称,从 SQL Server 2008 R2 开始,这可以使用分组、分页符和组的PageName属性的组合来完成。
或者,如果它只是您想要指定特定名称的单个工作表,请尝试报表上的InitialPageName属性。
有关更详细的说明,请查看此处:http ://blog.hoegaerden.be/2011/03/23/where-the-sheets-have-a-name-ssrs-excel-export/
在 SSRS 2008 R2 中使用页面组的PageName属性:http: //bidn.com/blogs/bretupdegraff/bidn-blog/234/new-features-of-ssrs-2008-r2-part-1-naming-excel-sheets -何时导出报告
要在导出到 excel 时添加选项卡名称,我使用了以下方法:
PageName
属性。PageName
现在工作表名称与 tablix 对象的属性相同。将选项卡名称放在报表的页眉或组 TableRow1 上,以便它出现在每个 Excel 工作表的“A1”位置。然后在您的 Excel 工作簿中运行此宏。
Sub SelectSheet()
For i = 1 To ThisWorkbook.Sheets.Count
mysheet = "Sheet" & i
On Error GoTo 10
Sheets(mysheet).Select
Set Target = Range("A1")
If Target = "" Then Exit Sub
On Error GoTo Badname
ActiveSheet.Name = Left(Target, 31)
GoTo 10
Badname:
MsgBox "Please revise the entry in A1." & Chr(13) _
& "It appears to contain one or more " & Chr(13) _
& "illegal characters." & Chr(13)
Range("A1").Activate
10
Next i
End Sub
没有直接的方法。您可以导出 XML,然后对 XSLT 进行正确的格式化以正确格式化(这是困难的方法)。一种更简单的方法是编写多个没有明确分页符的报告,因此每个报告仅在 Excel 中导出到一个工作表中,然后编写一个将为您合并的脚本。无论哪种方式,它都需要一个后处理步骤。
我能够按照 Valentino Vranken 和 rao 建议的更复杂的说明完成这项工作,但这里有一个更简单的方法,用于更简单的报告。这会将每个表放在单独的工作表上,并在 Excel 中命名。它似乎对 PDF 和 Word 等其他导出没有影响。
首先在Tablix Properties
您的表中General
,检查其中一个Add a page break before or after
,这会将报告分成工作表。
然后在每个表中,单击表,然后在Grouping
视图中,在Row Groups
侧面,选择父组或默认行组,然后在Properties
视图下Group -> PageBreak
设置BreakLocation
为None
工作PageName
表的名称。
矩形方法
我发现实现工作表/分页符的最简单、最可靠的方法是使用矩形工具。
将您的页面分组在矩形或填充子报表中页面的单个矩形内,如下所示:
我发现放置矩形的最快方法是将其绘制在您希望放置在矩形中的对象周围。
右键单击并在布局菜单中,将矩形发送到后面。
选择所有对象并轻轻拖动它们,但要确保它们落在原来的位置。它们现在都将在矩形中。
在矩形属性中,您可以将分页符设置在矩形的开头或结尾,并且页面的名称可以基于表达式。
工作表的名称将与页面名称相同。
重复的名称将在括号后缀中有一个数字。
注意:确保名称是有效的工作表名称。
您可以使用 -sed- 和 -grep- 替换或写入每个文件的 xml 标头,在任何出现的标签之间指定所需的工作表名称,例如 sheetname1:
<Sheetnames>?sheetname1?</Sheetnames>
虽然在对象上使用 PageName 属性实际上允许您在 Excel 中自定义导出的工作表名称,但请注意,它还可以更新报表的命名空间定义,这可能会影响将报表重新部署到服务器的能力。
我有一个报告,我在 BIDS 中应用了它,它更新了我的命名空间,从 2008 年到 2010 年。当我尝试将报告发布到 2008R2 报告服务器时,我收到一个错误,即命名空间无效,必须将所有内容还原. 我确信我的情况可能是独一无二的,也许这不会总是发生,但我认为值得一提。一旦我发现问题,这个页面帮助恢复命名空间(除了重置命名空间之外,还必须删除一些标签):