次の方法で共有


ページ分割されたレポートを 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 文字または 1,726.5 ポイントです。 レンダラーでは、列幅がこの制限を下回っているかどうかは検証されません。
  • セル内の最大文字数は 32,767 文字です。 この制限を超えた場合は、レンダラーによってエラー メッセージが表示されます。
  • 行の高さの最大値は 409 ポイントです。 行の内容が多すぎて行の高さが 409 ポイントを超えた場合、Excel のセルには最大 409 ポイントまでのテキストの部分が表示されます。 セルの内容の残りの部分は、セル内にまだあります (最大文字数である 32,767 文字まで)。
  • 行の高さの最大値は 409 ポイントなので、レポートで定義されているセルの高さが 409 ポイントより大きい場合は、セルの内容が複数の行に分割されます。
  • 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 では、これらの余白の値はゼロに設定されます。
  • 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 セル内にレンダリングされます。 ただし、このセルは他のセルと結合される場合があります。 レポートの残りの部分のレイアウトによって、結合されるかどうかが決まります。

画像、グラフ、スパークライン、データ バー、マップ、ゲージ、インジケーター、線は、単一の Excel セル内で、セル グリッドの一番上に来るように配置されます。 線はセル罫線としてレンダリングされます。

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

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

ページ サイズ

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

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

ワークシートのタブ名

レポートを Excel ファイルにエクスポートすると、改ページによってレポート ページが生成され、各ページは別々のワークシートにエクスポートされます。 レポートの最初のページ名を指定した場合、Excel ブックの最初のワークシートにこの名前が使用されます。 ブック内の各ワークシートは一意の名前を使用する必要があるため、ワークシートごとに 2 から開始され昇順に 1 ずつ増加する整数がページ名に追加されます。 たとえば、最初のページ名が "会計年度ごとの売り上げレポート" である場合、2 番目のワークシート名は "会計年度ごとの売り上げレポート (2)" になります。 3 番目のワークシート名は "会計年度ごとの売り上げレポート (3)" となり、以降も同様です。

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

レポートに、最初のページ名も改ページに関するページ名も指定されていない場合、ワークシートのタブには、"Sheet1""Sheet2" などの既定の名前が使用されます。

SSRS には、レポート、データ領域、グループ、四角形に対して設定できるプロパティが用意されています。 これらのプロパティを使用すると、目的の方法で Excel にエクスポートできるレポートを作成できます。 詳細については、「改ページ対応レポートでの改ページ (Microsoft レポート ビルダー)」を参照してください。

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

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

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

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

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

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

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

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

Excel のヘッダー セクションとフッター セクションでサポートされる最大文字数は 256 文字 (マークアップを含む) です。 この制限を超えた場合、Excel レンダラーは、文字数の合計を減らすために、ヘッダーまたはフッター文字列の終端位置を起点として、マークアップ文字を削除します。 マークアップ文字をすべて削除しても最大文字数を超えていた場合、文字列が終端位置を起点として切り詰められます。

SimplePageHeader の設定

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

  • タイトルを印刷するための 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 です。 その後、コンピューターを再起動する必要があります。