分割されたWord文書

MS Word文書は、情報を保持および共有するために広く使用されています。場合によっては、異なるセクションまたはページに配置されている可能性のあるWord文書からデータを分割する必要があります。また、1つのドキュメントのページを複数のドキュメントに分割する必要がある場合もあります。このようなシナリオに従って、この記事は、C#を使用してプログラムでMSWord文書を分割する方法を示すことを目的としています。

MS Word文書を分割するためのC#API

Aspose.Words for .NETは、C#またはVB.NETを使用してMSWordドキュメントを作成および操作できる強力なワードプロセッシングAPIです。それに加えて、MS Word文書をセクション、ページ、またはページ範囲で分割することもできます。 APIをダウンロードするか、NuGetを使用してアプリケーション内にインストールできます。

PM> Install-Package Aspose.Words

C#を使用してWord文書をセクションごとに分割する

セクションとは、さまざまなフォーマットを適用できるドキュメントの部分を指します。セクションは、単一のページ、ページの範囲、またはドキュメント全体で構成されている場合があります。セクション区切りは、ドキュメントを複数のセクションに分割するために使用されます。以下は、Aspose.Words for .NETを使用してセクションに基づいてWord文書を分割する手順です。

  • Documentクラスを使用してWordドキュメントをロードします。
  • Document.Sectionsプロパティを使用して、ページセクションをループします。
  • セクションを新しいSectionオブジェクトに複製します。
  • 新しいDocumentオブジェクトを作成します。
  • Document.Sections.Add(Section)メソッドを使用して、セクションを新しいDocumentに追加します。
  • Document.Save(String)メソッドを使用してドキュメントを保存します。

次のコードサンプルは、C#を使用してMSWordドキュメントをセクションごとに分割する方法を示しています。

// Word文書を開く
Document doc = new Document("document.docx"); 

for (int i = 0; i < doc.Sections.Count; i++)
{
	// ドキュメントを小さな部分に分割します。この場合はセクションごとに分割します
	Section section = doc.Sections[i].Clone();

  // 新しいドキュメントを作成する
	Document newDoc = new Document();
	newDoc.Sections.Clear();

	Section newSection = (Section)newDoc.ImportNode(section, true);
	newDoc.Sections.Add(newSection);

	// 各セクションを個別のドキュメントとして保存
	newDoc.Save($"splitted_{i}.docx");
}

C#を使用してWord文書をページごとに分割する

Word文書の各ページに、請求書や領収書などの同様の種類の情報が含まれている場合があります。このような場合、各請求書を個別のドキュメントとして保存するために、ドキュメントのページを分割できます。ドキュメントをページごとに分割するには、Aspose.Words for .NETに基づくヘルパークラスDocumentPageSplitterを使用できます。以下の手順に従って、プロジェクト内のクラスをコピーし、Word文書をページごとに分割するだけです。

  • Documentクラスを使用してWordドキュメントをロードします。
  • DocumentPageSplitterクラスのオブジェクトを作成し、Documentオブジェクトで初期化します。
  • ドキュメントのページを繰り返し処理します。
  • DocumentPageSplitter.GetDocumentOfPage(int PageIndex)メソッドを使用して、各ページを新しいDocumentオブジェクトに抽出します。
  • Document.Save(String)メソッドを使用して各ドキュメントを保存します。

次のコードサンプルは、C#を使用してWordドキュメントをページごとに分割する方法を示しています。

// Word文書を開く
Document doc = new Document("Document.docx");

// ドキュメントページスプリッターを作成して初期化します
DocumentPageSplitter splitter = new DocumentPageSplitter(doc);

// 各ページを個別のドキュメントとして保存
for (int page = 1; page <= doc.PageCount; page++)
{
	Document pageDoc = splitter.GetDocumentOfPage(page);
	pageDoc.Save($"spliteed_{page}.docx");
}

C#を使用してページ範囲でWord文書を分割する

DocumentPageSplitterクラスを使用して、ページ範囲を指定して元のドキュメントから分割することもできます。たとえば、ページを2から4に分割する必要がある場合は、DocumentPageSplitter.GetDocumentOfPageRange(int StartIndex、int EndIndex)メソッドで開始ページと終了ページのインデックスを指定するだけです。

次のコードサンプルは、C#を使用してWord文書からページ範囲を分割する方法を示しています。

// Word文書を開く
Document doc = new Document("document.docx");

// ドキュメントページスプリッターの作成と初期化
DocumentPageSplitter splitter = new DocumentPageSplitter(doc);

// ページ範囲を取得する
Document pageDoc = splitter.GetDocumentOfPageRange(3, 6);
pageDoc.Save("splitted.docx");

結論

この記事では、C#を使用してプログラムでMSWord文書を分割する方法を学習しました。 Word文書をセクション、ページ、およびページ範囲で分割するシナリオについて、コードサンプルとともに説明しました。 ドキュメントを使用して、Aspose.Words for .NETの詳細を調べることができます。

関連項目