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

Chaque fois qu'un rapport d'une page est exporté vers excel, feuille dans excel est nommé par le nom du rapport. Si un rapport comporte plusieurs pages, les feuilles sont nommées sheet1, sheet2,.... Y a-t-il un moyen de spécifier le nom des feuilles dans le SSRS 2005 ?

la solution: Trouvé cet après quelques googleing: changer les noms de feuille dans le serveur SQL RS Excel: QnD XSLT

va essayer et afficher une mise à jour si elle fonctionne.

32
demandé sur rao 2009-04-10 11:02:17

10 réponses

Necromancing, juste au cas où tous les liens éteint:

  1. Ajouter un groupe à votre rapport

    De plus, il est conseillé de définir l'ordre de tri de l'expression group ici, de sorte que les onglets seront triés par ordre alphabétique (ou de la façon dont vous voulez qu'ils soient triés).



    1. Add a group to your report

    • 'Zeilengruppe" signifie "groupe Cible"
  2. définir la page break 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 différentes instances d'un groupe'
  3. Maintenant, vous devez définir l' PageName du tableau Matriciel Membre (groupe), PageName du tableau Matriciel itselfs.

    Si vous avez le bon objet, si vous voulez dire " Tablix Membre " (Tablix-Element en allemand) dans la case titre de la grille des propriétés. Si c'est le mauvais objet, il va dire "table/tableau matriciel" (sans les membre) dans la case de titre de la grille de propriété.

  4. Note: Si vous obtenez le tablix au lieu du membre tablix, 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

21
répondu Stefan Steiger 2017-06-23 08:31:57

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 groupage, de sauts de page et de nom de page propriété du groupe.

alternativement, si c'est juste la feuille unique que vous voulez donner un nom spécifique, essayez le InitialPageName propriété sur le rapport.

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

15
répondu Valentino Vranken 2012-08-08 06:32:26
5
répondu Stas Slabko 2012-07-17 11:31:10

mettez le nom de l'onglet sur l'en-tête de page ou le TableRow1 de groupe dans votre rapport afin qu'il apparaisse dans 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
2
répondu James Kuchynski 2011-06-15 13:20:32

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 tablix.
  • ouvrir la fenêtre Propriétés de l'objet tablix.
  • ajouter le nom de l'onglet requis au PageName propriété.
  • Exécuter le rapport
  • exportez le rapport vers Excel.
  • maintenant le nom de la feuille de travail est le même que le PageName propriété de l'objet de tableau matriciel.
2
répondu Vivek Arkalgud 2016-08-17 15:17:09

Il n'y a pas de manière directe. Soit vous exportez du XML et puis vous corrigez un XSLT pour le formater correctement (c'est la manière dure). Une façon plus facile est d'écrire des rapports multiples sans pauses de page explicites de sorte que chaque exporte en une seule feuille dans excel et ensuite écrire un script qui fusionnerait pour vous. Dans les deux cas, cela nécessite une étape de post-traitement.

1
répondu zzawaideh 2009-10-01 17:36:01

j'ai pu faire cela 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 table sur une feuille séparée et les nommera dans Excel . Il ne semble pas avoir d'effet sur D'autres exportations comme PDF et Word .

Premier Tablix Properties de vos tables sous General , activez la case à cocher Add a page break before or after, ce qui sépare le rapport en feuilles .

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

1
répondu LostNomad311 2014-10-09 20:03:43

la méthode du Rectangle

le moyen le plus simple et le plus fiable que j'ai trouvé de réaliser des feuilles de travail/page-breaks est l'utilisation de l'outil rectangle.

groupez votre page dans des rectangles ou un rectangle simple 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 dessiner autour de l'objet que vous souhaitez placer dans le rectangle.

  • clic Droit et dans le menu mise en page, envoyer le rectangle à l'arrière.

  • sélectionnez tous vos objets et faites-les glisser légèrement, mais assurez-vous qu'ils atterrissent à la même place qu'ils étaient. Ils seront tous présent dans le rectangle.

dans les propriétés rectangle, vous pouvez définir la page-break à se produire au début ou à la fin du rectangle et le nom de la page peut être basé sur une expression.

Le les feuilles de travail seront nommées de la même façon que le nom de la page.

les noms dupliqués auront un numéro entre parenthèses.

Remarque: S'assurer que les noms sont des noms valides sur la feuille de travail.

1
répondu Knickerless-Noggins 2017-03-27 07:42:49

Vous pouvez utiliser-sed - et-grep - pour remplacer ou écrire à l'en-tête xml de chaque fichier en spécifiant le nom de votre feuille désirée, par exemple, sheetname1, entre n'importe quelle occurrence des tags:

<Sheetnames>?sheetname1?</Sheetnames>
0
répondu eric.a.booth 2009-10-06 01:41:13

alors que cet usage de la propriété PageName sur un objet vous permet en fait de personnaliser les noms de feuilles exportées dans Excel, soyez averti qu'il 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 à votre serveur.

j'ai eu un rapport que j'ai appliqué ceci à L'intérieur de BIDS et il a mis à jour mon espace de nom de 2008 à 2010. Quand j'ai essayé de publier le rapport à un serveur de rapport 2008R2, j'ai eu une erreur que l'espace de nom n'était pas valide et a dû revenir le tout. Je suis sûr que ma situation peut être unique et peut-être que cela ne se produira pas toujours, mais j'ai pensé qu'il valait la peine de signaler. Une fois que j'ai trouvé le problème, cette page a aidé à rétablir l'espace de noms (il y a des tags qui doivent aussi être supprimés en plus de la réinitialisation de l'espace de noms). espace de noms):

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

0
répondu svenGUTT 2015-08-27 04:10:22