ActiveReportsのレポートは、WordRenderingExtensionクラスを使用してMSWordのネイティブ形式で描画することができます。ページレポート/RDLレポートは、FileFormatプロパティを使用することで、Officeオープンxml (OOXML)形式(.Docx)やWord HTML形式(.Doc)でエクスポートすることができます。
Officeオープンxml形式(.Docx)は以下のシナリオでの使用に適しています。
-
エクスポートしたレポートを複数のアプリケーションで開く: エクスポートしたWordドキュメントは、次のいずれかのアプリケーションで開くか、修正することができます。
- エクスポート後にレポートをカスタマイズする: エクスポートしたドキュメントにレポート要素の位置と配置を実装するには、Officeオープンxml (.Docx)形式を使用します。OOXML形式は、エクスポートしたドキュメントの編集において自然なドキュメントフローを提供します。
- Word Automation機能を使用する: OOXML(.Docx)形式のWord Automation機能を使用することで、これまで手動で調整する必要のあったエクスポート後のドキュメントのタスクが自動処理されます。ページヘッダ、ページフッタ、式、見出しレベル、あるいは目次といったレポート要素は自動でOOXML(.Docx)形式に変換されます。
- 互換モードを設定する: DocumentCompatibleVersionプロパティを使用することで、レポートをMS Word 2007-2010、およびWord2013と互換性のあるWordドキュメントとして描画することができます。
以下は、レポートをMicrosoft Word形式でエクスポートする手順の一例です。
- 新規プロジェクトとして「ページレポート(またはRDLレポート)アプリケーション」を作成します。詳細な手順については、「ActiveReportsアプリケーションを追加する」を参照してください。
- プロジェクトに「GrapeCity.ActiveReports.Export.Word.dll」アセンブリを追加します。
- Form.cs(またはForm.vb)を開き、タイトルバーをダブルクリックしてForm_Loadイベントを作成します。
- 以下のコードをForm_Loadイベント内に追加し、レポートをOOXML形式、またはHTML形式でエクスポートします。
メモ: レポートをMicrosoft Word 97-2003形式(.Doc)でエクスポートするには、FileFormatプロパティを「OOXML」から「HTML」に変更します。
wordSetting.FileFormat = GrapeCity.ActiveReports.Export.Word.Page.FileFormat.HTML
レポートを.Docx形式にエクスポートするには
Visual Basicコード(Form_Loadイベント内に貼り付けます。) |
コードのコピー
|
' 描画するページレポートを指定します。
Dim report As New GrapeCity.ActiveReports.PageReport()
Dim reportDocument As New GrapeCity.ActiveReports.Document.PageDocument(report)
' 出力先のディレクトリを作成します。
Dim outputDirectory As New System.IO.DirectoryInfo("C:\MyWord")
outputDirectory.Create()
' エクスポートの各種設定を行います。
Dim wordSetting As New GrapeCity.ActiveReports.Export.Word.Page.Settings()
' FileFormatプロパティを.OOXMLに設定します。
wordSetting.FileFormat = GrapeCity.ActiveReports.Export.Word.Page.FileFormat.OOXML
' RenderingExtensionを使用し、レポートをエクスポートします。
Dim wordRenderingExtension As New GrapeCity.ActiveReports.Export.Word.Page.WordRenderingExtension()
Dim outputProvider As New GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider(outputDirectory, "Sample")
' 出力ファイルがすでに存在する場合は上書きします。
outputProvider.OverwriteOutputFile = True
reportDocument.Render(wordRenderingExtension, outputProvider, wordSetting)
|
C#コード(Form_Loadイベント内に貼り付けます。) |
コードのコピー
|
// 描画するページレポートを指定します。
GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport();
GrapeCity.ActiveReports.Document.PageDocument reportDocument = new GrapeCity.ActiveReports.Document.PageDocument(report);
// 出力先のディレクトリを作成します。
System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(@"C:\MyWord");
outputDirectory.Create();
// エクスポートの各種設定を行います。
GrapeCity.ActiveReports.Export.Word.Page.Settings wordSetting = new GrapeCity.ActiveReports.Export.Word.Page.Settings();
// FileFormatプロパティを.OOXMLに設定します。
wordSetting.FileFormat = GrapeCity.ActiveReports.Export.Word.Page.FileFormat.OOXML;
// RenderingExtensionを使用し、レポートをエクスポートします。
GrapeCity.ActiveReports.Export.Word.Page.WordRenderingExtension wordRenderingExtension = new GrapeCity.ActiveReports.Export.Word.Page.WordRenderingExtension();
GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider(outputDirectory, "Sample");
// 出力ファイルがすでに存在する場合は上書きします。
outputProvider.OverwriteOutputFile = true;
reportDocument.Render(wordRenderingExtension, outputProvider, wordSetting);
|
Wordエクスポート(描画拡張機能)のプロパティ
ActiveReportsには、Microsoft Wordへのレポートのエクスポートを制御するオプションが用意されています。
共有のプロパティ (HTML形式 および OOXML形式)
プロパティ |
説明 |
Author |
ドキュメントの作成者の名前を入力します。この値は、Microsoft Wordアプリケーションの[ファイルのプロパティ]ダイアログの[概要]タブにある[作成者]フィールドに表示されます。 |
FileFormat |
エクスポートされたドキュメントのフォーマットを「Office Open XML (OOXML)形式(.Docx)」、または「Word HTML形式(.Doc)」に指定します。デフォルトのフォーマットは「Word HTML形式」です。 |
Title |
ドキュメントのタイトルを入力します。この値は、Microsoft Wordアプリケーションの[ファイルのプロパティ]ダイアログの[概要]タブにある[タイトル]フィールドに表示されます。 |
HTML 形式
プロパティ |
説明 |
BaseUrl |
レポートで使用される相対ハイパーリンクのベースURLを入力します。この値は、Microsoft Wordアプリケーションの[ファイルのプロパティ]ダイアログの[概要]タブにある[ハイパーリンクの基点]フィールドに表示されます。 |
Generator |
描画したWordドキュメントのドキュメント生成の識別子を設定します。 |
PageHeight |
描画したWordドキュメントのレポートのページの高さの値(インチ単位)を入力します。このプロパティの値は、元のレポートの設定をオーバーライドしています。 |
PageWidth |
Wordドキュメントに描画したレポートのページの幅の値(インチ単位)を入力します。このプロパティの値は、元のレポートの設定をオーバーライドしています。 |
UseMhtOutput |
Wordドキュメントを生成する際にMHT出力を使用するかどうかを指定します。
|
OOXML 形式
プロパティ |
説明 |
CompanyName |
描画したWordドキュメントのプロパティダイアログのCompanyフィールドに表示される組織名、あるいは会社名を設定します。 |
DocumentCompatibilityVersion |
ドキュメントの互換モードを「Microsoft Word 2013」、または「Microsoft Word 2007-2010」に設定します。デフォルトでは「Microsoft Word2007」に設定されています。
|
DpiX |
Microsoft Wordアプリケーションにある画像の水平解像度を設定します。デフォルトでは「96」に設定されています。 |
DpiY |
Microsoft Wordアプリケーションにある画像の垂直解像度を設定します。デフォルトでは「96」に設定されています。 |
PageOrientation |
エクスポートしたドキュメントの印刷の向き(「縦」あるいは「横」)を指定します。
|
PaperSize |
ページの用紙サイズを設定します。 |
Password |
描画したWordドキュメントを開く際に必要となるパスワードを設定します。 |
ReadOnlyRecommended |
MicrosoftWordドキュメントを開くたびに、読み取り専用であることを示すメッセージを表示させるか否かを設定します。 |
WritePassword |
描画したWordドキュメントの変更を保存する際に必要となる書き込みパスワードを設定します。 |
TOCAutoUpdate |
Wordドキュメントを開く際にTableOfContentsコントロールを自動更新します。デフォルトでは「False」に設定されています。 |
制限事項
HTML形式
- コントロールの背景色はWordドキュメントにエクスポートされますが、本体、ページヘッダ、ページフッタなどのセクションの背景色はエクスポートされません。
- TableやTablixのようなデータ領域に埋め込まれたCheckBoxおよびTextBoxコントロールでは、背景イメージはサポートされません。
- レポート、List、Container、Shape、FormattedText、Table、Tablixのレポートコントロールでは、背景イメージはサポートされません。
- TableまたはTablixのKeepTogetherプロパティはサポートされません。
- LineコントロールのLineStyleプロパティを「Double」に設定した場合、罫線は「Solid」(実線)として表示されます。
- ShapeおよびContainerコントロールのBorderStyleプロパティを「Double」に設定した場合、罫線は「Solid」(実線)として表示されます。
- 一部のFormattedTextタグはWordにエクスポートされません(例:<b>bi</b>、<s>es</s>)
- サポートされる画像配置はデフォルトのもの(HorizontalAlignment: Left, VerticalAlignment: Top)のみです。
- CheckBoxコントロールのボックスおよびチェックの色は、HTMLに反映されません。
OOXML形式
レポートプロパティ
- レポートのスタイルシートのLineSpacingプロパティ、レポートのStartPageNumberプロパティ、ページヘッダ、およびページフッタのPrintOnLastPageプロパティはサポートされません。
- ページレポートでは、NumberingStyleプロパティの一部(見出しマップの設定)がサポートされません。サポートされるのは、NumberingStyleプロパティの「Decimal」、「DecimalZero」、「LowerLetter」、「UpperLetter」、「LowerRoman」、「UpperRoman」です。
- BackgroundImageのBackgroundRepeatプロパティは、ページレポートのページ領域、およびRDLレポートの本体領域ではサポートされません。
- RDLレポートでは、ページヘッダ、あるいはページフッタのBackgroundプロパティ、Borderプロパティがサポートされません。
- Microsoft Wordは、列幅をドキュメントの幅から計算します。一方、RDLレポートは、本体領域の幅を基に列幅を計算します。そのため、エクスポートされるRDLレポートの列幅は、元のRDLレポートと異なる場合があります。
- Microsoft Wordでサポートされるページサイズの最大値は、幅22インチ(55.87cm) × 高さ22インチ(55.87cm)です。 出力されたレポートのサイズがこれより大きい場合、一部のデータが表示されない場合があります。
- Microsoft Wordでは、ひとつのテーブルが収容できる列数は最大で63列です。 エクスポートされるテーブルの列数が63列以上におよぶ場合、テーブルは分割されるため、エクスポートされるドキュメントは元のレポートとは異なる場合があります。
- 単一ページ内でのテーブルフッタの繰り返し表示(テーブルフッタのRepeatOnNewPageプロパティ)、あるいは複数のヘッダの繰り返し表示はサポートされません。
- OverflowPlaceHolderコントロールはサポートされません。
- ページヘッダ、あるいはページフッタのPrintOnFirstPageプロパティを「False」に設定した場合、エクスポートしたドキュメントの1ページ目にはページヘッダ、およびページフッタが表示されません。
- 複数テーマを適用したレポートはサポートされません。
レポートコントロール
- Shape以外のレポートコントロールでは、背景イメージはサポートされません。
- 「Inset」、「Outset」および「Windowsinset」(BorderStyleプロパティ)の罫線スタイルはサポートされません。
- Map、Chart、Image、BarCode、SparkLine、Bullet、CustomControlの各レポートコントロールは、画像としてエクスポートされます。レポートコントロールでBorderColor、BorderStyle、BorderWidthプロパティに値を設定している場合、レポートはテーブルとしてエクスポートされます。
- エクスポートしたレポートコントロールのBorderWidthプロパティは、元のBorderWidthプロパティに設定した値と異なる可能性があります。
- 改ページはサポートされません。
- ShapeコントロールのBorderStyleプロパティを「Double」に設定した場合、罫線は「Solid」としてエクスポートされます。
- LineコントロールのLineStyleプロパティを「Double」または「Transparent」に設定した場合、罫線は「Solid」(実線)としてエクスポートされます。
- BandedListデータ領域で繰り返し表示が可能なのはBandedListヘッダのみです。BandedListのフッタ、グループヘッダ/フッタの繰り返し表示はサポートされません。
- Tablixデータ領域は、水平分割されていない単一のテーブルとしてエクスポートされます。
- ImageコントロールのSizingプロパティを「Clip」に設定した場合、Border、およびPaddingプロパティはサポートされません。
- Containerレポートコントロールの角丸(RoundingRadiusプロパティ)はサポートされません。
- TableおよびTablixで、RepeatToFillプロパティはサポートされません。
- Tableデータ領域に埋め込まれた画像は、サポートされません。
- ActiveReportsとWordのレイアウトが異なるため、ページ構成、ページ数などが異なる可能性があります。
- セクション内のページ番号はサポートされません。
- TableおよびTablixのKeepTogetherプロパティはサポートされません。
- iWordアプリケーションでは、水平方向に並べた画像が重なって表示される場合があります。
- サブレポートのボディ領域で設定されたプロパティはエクスポートされていません。
FormattedText
- FormattedTextはそのままエクスポートされます。HTML、およびCSSの機能はサポートされません。
- href属性、<abbr>タグ、<q>タグが含まれない<a>タグは、テキストとしてエクスポートされます。
- 罫線スタイルのInsetおよびOutsetに対して<ul>タグがサポートされません。
- BackgroundColor、BackgroundImage、BorderColor、BorderStyleおよびBorderWidthプロパティはサポートされません。
- href属性のアンカータグはハイパーリンクとしてエクスポートされます。
- h1、h2等のヘッダは、対応するMicrosoft Wordの組み込みヘッダスタイルとしてエクスポートされます。
TableOfContents
- TextAlign、DisplayPageNumber、TextIndentおよびOverline TextDecorationプロパティはサポートされません。
- 見出しマップのSourceプロパティは、HeadingsOnlyオプションのみサポートされます。
- レポートに複数のTableOfContentsコントロールを使用している場合、一つ目のTableOfContentsコントロールのプロパティ設定は、エクスポートしたドキュメント内で他のTableOfContentsコントロールにも適用されます。
- TableOfContentsコントロールのLevel設定のFillCharacterプロパティは「Dot」(点線)としてエクスポートされます。
- エクスポートされたファイルをLibreOfficeで開いたときにTableOfContentsコントロールの背景が黒色で表示されます。
TextBox/CheckBox
- Formatプロパティを「Numeric」、または「Date」に設定した場合、TextBoxは右揃えでエクスポートされます。それ以外のフォーマット値は左揃えでエクスポートされます。
- テキスト背景の透明色は白色としてエクスポートされます。
- 番号付きリスト用のUnderline、DirectionプロパティのRTL (右から左)オプション、Angleプロパティ、ShrinkToFitプロパティ、TextDecorationプロパティのOverLineはサポートされません。
- [レポートに移動]オプションはサポートされません。
- WritingModeプロパティの「tb-rl」(vertical text)オプションはサポートされません。WritingModeプロパティを「tb-rl」に設定したテキストボックスは「lr-tb」としてエクスポートされます。
- WrapModeプロパティの「NoWrap」オプションはサポートされません。
- Microsoft Wordでは、行間はレポートコントロールのフォントサイズ値と行間値を基に計算されます。そのため、エクスポートした文書のLineSpacingプロパティは、元レポートと異なる場合があります。
- CheckBoxコントロールでは、CheckAlignmentプロパティの「TopRight」、「MiddleRight」、「BottomRight」オプションは「MiddleRight」としてエクスポートされます。その他のCheckAlignmentのオプションは「MiddleLeft」としてエクスポートされます。
- Paddingsが31インチを超える場合、罫線スペースとしてエクスポートされます。
- RTL(右から左)のテキストの方向は、LibreOfficeでは機能しません。
- Word2013にエクスポートしている際に、背景(影)とパディングが段落に適用された場合は背景にもパディングが適用されるので、段落の左側に背景と境界線の間にギャップが表示されます。
- CharWrapプロパティはサポートされません。
- TextBoxコントロール内のフィールドが下記のように評価されます。
- [ページ番号]および[総ページ]はサポートされません。
- Tableなどのデータ領域の外に配置したTextBoxは、ページのレイアウトごとに1回だけ出力されます。
- ヘッダまたはフッタに配置されたフィールドは自動的に評価されます。
- ボディに配置されたフィールドは、コンテキストメニューから[フィールド更新]をクリックして手動で再評価する必要があります。
対話的な機能
HTML 形式
Word形式でレンダリングされたレポートは、ブックマークとハイパーリンクをサポートします。ただし、(ドリルダウンレポートで見られるような)表示/非表示の切り替えが不可欠な場合は、HTML描画拡張機能の使用を推奨します。また、見出しマップが不可欠な場合は、PDF描画拡張機能の使用を推奨します。
OOXML 形式
- ハイパーリンク - TextBoxとImageコントロールに追加したハイパーリンクは、Wordドキュメントでハイパーリンクとして描画されます。
- ブックマーク - レポートのブックマークは、Microsoft Wordのブックマークとして描画されます。ブックマークリンクは、文書内のブックマークラベルにリンクするハイパーリンクとして描画されます。
- TOC AutoUpdate - TableofContentsコントロールは、Microsoft Wordの目次として描画されます。
関連トピック