セクションを操作する
このトピックでは、Open XML SDK Run クラスと、Open XML ファイル形式 WordprocessingML スキーマとの関係について説明します。
WordprocessingML のセクション
Open XML WordprocessingML のセクション要素は、ISO/IEC 29500 仕様書の次の文面で導入されています。
ドキュメント階層の [段落の後] の次のレベルは、共通のプロパティセットを持つテキストの領域を定義する実行です。 実行は r 要素によって表されます。これにより、プロデューサーは区切り、スタイル、または書式設定プロパティを組み合わせて、実行のすべての部分に同じ情報を適用できます。
段落にプロパティを含めることができるのと同様に、実行することもできます。 r 要素内のすべての要素は、対応するオプションの rPr 実行プロパティ要素によって制御されるプロパティを持ちます。これは、r 要素の最初の子である必要があります。 さらに、rPr 要素は、r 要素の残りの子に適用されるプロパティ要素のセットのコンテナーです。 rPr コンテナー要素内の要素を使用すると、コンシューマーは、次の t 要素のテキストを太字、下線付き、または表示するかどうかを制御できます。 セクション プロパティの例としては、太字、境界、文字スタイル、色、フォント、フォント サイズ、イタリック、カーニング、スペル/構文チェックの無効化、網かけ、小型英大文字、取り消し線、テキストの方向、下線などがあります。
© ISO/IEC 29500: 2016
次の表では、セクションを操作するときに使用する最も一般的な Open XML SDK クラスを説明します。
XML 要素 | Open XML SDK クラス |
---|---|
p | Paragraph |
rPr | RunProperties |
t | テキスト |
Run クラス
Open XML SDK Run クラスは、上記の WordprocessingML ドキュメントの Open XML ファイル形式スキーマで定義されている実行 <r>
要素を表します。 WordprocessingML ドキュメント内の個々の<r>
要素を操作するには、Run オブジェクトを使用します。
RunProperties クラス
WordprocessingML では、実行要素のプロパティは、実行プロパティ <rPr>
要素を使用して指定されます。
セクション プロパティの例としては、太字、境界、文字スタイル、色、フォント、フォント サイズ、イタリック、カーニング、スペル/構文チェックの無効化、網かけ、小型英大文字、取り消し線、テキストの方向、下線などがあります。 WordprocessingML ドキュメントで実行のプロパティを設定するには、 RunProperties オブジェクトを使用します。
テキスト オブジェクト
<r>
要素では、テキスト (<t>
) 要素は、ドキュメント コンテンツを構成するテキストのコンテナーです。 OXML SDK Text クラスは、 <t>
要素を表します。 Wordprocessing ドキュメントにテキストを配置するには、Text オブジェクトを使用します。
Open XML SDK コード例
次のコードは、指定した WordprocessingML ドキュメントのメイン ドキュメント表示にテキストを追加します。 Run オブジェクトによって段落内のテキストの領域を設定し、 RunProperties オブジェクトを使用してセクションに太字の書式設定を適用します。
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
static void WriteToWordDoc(string filepath, string txt)
{
// Open a WordprocessingDocument for editing using the filepath.
using (WordprocessingDocument wordprocessingDocument = WordprocessingDocument.Open(filepath, true))
{
// Assign a reference to the existing document body.
MainDocumentPart mainDocumentPart = wordprocessingDocument.MainDocumentPart ?? wordprocessingDocument.AddMainDocumentPart();
mainDocumentPart.Document ??= new Document();
Body body = mainDocumentPart.Document.Body ?? mainDocumentPart.Document.AppendChild(new Body());
// Add new text.
Paragraph para = body.AppendChild(new Paragraph());
Run run = para.AppendChild(new Run());
// Apply bold formatting to the run.
RunProperties runProperties = run.AppendChild(new RunProperties(new Bold()));
run.AppendChild(new Text(txt));
}
}
このコードが実行されると、前のコードで指定した WordprocessingML ドキュメントに次の XML が書き込まれます。
<w:p>
<w:r>
<w:rPr>
<w:b />
</w:rPr>
<w:t>String from WriteToWordDoc method.</w:t>
</w:r>
</w:p>