web-dev-qa-db-ja.com

SSRSからのエクスポート中に名前付きExcelシートを取得する方法

1ページのレポートがExcelにエクスポートされるたびに、Excelのシートにはレポート名が付けられます。レポートに複数のページがある場合、シートにはsheet1、sheet2、...という名前が付けられます。SSRS2005でシート名を指定する方法はありますか?

解決策:いくつかのグーグルの後にこれを見つけました: SQL Server RS Excelのシート名の変更:QnD XSLT

動作する場合は、更新を試して投稿します。

33
rao

すべてのリンクが暗くなった場合に備えて、ネクロマンシング:

  1. レポートにグループを追加する
    また、ここでグループ式のソート順を設定することをお勧めします。これにより、タブがアルファベット順にソートされます(またはソートしたい場合でも)。

    1. Add a group to your report

    • 「Zeilengruppe」は「ターゲットグループ」を意味します
    • 「Gruppeneigenschaften」は「グループプロパティ」を意味します
  2. グループのプロパティで改ページを設定します 2. Set the page break in the group properties

    • 「Seitenumbruche」は「改ページ」を意味します
    • 「Zwischen den einzelnen Instanzen einer Gruppe」は「グループの個々のインスタンス間」を意味します
  3. 次に、TablixのPageNameを設定する必要がありますMember(group)、[〜# 〜] not [〜#〜]TablixのPageNameselfs
    正しいオブジェクトを取得した場合、タイトルボックスに「TablixMember」(ドイツ語ではTablix-Element)と表示されますプロパティグリッド。間違ったオブジェクトの場合は、only "table/tablix"(withoutmember)inプロパティグリッドのタイトルボックス。

  4. 注:Tablixメンバーの代わりにTablixを取得すると、すべてのタブに同じタブ名が付けられ、その後に(tabNum)!その場合は、問題が何であるかがわかります。 Tablix Member

MultiTabExcelFile

22
Stefan Steiger

別のシートにエクスポートしてカスタム名を使用するには、SQL Server 2008 R2以降、グループ化、改ページ、およびPageNameプロパティの組み合わせを使用してこれを実行できます。グループの。

また、特定の名前を付けたいのが1枚だけのシートの場合は、レポートのInitialPageNameプロパティを試してください。

詳細な説明については、こちらをご覧ください: http://blog.hoegaerden.be/2011/03/23/where-the-sheets-have-a-name-ssrs-Excel-export/

15

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

5
Stas Slabko

Excelへのエクスポート中にタブ名を追加するには、次の方法を使用しました。

  • レポートデザインウィンドウで、Tablixオブジェクトを選択します。
  • Tablixオブジェクトのプロパティウィンドウを開きます。
  • 必要なタブ名をPageNameプロパティに追加します。
  • レポートを実行する
  • レポートをExcelにエクスポートします。
  • これで、ワークシート名はTablixオブジェクトのPageNameプロパティと同じになりました。
3
Vivek Arkalgud

レポートのページヘッダーまたはグループ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
2
James Kuchynski

直接的な方法はありません。 XMLをエクスポートし、XSLTを正しくフォーマットして適切にフォーマットします(これは難しい方法です)。より簡単な方法は、明示的な改ページなしで複数のレポートを作成し、Excelでのみ各シートを1つのシートにエクスポートしてから、マージするスクリプトを作成することです。いずれにしても、後処理ステップが必要です。

1
zzawaideh

Rectangleメソッド

ワークシート/改ページを実現する最も簡単で信頼性の高い方法は、長方形ツールを使用することです。

次のように、サブレポートでページを埋める長方形または単一の長方形内でページをグループ化します。

  • 四角形を配置する最も簡単な方法は、四角形に配置するオブジェクトの周りに四角形を描画することです。

  • 右クリックして、レイアウトメニューで、長方形を後ろに送ります。

  • すべてのオブジェクトを選択し、わずかにドラッグしますが、同じ場所に着地するようにしてください。それらはすべて長方形になります。

長方形のプロパティでは、長方形の開始または終了で改ページを行うように設定でき、ページの名前は式に基づくことができます。

ワークシートには、ページの名前と同じ名前が付けられます。

重複する名前には、角括弧で囲まれた番号が付きます。

注:名前が有効なワークシート名であることを確認してください。

1

Valentino Vrankenとraoによって提案されたより複雑な指示に従ってこれを行うことができましたが、ここではより単純なレポートのためのより単純なアプローチを示します。これにより、各テーブルが個別のシートに配置され、Excelで名前が付けられます。 PDFやWordのような他のエクスポートには影響を与えないようです。

最初にGeneralの下にあるテーブルのTablix PropertiesAdd a page break before or afterを確認します。これにより、レポートがシートに分割されます。

次に、各テーブルでテーブルをクリックし、GroupingビューのRow Groups側で、親グループまたはデフォルトの行グループを選択してから、PropertiesビューでGroup -> PageBreakBreakLocationNoneに設定し、PageNameをシートの名前に設定します。

1
LostNomad311

-sed-および-grep-を使用して、各ファイルのxmlヘッダーを置き換えるか、タグの出現の間に希望するシート名(sheetname1など)を指定して書き込むことができます。

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

オブジェクトのこのPageNameプロパティを使用すると、実際にはExcelでエクスポートされたシート名をカスタマイズできますが、レポートの名前空間定義も更新できるため、レポートをサーバーに再展開する機能に影響する可能性があることに注意してください。

BIDS内でこれを適用したレポートがあり、2008〜2010にネームスペースが更新されました。レポートを2008R2レポートサーバーに発行しようとすると、ネームスペースが無効で、すべてを元に戻す必要があるというエラーが発生しました。私の状況は独特であると確信しており、おそらくこれが常に起こるとは限りませんが、投稿する価値があると思いました。問題が見つかったら、このページは名前空間を元に戻すのに役立ちました(名前空間のリセットに加えて削除する必要があるタグがあります)。

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

0
svenGUTT