ActiveReportsのレポートは、WordRenderingExtensionクラスを使用してMSWordのネイティブ形式で描画することができます。ページレポート/RDLレポートは、FileFormatプロパティを使用することで、Officeオープンxml (OOXML)形式(.Docx)やWord HTML形式(.Doc)でエクスポートすることができます。
Officeオープンxml形式(.Docx)は以下のシナリオでの使用に適しています。
-
エクスポートしたレポートを複数のアプリケーションで開く: エクスポートしたWordドキュメントは、次のいずれかのアプリケーションで開くか、修正することができます。
- Microsoft Office 2007 - 2013
- Mac 2008 - 2011用のMicrosoft Office
- iWord、およびv4以降のOS X用Pages
- Apache OpenOffice
- Android版Google Quickoffice
- 文書無料 Documents Free (Mobile Office Suite)
|
注意: ActiveReportsのWordRenderingExtensionクラスを使用してエクスポートした.Docxファイルは、.Docx形式をサポートするアプリケーションであれば、上記以外のものでも正常に動作する場合があります。 |
- エクスポート後にレポートをカスタマイズする: エクスポートしたドキュメントにレポート要素の位置と配置を実装するには、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.v12.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)のみです。
- 画像レポートアイテムのEMFテキストはWordドキュメントにエクスポートするとぼやけて表示されます。
- 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.87 cm) × 高さ22インチ(55.87 cm)です。 出力されたレポートのサイズがこれより大きい場合、一部のデータが表示されない場合があります。
- 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プロパティに設定した値と異なる可能性があります。
- 改ページは完全的にサポートされていません。入れ子式のテーブル、およびセル内での改ページはサポートされていません。Wordのテーブルまたはセル項目にエクスポートされたレポートのコンテンツは改ページをサポートしません。
- 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のレイアウトが異なるので、ページネーションはサポートされていません。
- セクション内のページ番号(M(セクション)のNページ)はサポートされていません。
- 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」(点線)としてエクスポートされます。
- エクスポートされたファイルをApache OpenOffice で開いたときに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(右から左)のテキストの方向は、Apache OpenOfficeでは機能しません。
- Word2013にエクスポートしている際に、背景(影)とパディングが段落に適用された場合は背景にもパディングが適用されるので、段落の左側に背景と境界線の間にギャップが表示されます。
- CharWrapプロパティはサポートされていません。
- TextBoxコントロール内のフィールドが下記のように評価されます。
- [ページ番号]および[総ページ]の式がテキストエディターに評価された特別なフィールドとしてエクスポートされます(Wordまたはその他)。
- ヘッダまたはフッタに配置されたフィールドは自動的に評価されます。
- ボディに配置されたフィールドは、コンテキストメニューから[フィールド更新]をクリックして手動で再評価する必要があります。
対話的な機能
HTML 形式
Word形式でレンダリングされたレポートは、ブックマークとハイパーリンクをサポートします。ただし、(ドリルダウンレポートで見られるような)表示/非表示の切り替えが不可欠な場合は、HTML描画拡張機能の使用を推奨します。また、見出しマップが不可欠な場合は、PDF描画拡張機能の使用を推奨します。
OOXML 形式
- ハイパーリンク - TextBoxとImageコントロールに追加したハイパーリンクは、Wordドキュメントでハイパーリンクとして描画されます。
- ブックマーク - レポートのブックマークは、Microsoft Wordのブックマークとして描画されます。ブックマークリンクは、文書内のブックマークラベルにリンクするハイパーリンクとして描画されます。
- TOC AutoUpdate - TableofContentsコントロールは、Microsoft Wordの目次として描画されます。
関連トピック