Reporting Services使用多个工作表导出到Excel

我目前正在构build一个MS Reporting Services报告,该报告被渲染为excel。 我试图找出如何设置报告,以便它创build报告上的数据的多个工作表(选项卡)。 我知道在报告中input一个分页符给你一个新的工作表,但是,有没有一种方法来命名每个选项卡,而不是它的默认(工作表1,工作表2)等

任何人都知道这是如何做到的?

提前致谢!

正如@huttelihut指出的那样 ,现在可以从SQL Server 2008 R2开始 – 阅读更多这里

在2008 R2之前,似乎没有可能,但MSDN Social有一些build议的解决方法。

要迟到的问题的原始提问者,但与SQL Server 2008 R2现在是可能的:

将tablix或表或其他元素上的属性“Pagebreak”设置为强制新选项卡,然后在分页符之前的元素和分页符后的元素上设置属性“Pagename”。 报表导出到Excel时,这些名称将显示在选项卡上。

在这里阅读有关它: http : //technet.microsoft.com/en-us/library/dd255278.aspx

以下是在Visual Studio 2010中使用SSRS Report Designer的SQL Server 2008 R2的屏幕截图。

我做了截图,因为一些对话不容易find。

1:添加组

SsrsAddGroup

2:指定要分组的字段

SsrsAddGroupDialog

3:现在点击报告devise器正下方“行组”select器中的组

SsrsRowGroupsSelector

4:F4select属性窗格; 展开'Group'并设置Group> PageBreak> BreakLocation ='Between',然后为Group> PageNameinput所需的expression式

SsrsGroupProperty

5:这是一个示例expression式

SsrsGroupPropertyDialog

以下是导出到Excel的报告结果,其中按照PageNameexpression式命名

SsrsExcelTabs

爱德华的解决scheme为我工作。

如果您想在一个表上使用常量名称的整个tablix,请在tablix的属性中指定PageName。 如果在Tablix的“属性”中设置页面名称,则不能在expression式中使用Tablix数据集中的数据。

如果您希望将Tablix中的行分组为表格(或者您希望一张表的名称基于数据),请在组页眉中指定页面名称。

我在2005年find了一个简单的方法。下面是我的步骤:

  1. 创build一个名为“PageBreaks”的值为“Y”和“N”的string参数。
  2. 在用于将数据拆分为Excel中的多个工作表的组(组)之上添加组级别(value)。
  3. 插入到该组的第一个文本框字段中,“PageBreaks”的expression式就是这样… =IIF(Parameters!PageBreaks.Value="Y",Fields!DISP_PROJECT.Value,"")注意:如果参数='Y '那么你会得到多个工作表的每个不同的值。 否则,对于每个组logging,这个字段都是NULL(在最后只导致一个分页符)。
  4. 将新分组行的可见性隐藏值更改为“True”。
  5. 注意:当你这样做,它也将决定你是否有一个分页在视图中,但我的用户喜欢它,因为他们有控制权。

将页面标题上的标签名称或在报表中组合TableRow1,以便它将出现在每个Excel工作表上的“A1”位置。 然后在Excel工作簿中运行此macros。

 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 

根据您希望工作表基于的类别对报告数据进行分组。 指定您希望该分组为每个新类别启动一个新页面。 每个页面都成为Excel工作簿中的新工作表。

注意:我使用SQL Server 2003和Excel 2003。

在组上按F4并寻找页面名称,属性和名称您的网页,这应该可以解决您的问题