C#でWordの段落を削除する

Word文書を編集する際、文書の構造や読みやすさを最適化するために、段落レイアウトを調整したり、不要な段落を削除したりする必要がある場合があります。この記事では、無料の.NETライブラリを使用して、C#でWord文書内の段落を削除する方法を示します。

* [C#でWordの指定した段落を削除する](#cでwordの指定した段落を削除する)
* [C#でWordのすべての段落を削除する](#cでwordのすべての段落を削除する) 
* [C#でWordの空白段落を削除する]()
 
## 無料の.NETライブラリー
[**Free Spire.Doc for .NET**](https://www.e-iceblue.com/Introduce/free-doc-component.html)は、Word文書の作成、編集、変換、その他多くの操作をサポートする無料のライブラリです。
Visual StudioのNuGetから直接 「FreeSpireDoc 」を検索し、「Install」をクリックしてプログラムに追加することができます。または、以下のリンクから製品パッケージをダウンロードし、解凍した後、手動でプログラムに参照としてdllファイルを追加します。

https://www.e-iceblue.com/Download/download-word-for-net-free.html


## C#でWordの指定した段落を削除する
**`Section.Paragraphs`** プロパティで **`ParagraphCollection`** オブジェクトを取得し、**`RemoveAt (int index)`** メソッドで指定した段落をインデックスで削除します。

**サンプルコードです：**
```csharp
using Spire.Doc;
 
namespace RemoveParagraphs
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Word文書を読み込む
            Document document = new Document();
            document.LoadFromFile("sample.docx");
 
            //最初のセクションを取得する
            Section section = document.Sections[0];
 
            //第4パラグラフの削除
            section.Paragraphs.RemoveAt(3);
 
            //ファイルに保存
            document.SaveToFile("DeleteSpecificPara.docx", FileFormat.Docx2016);
        }
    }
}
```

## C#でWordのすべての段落を削除する
**`ParagraphCollection`** クラスの **`Clear()`** メソッドは、指定したセクション内のすべての段落を直接削除できます。ドキュメントの各セクションのすべての段落を削除するには、各セクションをループして実行します。

**サンプルコードです：**
```csharp
using Spire.Doc;
 
namespace RemoveAllParagraphs
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Word文書を読み込む
            Document document = new Document();
            document.LoadFromFile("sample.docx");
 
            //すべてのセクションを反復処理する
            foreach (Section section in document.Sections)
            {
                //セクション内のすべての段落を削除する
                section.Paragraphs.Clear();
            }
 
            //ファイルに保存
            document.SaveToFile("DeleteAllPara.docx", FileFormat.Docx2016);
        }
    }
}
```


## C#でWordの空白段落を削除する
空白の段落を削除するには、各セクションのすべての段落を繰り返し処理して、その段落に内容が含まれているかどうかを判断する必要があります。空白の段落であれば、**`DocumentObjectCollection.Remove()`** メソッドで削除できます。

**サンプルコードです：**
```csharp
using Spire.Doc;
using Spire.Doc.Documents;

namespace RemoveEmptyLines
{
    class Program
    {

        static void Main(string[] args)
        {

            //Word文書を読み込む
            Document doc = new Document();
            doc.LoadFromFile("E:\\PythonDoc\\蝶1.docx");

            //すべてのセクションを反復処理する
            foreach (Section section in doc.Sections)
            {
                for (int i = 0; i < section.Body.ChildObjects.Count; i++)
                {
                    if (section.Body.ChildObjects[i].DocumentObjectType == DocumentObjectType.Paragraph)
                    {
                        //現在の段落が空白段落かどうかを判断する
                        if (string.IsNullOrEmpty((section.Body.ChildObjects[i] as Paragraph).Text.Trim()))
                        {
                            //空白の段落を削除する
                            section.Body.ChildObjects.Remove(section.Body.ChildObjects[i]);
                            i--;
                        }
                    }

                }
            }

            //ファイルに保存
            doc.SaveToFile("DeleteBlankPara.docx", FileFormat.Docx2016);

        }
    }
}
```

![DeleteBlankParagraph.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811193/a8c9e66b-a201-b009-aa34-06acdf70bb18.png)

* * *

>***その他のデモについては、クリックしてください：***

https://www.e-iceblue.com/Tutorials/Spire.Doc/Spire.Doc-Program-Guide/Spire.Doc-Program-Guide-Content.html