次の方法で共有


段落を操作する

このトピックでは、Open XML SDK Paragraph クラスと、Open XML ファイル形式 WordprocessingML スキーマとの関係について説明します。


WordprocessingML の段落

次の記述は、ISO/IEC 29500 の仕様からの引用で、WordprocessingML ドキュメントの段落を表す Open XML WordprocessingML 要素について説明しています。

WordprocessingML ドキュメント内のブロック レベルコンテンツの最も基本的な単位である段落は、 <p> 要素を使用して格納されます。 段落は、新しい行で始まる 1 つの区分を定義します。 段落には、段落のプロパティ (省略可能)、インライン コンテンツ (一般的にはセクション)、および 2 つのドキュメントのコンテンツを比較するリビション ID (省略可能) の 3 つの情報要素を含めることができます。

段落のプロパティは、 <pPr> 要素を使用して指定されます。 段落のプロパティには、配置、罫線、ハイフネーションの無効化、インデント、行間、網かけ、テキストの方向、段落内での改ページ処理などがあります。

© ISO/IEC 29500: 2016

次の表に、段落の操作で使用する、最も一般的な Open XML SDK のクラスを示します。

WordprocessingML 要素 Open XML SDK クラス
p Paragraph
pPr ParagraphProperties
r Run
t テキスト

Paragraph クラス

Open XML SDK Paragraph クラスは、上記の WordprocessingML ドキュメントの Open XML ファイル形式スキーマで定義されている段落 <p> 要素を表します。 WordprocessingML ドキュメント内の個々の<p>要素を操作するには、Paragraph オブジェクトを使用します。

ParagraphProperties クラス

WordprocessingML では、段落のプロパティは、要素 <pPr> 段落プロパティを使用して指定されます。 段落のプロパティには、配置、罫線、ハイフネーションの無効化、インデント、行間、網かけ、テキストの方向、段落内での改ページ処理などがあります。 OXML SDK ParagraphProperties クラスは、 <pPr> 要素を表します。

Run クラス

通常、ワープロ ドキュメントの段落にはテキストが含まれます。 WordprocessingML ドキュメントの OXML ファイル形式スキーマでは、テキストの領域を区切るために実行 <r> 要素が提供されます。 OXML SDK Run クラスは、 <r> 要素を表します。

テキスト オブジェクト

<r>要素では、テキスト <t> 要素は、ドキュメント コンテンツを構成するテキストのコンテナーです。 OXML SDK Text クラスは、 <t> 要素を表します。


Open XML SDK コード例

次のコードは、Open XML SDKParagraph オブジェクトをインスタンス化し、それを使用して WordprocessingML ドキュメントにテキストを追加します。

// <Snippet0>
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using System;


static void WriteToWordDoc(string filepath, string txt)
{
    // Open a WordprocessingDocument for editing using the filepath.
    using (WordprocessingDocument wordprocessingDocument = WordprocessingDocument.Open(filepath, true))
    {
        if (wordprocessingDocument is null)
        {
            throw new ArgumentNullException(nameof(wordprocessingDocument));
        }
        // 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 a paragraph with some text.
        Paragraph para = body.AppendChild(new Paragraph());
        Run run = para.AppendChild(new Run());
        run.AppendChild(new Text(txt));
    }
}
// </Snippet0>

WriteToWordDoc(args[0], args[1]);

関連項目

Open XML SDK for Office について

セクションを操作する

[方法] ワープロ ドキュメント内の段落にスタイルを適用する

[方法] ワープロ ドキュメントを開いてテキストを追加する