web-dev-qa-db-fra.com

Comment obtenir des feuilles Excel nommées lors de l'exportation à partir de SSRS

Chaque fois qu'un rapport de page unique est exporté vers Excel, feuille dans Excel est nommée par le nom de rapport . Si un rapport comporte plusieurs pages, les feuilles sont nommées feuille1, feuille2, .... spécifier les noms de feuille dans SSRS 2005?

solution: Trouvé après quelques recherches sur Google: Modification du nom des feuilles dans SQL Server RS ​​Excel: QnD XSLT

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

33
rao

Nécromancien, 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éfinissez le saut de page dans les propriétés du groupe  2. 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. Maintenant, vous devez définir la PageName du Tablix Member (groupe), PAS la PageName du Tablix lui-même
    Si vous avez le bon objet, si vous dites "Tablix Member" (Tablix-Element en allemand) dans la zone de titre de la grille des propriétés. Si c'est le mauvais objet, il dira seulement "table/tablix" (sans membre) dans la zone de titre de la grille de propriétés.

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

 MultiTabExcelFile

22
Stefan Steiger

Pour exporter dans différentes feuilles et utiliser des noms personnalisés, vous pouvez utiliser SQL Server 2008 R2 à l'aide d'une combinaison de regroupement, de sauts de page et de la propriété PageName du groupe.

Si vous souhaitez attribuer un nom spécifique à la seule feuille, vous pouvez également utiliser la propriété InitialPageName du 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/

15
Valentino Vranken
5
Stas Slabko

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

  • Dans la fenêtre de création de rapport, sélectionnez l'objet de tableau matriciel. 
  • Ouvrez la fenêtre de propriétés de l'objet tablix. 
  • Ajoutez le nom d’onglet requis à la propriété PageName
  • Exécuter le rapport 
  • Exportez le rapport vers Excel. 
  • Désormais, le nom de la feuille de travail est identique à la propriété PageName de l'objet tablix.
2
Vivek Arkalgud

Placez le nom de l'onglet dans l'en-tête de la page ou dans le groupe TableRow1 de votre rapport afin qu'il apparaisse à la position "A1" de 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
2
James Kuchynski

Il n'y a pas de moyen direct. Vous devez soit exporter le XML, puis demander à un XSLT de le formater correctement (c’est difficile). Un moyen plus simple consiste à rédiger plusieurs rapports sans sauts de page explicites. Chaque exportation s'effectue dans une seule feuille dans Excel, puis un script pouvant être fusionné pour vous. Dans les deux cas, une étape de post-traitement est nécessaire.

1
zzawaideh

La méthode Rectangle

L'utilisation de l'outil Rectangle est le moyen le plus simple et le plus fiable que j'ai trouvé d'obtenir des feuilles de calcul/sauts de page.

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

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

  • Cliquez avec le bouton droit de la souris et, dans le menu de disposition, envoyez le rectangle à 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 tous maintenant dans le rectangle.

Dans les propriétés du rectangle, vous pouvez définir le saut de page de sorte qu'il se produise au début ou à la fin du rectangle. 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 entre parenthèses. 

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

1

Cela a pu être fait 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 mettra chaque tableau sur une feuille distincte et les nommera dans Excel. Cela ne semble pas avoir d'incidence sur les autres exportations telles que PDF et Word.

Tout d'abord dans le Tablix Properties de vos tables sous General, cochez soit Add a page break before or after, cela sépare le rapport en feuilles.

Ensuite, dans chaque table, cliquez sur la table, puis dans la vue Grouping, côté Row Groups, sélectionnez le groupe parent ou le groupe de lignes par défaut, puis dans la vue Properties, sous Group -> PageBreak, définissez BreakLocation sur None et PageName comme nom.

1
LostNomad311

Vous pouvez utiliser -sed- and -grep- pour remplacer ou écrire dans l'en-tête xml de chaque fichier en spécifiant le nom de la feuille de votre choix, par exemple, nom_fichier1, entre les occurrences des balises:

<Sheetnames>?sheetname1?</Sheetnames>
0
eric.a.booth

Bien que l'utilisation de la propriété PageName sur un objet vous permette de personnaliser les noms de feuille exportés dans Excel, sachez qu'il peut également mettre à jour les définitions d'espace de nom de votre rapport, ce qui pourrait affecter la possibilité de redéployer le rapport sur votre serveur. 

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

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

0
svenGUTT