1ページのレポートがExcelにエクスポートされるたびに、Excelのシートにはレポート名が付けられます。レポートに複数のページがある場合、シートにはsheet1、sheet2、...という名前が付けられます。SSRS2005でシート名を指定する方法はありますか?
解決策:いくつかのグーグルの後にこれを見つけました: SQL Server RS Excelのシート名の変更:QnD XSLT
動作する場合は、更新を試して投稿します。
すべてのリンクが暗くなった場合に備えて、ネクロマンシング:
レポートにグループを追加する
また、ここでグループ式のソート順を設定することをお勧めします。これにより、タブがアルファベット順にソートされます(またはソートしたい場合でも)。
次に、TablixのPageName
を設定する必要がありますMember(group)、[〜# 〜] not [〜#〜]TablixのPageName
selfs。
正しいオブジェクトを取得した場合、タイトルボックスに「TablixMember」(ドイツ語ではTablix-Element)と表示されますプロパティグリッド。間違ったオブジェクトの場合は、only "table/tablix"(withoutmember)inプロパティグリッドのタイトルボックス。
注:Tablixメンバーの代わりにTablixを取得すると、すべてのタブに同じタブ名が付けられ、その後に(tabNum)
!その場合は、問題が何であるかがわかります。
別のシートにエクスポートしてカスタム名を使用するには、SQL Server 2008 R2以降、グループ化、改ページ、およびPageNameプロパティの組み合わせを使用してこれを実行できます。グループの。
また、特定の名前を付けたいのが1枚だけのシートの場合は、レポートのInitialPageNameプロパティを試してください。
詳細な説明については、こちらをご覧ください: http://blog.hoegaerden.be/2011/03/23/where-the-sheets-have-a-name-ssrs-Excel-export/
SSRS 2008 R2では、ページグループのPageNameプロパティを使用します: http://bidn.com/blogs/bretupdegraff/bidn-blog/234/new-features-of-ssrs-2008-r2-part-1-naming-Excel-sheets-when-exporting-reports
Excelへのエクスポート中にタブ名を追加するには、次の方法を使用しました。
PageName
プロパティに追加します。PageName
プロパティと同じになりました。レポートのページヘッダーまたはグループTableRow1にタブ名を付けて、各Excelシートの「A1」の位置にタブ名が表示されるようにします。次に、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
直接的な方法はありません。 XMLをエクスポートし、XSLTを正しくフォーマットして適切にフォーマットします(これは難しい方法です)。より簡単な方法は、明示的な改ページなしで複数のレポートを作成し、Excelでのみ各シートを1つのシートにエクスポートしてから、マージするスクリプトを作成することです。いずれにしても、後処理ステップが必要です。
Rectangleメソッド
ワークシート/改ページを実現する最も簡単で信頼性の高い方法は、長方形ツールを使用することです。
次のように、サブレポートでページを埋める長方形または単一の長方形内でページをグループ化します。
四角形を配置する最も簡単な方法は、四角形に配置するオブジェクトの周りに四角形を描画することです。
右クリックして、レイアウトメニューで、長方形を後ろに送ります。
すべてのオブジェクトを選択し、わずかにドラッグしますが、同じ場所に着地するようにしてください。それらはすべて長方形になります。
長方形のプロパティでは、長方形の開始または終了で改ページを行うように設定でき、ページの名前は式に基づくことができます。
ワークシートには、ページの名前と同じ名前が付けられます。
重複する名前には、角括弧で囲まれた番号が付きます。
注:名前が有効なワークシート名であることを確認してください。
Valentino Vrankenとraoによって提案されたより複雑な指示に従ってこれを行うことができましたが、ここではより単純なレポートのためのより単純なアプローチを示します。これにより、各テーブルが個別のシートに配置され、Excelで名前が付けられます。 PDFやWordのような他のエクスポートには影響を与えないようです。
最初にGeneral
の下にあるテーブルのTablix Properties
でAdd a page break before or after
を確認します。これにより、レポートがシートに分割されます。
次に、各テーブルでテーブルをクリックし、Grouping
ビューのRow Groups
側で、親グループまたはデフォルトの行グループを選択してから、Properties
ビューでGroup -> PageBreak
BreakLocation
をNone
に設定し、PageName
をシートの名前に設定します。
-sed-および-grep-を使用して、各ファイルのxmlヘッダーを置き換えるか、タグの出現の間に希望するシート名(sheetname1など)を指定して書き込むことができます。
<Sheetnames>?sheetname1?</Sheetnames>
オブジェクトのこのPageNameプロパティを使用すると、実際にはExcelでエクスポートされたシート名をカスタマイズできますが、レポートの名前空間定義も更新できるため、レポートをサーバーに再展開する機能に影響する可能性があることに注意してください。
BIDS内でこれを適用したレポートがあり、2008〜2010にネームスペースが更新されました。レポートを2008R2レポートサーバーに発行しようとすると、ネームスペースが無効で、すべてを元に戻す必要があるというエラーが発生しました。私の状況は独特であると確信しており、おそらくこれが常に起こるとは限りませんが、投稿する価値があると思いました。問題が見つかったら、このページは名前空間を元に戻すのに役立ちました(名前空間のリセットに加えて削除する必要があるタグがあります)。