このトピックは、フォーワードのみのストリーマー アプローチとオブジェクト モデル アプローチという、Word 文書の作成に使用可能なアプローチを例を挙げて説明します。
トピックは以下のとおりです。
Word ライブラリによって、Microsoft® Word® ドキュメントを作成できます。Word 文書は、フォーワードのみのストリーマー アプローチまたはオブジェクト モデル アプローチのいずれかを適用することで作成できます。それぞれのアプローチの長所と短所を以下に説明します。
フォーワードのみのストリーマー アプローチでは、パフォーマンスが向上しますが、使いやすさが劣ります。これは、ひとつのメソッドへの呼び出しと別のメソッドの呼び出しのバランスを取らなければならないためです。このエラーの結果は通常、実行を再開できない例外となります。もう一方のオブジェクト指向のアプローチは使いやすいのですが、データ量が多い場合大量のシステム メモリを使用します。
WordDocumentWriter は、ワード プロセッシング データを含むストリームやファイルを生成する、高速で、キャッシュを使用しないフォーワードのみの方法を提供するストリーマー オブジェクトです。このオプションは Infragistics.Documents.IO アセンブリで利用できます。WordDocumentWriter オブジェクトによって、フォーワードのみのストリーマー アプローチを使用して、Word 文書を優れたパフォーマンスで作成できます。
WinGridWordWriter コンポーネントと WinFormattedTextWordWriter コンポーネントは、Word 機能にエクスポートするために WordDocumentWriter オブジェクトを使用します。これらのコンポーネントによってエクスポートされるコンテンツは、メモリにドキュメントを作成することなく、ファイルに直接エクスポートされます。このため、 RAM の使用量を抑え、大量のデータのエクスポートの間に発生するメモリの問題を回避します。
以下のセクションでは、コード例を使用して WordDocumentWriter クラスを使用する方法を示します。
Infragistics.Web.Documents.IO アセンブリへの参照が必要とされます。
WordDocumentWriter クラスは抽象で、直接的なインスタンス作成をサポートしません。このため、派生クラスのインスタンスを作成するために Create メソッドを公開します。
C# の場合:
// Compile the file name
string filename = "C:SampleWordDoc";
// Create a new instance of the WordDocumentWriter class using the
// static 'Create' method.
using ( WordDocumentWriter writer = WordDocumentWriter.Create(filename) )
{
}
Word 文書を作成する時に最初に実行することは、ドキュメントの開始を指示することです。これは出力ストリームに and タグを書いて、さらなる入力のためにライターを準備します。以下のコードは、ブランクの Word 文書を開始および閉じる方法を示します。
C# の場合:
// Create a new instance of the WordDocumentWriter class using the
// static 'Create' method.
string filename = "C:SampleWordDoc";
using ( WordDocumentWriter writer = WordDocumentWriter.Create(filename) )
{
// Start the document...note that each call to StartDocument must
// be balanced with a corresponding call to EndDocument.
writer.StartDocument();
// TODO: SOmething interesting
// End the document.
writer.EndDocument();
}
以下のコード サンプルは、特定のフォントを使用して、テキスト ランで段落を追加する方法を示します。
C# の場合:
private void WriteParagraph(
WordDocumentWriter writer,
string text,
Infragistics.Documents.Word.Font font )
{
// Open a paragraph
writer.StartParagraph();
// Add a text run with the specified text and font
writer.AddTextRun( text, font );
// Close the paragraph.
writer.EndParagraph();
}
Document クラスは、Word 文書に関連付けられたすべてのコンテンツをカプセル化します。オブジェクト階層のルート レベルのエンティティで、この下にすべての他のオブジェクトがグループ化されています。Microsoft Word 文書を生成するには、Document クラスのインスタンスを作成し、公開されているプロパティとメソッドを使用して作業し、そして Save メソッドを呼び出します。
オブジェクト モデル アプローチは、Infragistics.Web.Documents.IO アセンブリに加えて、Infragistics.Documents.Word アセンブリへの参照を必要とします。
以下のコードは、Document クラスを使用して空のWord 文書を作成し、特定の場所に保存する方法を示します。
C# の場合:
// Create a new Word Document
Document doc = new Document();
string filename = "C:SampleDoc";
// Save the document
doc.Save(filename);
以下のコード サンプルは、Paragraph クラスを使用してテキストをドキュメントに追加して、印刷可能な領域の中央にテキストを配置する方法を示します。
Paragraph クラスはドキュメントで単一の段落をカプセル化します。ドキュメントのコンテンツ ブロック コレクションにメンバーを追加することで、段落が作成されます。Paragraph は揃えて配置またはインデントが可能なテキスト ブロックを表示する機能を提供します。Paragraph クラスは、ContentRuns コレクションを公開します。これはコンテンツをパラグラフに追加する方法を提供します。
C# の場合:
// Create a new Word Document
Document doc = new Document();
string filename = "C:SampleDoc";
// Add a paragraph to the document
Paragraph p = doc.ContentBlocks.AddParagraph();
// Center align the paragraph
p.Properties.Alignment = ParagraphAlignment.Center;
// Add a text run to the paragraph
p.ContentRuns.AddTextRun("Hello World");
// Save the document
doc.Save(filename);
オンラインで表示: GitHub