ページ分割されたレポートを Microsoft Excel にエクスポートする (Report Builder)

適用対象: Microsoft レポート ビルダー (SSRS) Power BI Report Builder SQL Server Data Tools のレポート デザイナー

Power BI または SQL Server Reporting Services (SSRS) を使用する場合は、Excel 表示拡張機能を使用して、ページ分割されたレポートを Microsoft Excel にエクスポートできます。 Excel でエクスポートされた列の幅は、レポート内の列の幅と同じになります。 ただし、レポート データを再構築したり、ブック内でさらに処理したりできます。

この記事では、対話型機能のレンダラーのサポートやセル内のデータの配置など、エクスポート プロセスのさまざまな側面について説明します。 Excel とレンダラーの制限事項についても説明します。

エクスポート形式

Excel 表示拡張機能は、レポートを Office Open XML 形式にエクスポートします。 レンダラーによって生成されるファイルのコンテンツ タイプは application/vnd.openxmlformats-officedocument.spreadsheetml.sheet で、ファイル拡張子は.xlsx。

デバイス情報設定を変更することによって、このレンダラーの既定の設定の一部を変更することができます。 詳細については、「Excel デバイス情報設定」を参照してください。

Excel 形式でレポートをエクスポートする方法については、「ページ分割されたレポートのエクスポート (レポート ビルダー)」を参照してください

重要

種類 Stringのレポート パラメーターを定義すると、任意の値を受け取ることができるテキスト ボックスがユーザーに表示されます。 レポート パラメーターがクエリ パラメーターに関連付けられていない場合、パラメーター値がレポートに含まれていると、セキュリティ上のリスクがあります。 具体的には、レポート ユーザーは、式の構文、スクリプト コード、または URL をパラメーター値として入力できます。 その結果、ユーザーは悪意のあるスクリプトや悪意のあるリンクを入力する可能性があります。 レポートが Excel にエクスポートされている場合は、他のユーザーがレポートを表示できます。 レンダリングされたパラメーターの内容を選択すると、悪意のあるスクリプトを誤って実行したり、悪意のあるサイトにアクセスしたりするリスクがあります。

悪意のあるスクリプトを誤って実行するリスクを軽減するためには、信頼されたソースのレポートしか開かないようにする必要があります。 レポートのセキュリティ保護の詳細については、「レポートとリソースの保護」を参照してください。

Excel の制限事項

Excel では、Excel とそのファイル形式の機能により、エクスポートされたレポートに制限があります。 最も重要な制限は、次のとおりです。

  • 最大列幅は 255 文字または 1726.5 ポイントです。 レンダラーでは、列幅がこの制限を下回っているかどうかは検証されません。
  • セル内の最大文字数は 32,767 文字です。 この制限を超えた場合は、レンダラーによってエラー メッセージが表示されます。
  • 行の高さの最大値は 409 ポイントです。 行の内容によって行の高さが 409 ポイントを超える場合、Excel セルには最大 409 ポイントまでのテキストの一部が表示されます。 残りのセルの内容は、最大 32,767 文字まで、セル内に残ります。
  • 行の最大高さは 409 ポイントであるため、レポート内のセルの定義済みの高さが 409 ポイントを超える場合、Excel はセルの内容を複数の行に分割します。
  • ワークシートの最大数は Excel で定義されていません。 ただし、メモリやディスク領域などの外部要因によって、制限が適用される可能性があります。
  • Excel では、アウトラインの入れ子が 7 レベルまで許容されます。
  • アウトラインを使用できるかどうかは、別のアイテムの表示を制御するレポート アイテムの位置によって異なります。 アウトラインは、次の場合には使用できません。
    • コントロール レポート アイテムは、展開または折りたたまれているアイテムを基準にして前または次の行に含まれません。
    • コントロール レポート アイテムは、展開または折りたたまれているアイテムの列にありません。

Excel の制限の詳細については、「Excel の仕様と制限」を参照してください。

テキスト ボックスとテキスト

テキスト ボックスとテキストには、次の制限事項が適用されます。

  • テキスト ボックスの値が式である場合、その値は Excel の数式には変換されません。 各テキスト ボックスの値は、レポートの処理時に評価されます。 評価された式は、Excel の各セルのコンテンツとしてエクスポートされます。
  • 各テキスト ボックスは、1 つの Excel セル内にレンダリングされます。 フォント サイズ、フォントフェイス、装飾、およびフォント スタイルの場合、書式設定はセル テキストでサポートされています。
  • Excel では、オーバーライン テキストの書式設定はサポートされていません。
  • Excel では、セルの左右に約 3.75 ポイントの既定の余白が追加されます。 テキスト ボックスの埋め込みが 3.75 ポイント未満で、テキストを収めるのに十分な幅がない場合、テキストは Excel の新しい行に折り返される可能性があります。 この問題を回避するには、レポートのテキスト ボックスの幅を大きくしてください。

イメージ

画像には、次の制限事項が適用されます。

  • レポート アイテムの背景画像は無視されます。Excel では、セルごとの背景イメージはサポートされていません。
  • Excel 表示拡張機能では、レポート本文の背景画像のみがサポートされます。 レポート本文の背景画像をレポートに表示する際は、画像がワークシートの背景画像としてレンダリングされます。

四角形

四角形には次の制限が適用されます。レポート フッターの四角形は Excel にエクスポートされません。 ただし、レポート本文の四角形、Tablix セル、およびその他の同様のコンポーネントは、Excel セルの範囲としてレンダリングされます。

レポートのヘッダーとフッター

レポートのヘッダーとフッターには、次の制限事項が適用されます。

  • Excel のヘッダーとフッターでサポートされる最大文字数は 256 文字 (マークアップを含む) です。 文字列は、表示拡張機能により 256 文字で切り捨てられます。
  • SSRS では、レポート ヘッダーとフッターの余白はサポートされていません。 Excel では、これらの余白の値は 0 に設定されます。
  • Excel にエクスポートされたレポートを印刷すると、プリンターの設定がレンダリングに影響する可能性があります。 具体的には、レポート内のヘッダーまたはフッターに複数のデータ行が含まれている場合、印刷結果に複数の行が表示されないことがあります。
  • ヘッダーまたはフッター内のテキスト ボックスは書式設定を維持しますが、Excel にエクスポートしても配置は維持されません。 レポートを Excel に表示すると、先頭と末尾のスペースがトリミングされ、配置が変更されます。

結合されたセル

セルの結合には、次の制限事項が適用されます。セルが結合されると、テキストが正しくラップされません。

Excel レンダラーは、主にレイアウト レンダラーとして機能します。 その目的は、表示されたレポートのレイアウトを、可能であれば Excel ワークシート内で同じようにレプリケートすることです。 その結果、レポート レイアウトを保持するために、ワークシート内のセルが結合される可能性があります。 Excel の並べ替え機能では、並べ替えを正しく機能させるために特定の方法でセルを結合する必要があるため、結合されたセルが問題を引き起こす可能性があります。 たとえば、セル範囲を並べ替える場合、Excel では、範囲内の結合された各セルのサイズが、範囲内の他の結合セルと同じサイズである必要があります。

Excel ワークシート内の結合セルの数を減らすと、ワークシートの並べ替えが簡単になります。 次の点は、エクスポート プロセス中に結合されるセルの数を最小限に抑えるのに役立ちます。

  • セルが結合される最も一般的な理由は、項目が左または右に配置されていないことです。 通常は、すべてのレポート アイテムの左端と右端を並べて、アイテムの幅を同じにすることで、問題を解決できます。
  • すべての項目を揃えても、まれに一部の列がマージされます。 レンダリング プロセス中に内部単位の変換と丸めを行うと、セルが結合される可能性があります。 レポート定義言語 (RDL) では、インチ、ピクセル、センチメートル、ポイントなど、さまざまな単位で位置とサイズを指定できます。 内部的には、Excel ではポイントが使用されます。 その結果、インチとセンチメートルはレンダリング中にポイントに変換されます。 レンダリング中の変換操作と丸めの誤りを最小限に抑えるには、すべての測定値をポイント全体で指定することを検討してください。 1 インチは 72 ポイントです。

レポートの行グループと列グループ

行グループまたは列グループを含むレポートは、Excel にエクスポートするときに空のセルを含みます。 次の図は、通勤距離の行をグループ化するレポートを示しています。 通勤距離にはそれぞれ複数の顧客を含めることができます。

SSRS Web ポータルのレポートを示すスクリーンショット。レポート内の各通勤距離行には、複数の顧客行が含まれます。

レポートを Excel にエクスポートすると、[通勤距離] 列の 1 つのセルにのみ通勤距離表示されます。 レポートをデザインするときに、行グループの上部、中央、または下部にテキストを配置できます。 この配置によって、値がエクスポートされたレポートの最初のセル、中央セル、または最後のセルのどちらにあるかが決まります。 グループ内のその列の他のセルは空です。 顧客名を含む [名前] 列には空のセルがありません。

次の図は、レポートを Excel にエクスポートした後のレポートを示しています。 空のセルはイメージ内で灰色で網掛けされますが、その網かけはエクスポートされたレポートの一部ではありません。

Excel でエクスポートされたレポートのスクリーンショット。各距離行は、複数の顧客の行をカバーする範囲の最初にあります。範囲内の他のセルは灰色です。

行グループまたは列グループを含むレポートを Excel にエクスポートした後は、エクスポートしたデータをピボットテーブルに表示する前に、レポートを変更する必要があります。 不足しているセルにグループ値を追加する必要があります。 ワークシートは、すべてのセルに値を含むフラット テーブルになります。 次の図は、更新されたワークシートを示しています。

Excel でエクスポートされたレポートのスクリーンショット。空のセルはありません。各行には、距離の値と名前が含まれます。

レポート データをさらに分析するために Excel にエクスポートする特定の目的でレポートを作成する場合は、レポート内の行または列をグループ化しないことを検討してください。

Excel レンダラー

次の XML コードは、RSReportServer 構成ファイルと RSReportDesigner 構成ファイル内の Excel 表示拡張機能の要素を示しています。

<Extension Name="EXCELOPENXML" Type="Microsoft.ReportingServices.Rendering.ExcelOpenXmlRenderer.ExcelOpenXmlRenderer,Microsoft.ReportingServices.ExcelRendering"/>

Excel レンダラーには、次の既定値と制限があります。

プロパティ
ワークシートあたりの最大列数 16,384
ワークシートあたりの最大行数 1,048,576
ワークシート内で使用できる色の数 約 1,600 万色 (24 ビット カラー)
ZIP 圧縮ファイル ZIP 圧縮
既定のフォント ファミリ Calibri
既定のフォント サイズ 11 ポイント
既定の行の高さ 15 ポイント

レポートでは行の高さが明示的に設定されるため、既定の行の高さは、Excel へのエクスポート時に自動的にサイズ変更される行にのみ影響します。

Excel のレポート アイテム

レポートを Excel にエクスポートすると、サブレポート、四角形、レポート本文、およびデータ領域という Excel セルの範囲として、次のコンポーネントが表示されます。 テキスト ボックス、画像、グラフ、データ バー、スパークライン、マップ、ゲージ、インジケーターは、1 つの Excel セル内にレンダリングされます。 ただし、そのセルは他のセルと結合される可能性があります。 レポートの残りの部分のレイアウトによって、マージが行われるかどうかが決まります。

画像、グラフ、スパークライン、データ バー、マップ、ゲージ、インジケーター、および線は、1 つの Excel セル内に配置されますが、セル グリッドの上に配置されます。 線はセル罫線としてレンダリングされます。

グラフ、スパークライン、データ バー、マップ、ゲージ、インジケーターはイメージとしてエクスポートされます。 表示されているデータは、それらと共にエクスポートされません。 データは、レポート内のデータ領域の列または行に含めない限り、Excel ブックでは使用できません。

グラフ、スパークライン、データ バー、マップ、ゲージ、インジケーターのデータを操作する場合は、レポートを CSV ファイルにエクスポートするか、レポートから Atom に準拠したデータ フィードを生成できます。 詳細については、「ページ分割されたレポートを CSV ファイルにエクスポートする (レポート ビルダー)」および「レポートからデータ フィードを生成する (レポート ビルダー)」を参照してください

ページ サイズ

Excel 表示拡張機能は、ページの高さと幅の設定を使用して、Excel ワークシートの用紙設定を決定します。 エクセルでは、PageHeight プロパティと PageWidth プロパティの設定が、最も一般的ないずれかの用紙サイズと比較されます。

一致するものが見つからなかった場合は、プリンターの既定のページ サイズが使用されます。 ページ幅がページの高さより小さい場合、向きが設定 Portrait されます。 それ以外の場合、向きは Landscape.

ワークシートのタブ名

レポートを Excel にエクスポートすると、改ページによってレポート ページが作成され、各ページが別のワークシートにエクスポートされます。 レポートの最初のページ名を指定すると、Excel ブックの最初のワークシートにこの名前が付けられます。 ブック内の各ワークシートには一意の名前が必要であるため、各ワークシートのページ名に 2 から 1 ずつインクリメントされる整数が追加されます。 たとえば、最初のページ名が会計年度別の売上レポートの場合、2 番目のワークシートは会計年度別の売上レポート (2) という名前になります。 3 つ目は、会計年度別の売上レポート (3) という名前です。

改ページによって作成されたすべてのレポート ページに新しいページ名が指定されている場合、各ワークシートには関連付けられたページ名が付けられます。 ただし、これらのページ名が一意でない場合、ワークシートには最初のページ名と同じ名前が付けられます。 たとえば、2 つのグループのページ名が [Sales for NW] である場合、1 つのワークシート タブには名前 "Sales for NW"、もう 1 つは Sales for NW (2) です

レポートに改ページの最初のページ名またはページ名が指定されていない場合、ワークシート のタブには既定のシート 1シート 2 などの名前が付けられます。

SSRS には、レポート、データ領域、グループ、および四角形に対して設定できるプロパティが用意されています。 これらのプロパティは、必要な方法で Excel にエクスポートできるレポートを作成するのに役立ちます。 詳細については、「ページ分割されたレポートの改ページ位置の変更 (Microsoft レポート ビルダー)」を参照してください

ドキュメントのプロパティ

Excel レンダラーでは、次のメタデータが Excel ファイルに書き込まれます。

レポート要素のプロパティ 説明
作成済み レポート実行の日付と時刻 (ISO 形式の日付/時刻値)。
Author Report.Author
説明 Report.Description
LastSaved レポート実行の日付と時刻 (ISO 形式の日付/時刻値)。

ページのヘッダーとフッター

ページ ヘッダーのレンダリング方法は、デバイス情報 SimplePageHeaders の設定によって異なります。

  • 既定では、 SimplePageHeaders False に 設定されています。 この場合、ヘッダーは Excel ワークシートのセル グリッド (そのグリッドの上部) にレンダリングされます。
  • SimplePageHeaders True設定すると、ヘッダーは Excel ワークシートのヘッダー セクションに表示されます。

ページ フッターは、設定の値に関係なく、常に Excel ワークシート フッター セクションに SimplePageHeaders レンダリングされます。

Excel の制限により、Excel のヘッダーセクションとフッター セクションに表示できるレポート アイテムの種類はテキスト ボックスだけです。

Excel のヘッダー セクションとフッター セクションでサポートされる最大文字数は 256 文字 (マークアップを含む) です。 この制限を超えた場合、Excel レンダラーはヘッダー文字列またはフッター文字列の末尾から始まるマークアップ文字を削除して、合計文字数を減らします。 すべてのマークアップ文字が削除され、長さが最大値を超える場合、文字列は末尾から切り捨てられます。

SimplePageHeader の設定

  • デバイス情報SimplePageHeadersの設定が False設定されている場合、ヘッダーを含むワークシートの行はロックされた行になります。 Excel のウィンドウ枠は固定することも、固定を解除することもできます。

  • タイトルを印刷するための Excel 設定がこれらのヘッダー行を印刷するように構成されている場合、これらのヘッダーは、ドキュメント マップの表紙を除くすべてのワークシート ページに印刷されます。

  • レポート ビルダー ページ ヘッダー プロパティ ウィンドウ:

    • [最初のページに印刷] が選択されていない場合、ヘッダーは最初のレポート ページに追加されません。
    • [最後のページに印刷] が選択されていない場合、ヘッダーは最後のレポート ページに追加されません。

対話機能

Excel では、いくつかの対話型要素がサポートされています。 以降のセクションでは、対話機能について説明します。

表示と非表示

非表示のレポート アイテムと表示されたレポート アイテムをエクスポートするときに管理する方法には制限があります。 展開および折りたたみ可能なレポート アイテムを含むグループ、行、列は、Excel のアウトラインとして表示されます。 ただし、Excel では、行または列全体で行と列を展開したり折りたたんだりします。 その結果、折りたたむ意図のないレポート アイテムを折りたたむことができます。 また、Excel のアウトライン記号は、アウトラインが重なって乱雑になる可能性があります。

これらの問題に対処するために、Excel 表示拡張機能では次のアウトラインルールが使用されます。

  • 左上隅に最も近い展開および折りたたみが可能なレポート アイテムは、Excel でも展開および折りたたみを行うことができます。 その左上のアイテムと縦または横のスペースを共有する他のレポート アイテムは、Excel では展開または折りたたみできません。

  • データ領域が行または列によって折りたたみ可能かどうかを判断するために、2 つの項目の位置が考慮されます。

    • 表示を制御するレポート アイテム
    • 展開および折りたたみ可能なデータ領域

    適用されるルールは、次の 2 つの項目の相対位置によって異なります。

    • 表示を制御する項目が展開および折りたたみを行う項目の上または下に表示される場合、項目は行ごとに折りたたまれます。
    • 表示を制御する項目が展開および折りたたみを行う項目の横に表示される場合、項目は列ごとに折りたたまれます。
    • 表示を制御する項目が、展開および折りたたみを行う項目の上と横に同じ距離で表示される場合、項目は行ごとに折りたたまれます。
  • レンダリングされたレポートに自動小計が配置される場所を決定するために、表示拡張機能は動的メンバーの最初のインスタンスを調べます。 ピア静的メンバーが直上に表示される場合、動的メンバーは小計であると見なされます。 これが集計データであることを示すためのアウトラインが設定されます。 動的メンバーに対応する静的なメンバーが存在しなかった場合、最初の動的メンバーが小計と見なされます。

  • Excel の制限により、アウトラインは最大 7 レベルまで入れ子にすることができます。

見出しマップ

レポートにドキュメント マップ ラベルが存在する場合、ドキュメント マップは Excel の表紙ワークシートとして表示されます。 ワークシートはドキュメント マップという名前で、ブックの最初のタブ位置にあります。

レポート アイテムまたはグループのプロパティによって DocumentMapLabel 、ドキュメント マップ内のラベルが決まります。 ラベルは、最初の列の最初の行から始まる、レポートに表示される順序で一覧表示されます。 各ドキュメント マップ ラベルのセルは、レポートでの見出しの階層に合わせてインデントされます。 それぞれのインデント レベルは、ラベルを後続の列に配置することによって表現されます。 Excel でサポートされるアウトラインの入れ子レベルは、最大 256 です。

ドキュメント マップのアウトラインは、折りたたみ可能な Excel アウトラインとしてレンダリングされます。 アウトライン構造は、ドキュメント マップの入れ子構造と一致します。 アウトラインの展開と折りたたみは、第 2 レベルからとなります。

マップのルート ノードは、レポート名、または .rdl 拡張子のないファイル名です。 その名前は対話型ではありません。

レンダラーは、ドキュメント マップ リンクに 10 ポイントの Arial フォントを使用します。

テキスト ボックスに表示されるドリルスルー リンクは、テキストが表示されるセルに Excel ハイパーリンクとして表示されます。 画像またはグラフのドリルスルー リンクは、イメージ上の Excel ハイパーリンクとしてレンダリングされます。 ドリルスルー リンクを選択すると、クライアントの既定のブラウザーが開き、ターゲットの HTML ビューに移動します。

テキスト ボックスに表示されるハイパーリンクは、テキストが表示されるセルに Excel ハイパーリンクとして表示されます。 イメージまたはグラフのハイパーリンクは、イメージ上の Excel ハイパーリンクとしてレンダリングされます。 ハイパーリンクを選択すると、クライアントの既定のブラウザーが開き、ターゲット URL に移動します。

対話的な並べ替え

レポート ビルダーでは、レポート内のボタンを選択して、テーブルとマトリックスで行と列を表示する順序を変更できます。 Excel では、この種類の対話型並べ替えはサポートされていません。

ブックマーク

テキスト ボックス内のブックマーク リンクは、テキストが表示されるセルに Excel ハイパーリンクとして表示されます。 画像またはグラフのブックマーク リンクは、イメージ上の Excel ハイパーリンクとしてレンダリングされます。 ブックマークを選択すると、ブックマークされたレポート アイテムが表示される Excel セルに移動します。

実行時にレポートを変更する

一部のシナリオでは、複数の形式にレンダリングするレポートが必要です。 必要なすべての形式で目的の方法で表示されるレポート レイアウトを作成できない場合は、組み込みのグローバル値を RenderFormat 使用できます。 この値を使用すると、実行時にレポートの外観を条件付きで変更できます。 これにより、使用するレンダラーに応じてレポート アイテムを非表示または表示し、各形式で最適な結果を得ることができます。 詳細については、「ページ割り付けレポートの組み込み Globals および ユーザー リファレンス (Report Builder)」を参照してください。

Excel へのエクスポートのトラブルシューティング

仮想サービス アカウントと実行アカウントを使用すると、Excel へのエクスポートが失敗する可能性があります。 具体的には、レジストリ キーのアクセスを拒否できます。

この問題を回避するには、仮想ユーザー アカウント ブランチの影響を受けるレジストリ エントリの実行アカウントに読み取りアクセス許可を付与します。 たとえば、考えられるレジストリ エントリの 1 つは HKEY_USERS\S-1-5-80-4050220999-2730734961-1537482082-519850261-379003301\Software\Microsoft\Avalon.Graphics です。 その後、コンピューターを再起動する必要があります。