Reporting Services exporter vers Excel avec plusieurs feuilles de calcul

Je construis actuellement un rapport ms Reporting Services qui est rendu dans excel. J'essaie de comprendre comment configurer le rapport afin qu'il crée plusieurs feuilles de calcul (onglets) des données sur le rapport. Je comprends que la saisie d'un saut de page dans le rapport vous donne une nouvelle feuille de calcul, cependant, existe-t-il un moyen de nommer chaque onglet au lieu de la valeur par défaut (feuille de calcul 1, feuille de calcul 2), etc.

Quelqu'un sait comment cela se fait?

Merci d'avance!

48
demandé sur Lawrence Johnston 2009-01-20 23:10:09

8 réponses

Comme@huttelihut l'a souligné , cela est maintenant possible à partir de SQL Server 2008 R2 - Lire la suite ici

Avant 2008 R2 cela ne semble pas possible mais MSDN Social a quelques solutions de contournement suggérées.

10
répondu cgreeno 2017-05-23 12:26:01

À la fin pour le demandeur original de la question, mais avec SQL Server 2008 R2 c'est maintenant possible:

Définissez la propriété "Pagebreak" sur le tablix ou la table ou un autre élément pour forcer un nouvel onglet, puis définissez la propriété "Pagename" sur l'élément avant le pagebreak et l'élément après le pagebreak. Ces noms apparaissent sur les onglets lorsque le rapport est exporté vers Excel.

Lire à ce sujet ici: http://technet.microsoft.com/en-us/library/dd255278.aspx

53
répondu T.J.Kjaer 2010-11-30 08:56:52

Voici des captures d'écran pour SQL Server 2008 R2, en utilisant SSRS Report Designer dans Visual Studio 2010.

J'ai fait des captures d'écran comme certains dialogues ne sont pas faciles à trouver.

1: Ajouter le groupe

SsrsAddGroup

2: Spécifiez le champ que vous voulez regrouper sur

SsrsAddGroupDialog

3: Maintenant, cliquez sur le groupe dans le sélecteur 'groupes de lignes', directement sous le concepteur de rapports

SsrsRowGroupsSelector

4: F4 pour sélectionner le volet propriété; développez 'Group' et définissez Group > PageBreak > BreakLocation = 'Between' , puis entrez l'expression souhaitée pour Group > PageName

SsrsGroupProperty

5: Voici un exemple d'expression

SsrsGroupPropertyDialog

Voici le résultat du rapport exporté vers Excel, avec des onglets nommés selon L'expression PageName

SsrsExcelTabs

37
répondu Edward 2014-01-15 16:15:03

La solution D'Edward a fonctionné pour moi.

Si vous voulez que le tablix entier sur une feuille avec un nom constant, spécifiez le PageName dans les propriétés du tablix. Si vous définissez le nom de page dans les propriétés du tablix, vous ne pouvez pas utiliser les données de l'ensemble de données du tablix dans votre expression.

Si vous voulez que les lignes du tablix soient regroupées en feuilles (ou si vous voulez une feuille avec un nom basé sur les données), spécifiez le nom de la page dans L'en-tête du groupe.

5
répondu AverageJon 2014-01-29 18:48:12

J'ai trouvé un moyen simple de contourner cela en 2005. Voici mes étapes:

  1. créez un paramètre de chaîne avec les valeurs ' Y 'et’ N 'appelées ' PageBreaks'.
  2. Ajoutez un niveau de groupe au-dessus du groupe (valeur) qui a été utilisé pour diviser les données en plusieurs feuilles dans Excel.
  3. inséré dans le premier champ de zone de texte pour ce groupe, l'expression pour les ‘PageBreaks’ en tant que tel… =IIF(Parameters!PageBreaks.Value="Y",Fields!DISP_PROJECT.Value,"") Remarque: Si le paramètre = 'Y', vous obtiendrez les feuilles multiples pour chaque valeur différente. Sinon, l' champ est NULL pour chaque enregistrement de groupe (ce qui provoque un seul saut de page à la fin).
  4. Modifiez la valeur masquée de visibilité de la nouvelle ligne de regroupement en 'True'.
  5. NOTE: Lorsque vous faites cela, il déterminera également si vous avez ou non un saut de page dans la vue, mais mes utilisateurs l'adorent car ils ont le contrôle.
2
répondu koder 2011-08-11 16:34:19

Placez le nom de l'onglet sur L'en-tête de page ou le groupe TableRow1 dans votre rapport afin qu'il apparaisse à la position "A1" sur chaque feuille Excel. Ensuite, exécutez cette macro dans votre classeur 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
1
répondu James Kuchynski 2011-06-15 13:30:05

Regroupez vos données de rapport en fonction de la catégorie sur laquelle vous souhaitez que vos feuilles soient basées. Spécifiez que vous souhaitez que ce regroupement démarre une nouvelle page pour chaque nouvelle catégorie. Chaque page devient une nouvelle feuille de calcul dans le classeur Excel.

Remarque: J'utilise SQL Server 2003 et Excel 2003.

0
répondu Jean 2010-07-13 15:12:24

Sur le groupe appuyez sur F4 et recherchez le nom de la page, sur les propriétés et nommez votre page cela devrait résoudre votre problème

0
répondu Gurru 2013-03-14 10:54:18