Question

Chaque fois qu'un rapport d'une seule page est exporté vers Excel, la feuille Excel est nommée par le nom du rapport.Si un rapport comporte plusieurs pages, les feuilles sont nommées feuille1, feuille2,....Existe-t-il un moyen de spécifier des noms de feuilles dans SSRS 2005 ?

solution:J'ai trouvé ceci après quelques recherches sur Google :Modification des noms de feuilles dans SQL Server RS ​​Excel :QnD XSLT

Je vais essayer et publier une mise à jour si cela fonctionne.

Était-ce utile?

La solution

Nécromancie, juste au cas où tous les liens deviendraient sombres :

  1. Ajouter un groupe à votre rapport
    Il est également conseillé de définir ici l'ordre de tri de l'expression de groupe, afin que les onglets soient triés par ordre alphabétique (ou comme vous le souhaitez).

    1. Add a group to your report

    • « Zeilengruppe » signifie « Groupe cible »
    • « Gruppeneigenschaften » signifie « Propriétés du groupe »
  2. Définir le saut de page dans les propriétés du groupe2. Set the page break in the group properties

    • « Seitenumbruche » signifie « Saut de page »
    • « Zwischen den einzelnen Instanzen einer Gruppe » signifie « Entre les instances individuelles d'un groupe »
  3. Vous devez maintenant définir le PageName du Tablix Membre (groupe), PAS le PageName du Tablix lui-même.
    Si vous avez le bon objet, il dira "Tablix Membre" (Tablix-Element en allemand) dans la zone de titre de la grille des propriétés.Si ce n'est pas le bon objet, il dira seulement "table/tableau" (sans membre) dans la zone de titre de la grille de propriétés.

  4. Note:Si vous obtenez le tableau au lieu du membre du tableau, il mettra le même nom d'onglet dans chaque onglet, suivi d'un (tabNum)!Si cela se produit, vous savez maintenant quel est le problème.Tablix Member

MultiTabExcelFile

Autres conseils

Pour exporter vers différentes feuilles et utiliser des noms personnalisés, à partir de SQL Server 2008 R2, cela peut être fait en utilisant une combinaison de regroupement, de sauts de page et de Nom de la page propriété du groupe.

Alternativement, s'il ne s'agit que d'une seule feuille à laquelle vous souhaitez donner un nom spécifique, essayez la NomPageInitial propriété sur le rapport.

Pour une explication plus détaillée, regardez ici : http://blog.hoegaerden.be/2011/03/23/where-the-sheets-have-a-name-ssrs-excel-export/

Pour ajouter des noms d'onglets lors de l'exportation vers Excel, j'ai utilisé la méthode suivante :

  • Dans la fenêtre de conception du rapport, sélectionnez l'objet Tableau.
  • Ouvrez la fenêtre des propriétés de l'objet tableau.
  • Ajoutez le nom de l'onglet requis au PageName propriété.
  • Exécuter le rapport
  • Exportez le rapport vers Excel.
  • Le nom de la feuille de calcul est désormais le même que celui de PageName propriété de l’objet tableau.

Placez le nom de l'onglet sur l'en-tête de la page ou groupez TableRow1 dans votre rapport afin qu'il apparaisse en position "A1" sur chaque feuille Excel.Exécutez ensuite 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

Il n'y a pas de moyen direct.Soit vous exportez du XML, puis vous corrigez un XSLT pour le formater correctement (c'est la manière la plus difficile).Un moyen plus simple consiste à rédiger plusieurs rapports sans sauts de page explicites afin que chacun soit exporté dans une seule feuille dans Excel, puis à écrire un script qui fusionnerait pour vous.Quoi qu’il en soit, cela nécessite une étape de post-traitement.

J'ai pu y parvenir en suivant des instructions plus complexes suggérées par Valentino Vranken et Rao, mais voici une approche plus simple, pour un rapport plus simple.Cela placera chaque tableau sur une feuille séparée et les nommera dans Excel.Cela ne semble pas avoir d'effet sur les autres exportations comme PDF et Word.

D'abord dans le Tablix Properties de vos tableaux sous General , vérifiez soit Add a page break before or after , cela divise le rapport en feuilles .

Puis dans chaque tableau , cliquez sur le tableau , puis dans le Grouping vue, sur le Row Groups côté, sélectionnez le groupe parent ou le groupe de lignes par défaut, puis dans le Properties voir sous Group -> PageBreak ensemble BreakLocation à None et PageName au nom de la feuille.

La méthode Rectangulaire

Le moyen le plus simple et le plus fiable que j'ai trouvé pour réaliser des feuilles de calcul/sauts de page consiste à utiliser l'outil rectangle.

Regroupez votre page dans des rectangles ou dans un seul rectangle qui remplit la page dans un sous-rapport, comme suit :

  • Le moyen le plus rapide que j'ai trouvé pour placer le rectangle est de le dessiner autour des objets que vous souhaitez placer dans le rectangle.

  • Faites un clic droit et dans le menu de mise en page, renvoyez le rectangle vers l'arrière.

  • Sélectionnez tous vos objets et faites-les glisser légèrement, mais assurez-vous qu'ils atterrissent au même endroit où ils se trouvaient.Ils seront désormais tous dans le rectangle.

Dans les propriétés du rectangle, vous pouvez définir le saut de page pour qu'il se produise au début ou à la fin du rectangle et le nom de la page peut être basé sur une expression.

Les feuilles de calcul porteront le même nom que le nom de la page.

Les noms en double auront un suffixe numérique entre parenthèses.

Note: Assurez-vous que les noms sont des noms de feuille de calcul valides.

Vous pouvez utiliser -sed- et -grep- pour remplacer ou écrire dans l'en-tête XML de chaque fichier en spécifiant le nom de feuille souhaité, par exemple, sheetname1, entre toute occurrence des balises :

<Sheetnames>?sheetname1?</Sheetnames>

Bien que cette utilisation de la propriété PageName sur un objet vous permette en fait de personnaliser les noms de feuilles exportées dans Excel, sachez qu'elle peut également mettre à jour les définitions d'espace de noms de votre rapport, ce qui pourrait affecter la capacité de redéployer le rapport sur votre serveur.

J'avais un rapport auquel j'appliquais cela dans BIDS et il mettait à jour mon espace de noms de 2008 à 2010.Lorsque j'ai essayé de publier le rapport sur un serveur de rapports 2008R2, j'ai reçu une erreur indiquant que l'espace de noms n'était pas valide et j'ai dû tout rétablir.Je suis sûr que ma situation est peut-être unique et que cela n'arrivera peut-être pas toujours, mais j'ai pensé que cela valait la peine d'en parler.Une fois que j'ai trouvé le problème, cette page a aidé à rétablir l'espace de noms (il y a des balises qui doivent également être supprimées en plus de réinitialiser l'espace de noms) :

http://beatheadagainstwall.blogspot.com/2011/03/invalid-target-namespace-when-deploying.html?showComment=1440647962263#c5741523651495876761

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top