Wenn ein einzelner Seitenbericht nach Excel exportiert wird, wird das Blatt in Excel nach dem Berichtsnamen benannt. Wenn ein Bericht mehrere Seiten hat, werden die Blätter als Blatt1, Blatt2, .....__ bezeichnet Blattnamen in SSRS 2005 angeben?
lösung: Dies wurde nach einiger Google-Suche gefunden: Ändern der Blattnamen in SQL Server RS Excel: QnD XSLT
Werde ein Update ausprobieren und posten, wenn es funktioniert.
Necromancing, nur für den Fall, dass alle Links dunkel werden:
Fügen Sie Ihrem Bericht eine Gruppe hinzu
Beachten Sie auch, dass Sie die Sortierreihenfolge des Gruppenausdrucks hier festlegen, damit die Registerkarten alphabetisch sortiert werden (oder wie Sie es wünschen).
Legen Sie den Seitenumbruch in den Gruppeneigenschaften fest
Jetzt müssen Sie die PageName
der Tablix Member (Gruppe) und NICHT der PageName
der Tablix selbsts einstellen.
Wenn Sie das richtige Objekt gefunden haben, wird im Titelfeld des Eigenschaftenrasters "Tablix Member" (Tablix-Element) angezeigt. Wenn es sich um ein falsches Objekt handelt, wird only "table/tablix" (ohne member) im Titelfeld des Eigenschaftsbereichs angezeigt.
Hinweis: Wenn Sie das Tablix-Element anstelle des Tablix-Members erhalten, wird in jedem Tab derselbe Tabulatortext eingefügt, gefolgt von einem (tabNum)
! In diesem Fall wissen Sie jetzt, was das Problem ist.
Um in andere Arbeitsblätter zu exportieren und benutzerdefinierte Namen zu verwenden, kann dies ab SQL Server 2008 R2 mithilfe einer Kombination aus Gruppierung, Seitenumbrüchen und der Eigenschaft PageName der Gruppe erfolgen.
Wenn Sie nur einen einzelnen Namen angeben möchten, versuchen Sie es mit der Eigenschaft InitialPageName des Berichts.
Eine ausführlichere Erklärung finden Sie hier: http://blog.hoegaerden.be/2011/03/23/where-the-sheets-have-a-name-ssrs-Excel-export/
Verwenden Sie in SSRS 2008 R2 die Eigenschaft PageName der Seitengruppe: http://bidn.com/blogs/bretupdegraff/bidn-blog/234/new-features-of-ssrs-2008-r2- Teil-1-Benennung-Excel-Tabellen-wenn-Export-Berichte
Um beim Exportieren nach Excel Registernamen hinzuzufügen, habe ich die folgende Methode verwendet:
PageName
-Eigenschaft den erforderlichen Tabulatornamen hinzu. PageName
-Eigenschaft des Tablix-Objekts überein.Setzen Sie den Tabellennamen in den Seitenkopf oder die Gruppe TableRow1 in Ihrem Bericht, damit er in jeder Excel-Tabelle an der Position "A1" angezeigt wird. Führen Sie dann diesen Makro in Ihrer Excel-Arbeitsmappe aus.
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
Es gibt keinen direkten Weg. Sie exportieren entweder XML und dann rechts ein XSLT, um es richtig zu formatieren (dies ist der harte Weg). Einfacher ist es, mehrere Berichte ohne explizite Seitenumbrüche zu schreiben, sodass jeder nur in Excel in ein Blatt exportiert und dann ein Skript geschrieben wird, das für Sie zusammengeführt wird. In beiden Fällen ist ein Nachverarbeitungsschritt erforderlich.
Die Rechteckmethode
Die einfachste und zuverlässigste Methode, die ich beim Erstellen von Arbeitsblättern/Seitenumbrüchen gefunden habe, ist die Verwendung des Rechteckwerkzeugs.
Gruppieren Sie Ihre Seite in Rechtecke oder ein einzelnes Rechteck, das die Seite in einem Unterbericht ausfüllt, wie folgt:
Die schnellste Methode, die ich beim Platzieren des Rechtecks gefunden habe, besteht darin, es um die Objekte zu zeichnen, die Sie im Rechteck platzieren möchten.
Klicken Sie mit der rechten Maustaste und senden Sie das Rechteck im Layout-Menü nach hinten.
Wählen Sie alle Ihre Objekte aus und ziehen Sie sie leicht, aber stellen Sie sicher, dass sie an derselben Stelle landen, an der sie waren. Sie befinden sich jetzt alle im Rechteck.
In den Rechteckeigenschaften können Sie festlegen, dass der Seitenumbruch am Anfang oder am Ende des Rechtecks angezeigt wird. Der Name der Seite kann auf einem Ausdruck basieren.
Die Arbeitsblätter werden genauso benannt wie der Name der Seite.
Doppelte Namen haben eine Suffixnummer in Klammern.
Hinweis: Stellen Sie sicher, dass die Namen gültige Arbeitsblattnamen sind.
Ich konnte dies nach komplexeren Anweisungen, die von Valentino Vranken und rao vorgeschlagen wurden, erledigen, aber hier ist ein einfacher Ansatz für einen einfacheren Bericht. Dadurch wird jede Tabelle auf einem separaten Blatt platziert und in Excel benannt. Es scheint keinen Einfluss auf andere Exporte wie PDF und Word zu haben.
Zuerst überprüfen Sie in Tablix Properties
Ihrer Tabellen unter General
entweder Add a page break before or after
. Dies trennt den Bericht in Arbeitsblätter.
Klicken Sie dann in jeder Tabelle auf die Tabelle, wählen Sie in der Ansicht Grouping
auf der Seite Row Groups
die übergeordnete Gruppe oder die Standardzeilengruppe aus, und setzen Sie dann in der Ansicht Properties
unter Group -> PageBreak
BreakLocation
auf None
und PageName
auf den Namen des Blattes.
Sie können -sed- und -grep- verwenden, um den XML-Header jeder Datei zu ersetzen oder in diesen zu schreiben, und geben Sie den gewünschten Blattnamen (z. B. blattname1) zwischen jedem Vorkommen der Tags an:
<Sheetnames>?sheetname1?</Sheetnames>
Diese Verwendung der PageName-Eigenschaft für ein Objekt ermöglicht zwar das Anpassen der exportierten Blattnamen in Excel. Beachten Sie jedoch, dass die Namespace-Definitionen Ihres Berichts auch aktualisiert werden können, was die Möglichkeit der erneuten Bereitstellung des Berichts auf Ihrem Server beeinträchtigen kann.
Ich hatte einen Bericht, auf den ich dies innerhalb von BIDS angewendet habe, und es wurde mein Namespace von 2008 auf 2010 aktualisiert. Als ich versuchte, den Bericht auf einem 2008R2-Berichtsserver zu veröffentlichen, erhielt ich die Fehlermeldung, dass der Namespace ungültig war und musste alles zurücksetzen . Ich bin mir sicher, dass meine Umstände einzigartig sein können und vielleicht wird dies nicht immer passieren, aber ich hielt es für würdig, darüber zu berichten. Nachdem ich das Problem gefunden hatte, half diese Seite dabei, den Namespace zurückzusetzen (Es gibt Tags, die zusätzlich zum Zurücksetzen des Namespaces entfernt werden müssen):