// ファイル名をコンパイルします
string filename = "C:\\SampleWordDoc";
// 静的な 'Create' メソッドを使用して、WordDocumentWriter クラスの
// 新しいインスタンスを作成します
using ( WordDocumentWriter writer = WordDocumentWriter.Create(filename) )
{
}
このトピックは、フォーワードのみのストリーマー アプローチとオブジェクト モデル アプローチという、Word ドキュメントの作成に使用可能なアプローチを例を挙げて説明します。
トピックは以下のとおりです。
Word ライブラリによって、Microsoft® Word® ドキュメントを作成できます。Word ドキュメントは、フォーワードのみのストリーマー アプローチまたはオブジェクト モデル アプローチのいずれかを適用することで作成できます。それぞれのアプローチの長所と短所を以下に説明します。
フォーワードのみのストリーマー アプローチでは、パフォーマンスが向上しますが、使いやすさが劣ります。これは、ひとつのメソッドへの呼び出しと別のメソッドの呼び出しのバランスを取らなければならないためです。このエラーの結果は通常、実行を再開できない例外となります。もう一方のオブジェクト指向のアプローチは使いやすいのですが、データ量が多い場合大量のシステム メモリを使用します。
WordDocumentWriter は、ワード プロセッシング データを含むストリームやファイルを生成する、高速で、キャッシュを使用しないフォーワードのみの方法を提供するストリーマー オブジェクトです。このオプションは Infragistics.Documents.IO アセンブリで利用できます。WordDocumentWriter オブジェクトによって、フォーワードのみのストリーマー アプローチを使用して、Word ドキュメントを優れたパフォーマンスで作成できます。
WinGridWordWriter™ コンポーネントと WinFormattedTextWordWriter™ コンポーネントは、Word 機能にエクスポートするために WordDocumentWriter オブジェクトを使用します。これらのコンポーネントによってエクスポートされるコンテンツは、メモリにドキュメントを作成することなく、ファイルに直接エクスポートされます。このため、 RAM の使用量を抑え、大量のデータのエクスポートの間に発生するメモリの問題を回避します。
以下のセクションでは、コード例を使用して WordDocumentWriter クラスを使用する方法を示します。
Infragistics3.Documents.IO アセンブリへの参照が必要とされます。
WordDocumentWriter クラスは抽象で、直接的なインスタンス作成をサポートしません。このため、派生クラスのインスタンスを作成するために Create メソッドを公開します。
C# の場合:
// ファイル名をコンパイルします
string filename = "C:\\SampleWordDoc";
// 静的な 'Create' メソッドを使用して、WordDocumentWriter クラスの
// 新しいインスタンスを作成します
using ( WordDocumentWriter writer = WordDocumentWriter.Create(filename) )
{
}
Visual Basic の場合:
' ファイル名をコンパイルします Dim filename As String = "C:\SampleWordDoc" ' 静的な 'Create' メソッドを使用して、WordDocumentWriter クラスの ' 新しいインスタンスを作成します Using writer As WordDocumentWriter = WordDocumentWriter.Create(filename) End Using
Word ドキュメントを作成する時に最初に実行することは、ドキュメントの開始を指示することです。これは出力ストリームに and タグを書いて、さらなる入力のためにライターを準備します。以下のコードは、ブランクの Word ドキュメントを開始および閉じる方法を示します。
C# の場合:
// 静的な 'Create' メソッドを使用して、WordDocumentWriter クラスの
// 新しいインスタンスを作成します
string filename = "C:\\SampleWordDoc";
using ( WordDocumentWriter writer = WordDocumentWriter.Create(filename) )
{
// ドキュメントを開始します。StartDocument への各呼び出しは
// EndDocument への対応する呼び出しとバランスを取らなければならないことに留意します
writer.StartDocument();
// TODO: 興味深い何か
// ドキュメントを終了します
writer.EndDocument();
}
Visual Basic の場合:
' 静的な 'Create' メソッドを使用して、WordDocumentWriter クラスの
' 新しいインスタンスを作成します
Dim filename As String = "C:\SampleWordDoc"
Using writer As WordDocumentWriter = WordDocumentWriter.Create(filename)
' ドキュメントを開始します。StartDocument への各呼び出しは
' EndDocument への対応する呼び出しとバランスを取らなければならないことに留意します
writer.StartDocument()
' TODO: 興味深い何か
' ドキュメントを終了します
writer.EndDocument()
End Using
以下のコード サンプルは、特定のフォントを使用して、テキスト ランで段落を追加する方法を示します。
C# の場合:
private void WriteParagraph(
WordDocumentWriter writer,
string text,
Infragistics.Documents.Word.Font font )
{
// 段落を開きます
writer.StartParagraph();
// 指定したテキストとフォントでテキスト ランを追加します
writer.AddTextRun( text, font );
// 段落を閉じます
writer.EndParagraph();
}
Visual Basic の場合:
Private Sub WriteParagraph(writer As WordDocumentWriter, text As String, font As Infragistics.Documents.Word.Font)
' 段落を開きます
writer.StartParagraph()
' 指定したテキストとフォントでテキスト ランを追加します
writer.AddTextRun(text, font)
' 段落を閉じます
writer.EndParagraph()
End Sub
オブジェクト モデル アプローチは、Infragistics3.Documents.IO アセンブリに加えて、Infragistics.Documents.Word アセンブリへの参照を必要とします。
以下のコードは、Document クラスを使用して空のWord ドキュメントを作成し、特定の場所に保存する方法を示します。
C# の場合:
// 新しいWord ドキュメントを作成します Document doc = new Document(); string filename = "C:\\SampleDoc"; // ドキュメントを保存します doc.Save(filename);
Visual Basic の場合:
' 新しいWord ドキュメントを作成します Dim doc As New Document() Dim filename As String = "C:\SampleDoc" ' ドキュメントを保存します doc.Save(filename)
以下のコード サンプルは、 Paragraph クラスを使用してテキストをドキュメントに追加して、印刷可能な領域の中央にテキストを配置する方法を示します。
Paragraph クラスはドキュメントで単一の段落をカプセル化します。ドキュメントのコンテンツ ブロック コレクションにメンバーを追加することで、段落が作成されます。Paragraph は揃えて配置またはインデントが可能なテキスト ブロックを表示する機能を提供します。Paragraph クラスは、 ContentRuns コレクションを公開します。これはコンテンツをパラグラフに追加する方法を提供します。
C# の場合:
// 新しいWord ドキュメントを作成します
Document doc = new Document();
string filename = "C:\\SampleDoc";
// 段落をドキュメントに追加します
Paragraph p = doc.ContentBlocks.AddParagraph();
// 段落を中央揃えします
p.Properties.Alignment = ParagraphAlignment.Center;
// 現在の段落にテキスト ランを追加します
p.ContentRuns.AddTextRun("Hello World");
// ドキュメントを保存します
doc.Save(filename);
Visual Basic の場合:
' 新しいWord ドキュメントを作成します
Dim doc As New Document()
Dim filename As String = "C:\SampleDoc"
' 段落をドキュメントに追加します
Dim p As Paragraph = doc.ContentBlocks.AddParagraph()
' 段落を中央揃えします
p.Properties.Alignment = ParagraphAlignment.Center
' 現在の段落にテキスト ランを追加します
p.ContentRuns.AddTextRun("Hello World")
' ドキュメントを保存します
doc.Save(filename)