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!
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.
À 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
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
2: Spécifiez le champ que vous voulez regrouper sur
3: Maintenant, cliquez sur le groupe dans le sélecteur 'groupes de lignes', directement sous le concepteur de rapports
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
5: Voici un exemple d'expression
Voici le résultat du rapport exporté vers Excel, avec des onglets nommés selon L'expression PageName
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.
J'ai trouvé un moyen simple de contourner cela en 2005. Voici mes étapes:
- créez un paramètre de chaîne avec les valeurs ' Y 'et’ N 'appelées ' PageBreaks'.
- Ajoutez un niveau de groupe au-dessus du groupe (valeur) qui a été utilisé pour diviser les données en plusieurs feuilles dans Excel.
- 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). - Modifiez la valeur masquée de visibilité de la nouvelle ligne de regroupement en 'True'.
- 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.
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
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.
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