チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル».NET»Spire.Doc for .NET»文書操作»C#/VB.NET:複数の Word ドキュメントを結合する方法
2023-05-08

C#/VB.NET:複数の Word ドキュメントを結合する方法

長い論文や研究報告書は、複数の人が共同で仕上げることが多いものです。時間を節約するために、各自が割り当てられた部分を別々のドキュメントで作業し、編集が終わった後にこれらのドキュメントを1つに統合することができます。この記事では、Word ドキュメントから別のドキュメントへ内容を手動でコピー&ペーストする方法とは別に、プログラム的に Spire.Doc for .NET を使用して Word ドキュメントを結合する以下の2つの方法について説明します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

ファイル全体を挿入してドキュメントを結合する

Spire.Doc for .NET が提供する Document.InsertTextFromFile() メソッドは、他のドキュメントを完全にそのドキュメントに挿入して、Word ドキュメントを結合させます。このメソッドを使用すると、挿入されたドキュメントの内容は新しいページから開始されます。詳細な手順は以下の通りです。

  • Document のインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して、元の Word ドキュメントを読み込みます。
  • Document.InsertTextFromFile() メソッドを使用して、元のドキュメントに別の Word ドキュメントを完全に挿入します。
  • Document.SaveToFile() メソッドを使用して、結果のドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Doc;

namespace MergeWord
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentのインスタンスを作成する
            Document document = new Document();

            //元のWordドキュメントを読み込む
            document.LoadFromFile("C:/宇宙の視野.docx", FileFormat.Docx);

            //元のドキュメントに別のWordドキュメントを完全に挿入する
            document.InsertTextFromFile("C:/定義を超えた意味.docx", FileFormat.Docx);

            //結果ドキュメントを保存する
            document.SaveToFile("ドキュメントの結合.docx", FileFormat.Docx);
        }
    }
}
Imports Spire.Doc

Namespace MergeWord
    Class Program
        Shared Sub Main(ByVal args() As String)
            'Documentのインスタンスを作成する
            Dim document As Document = New Document()

            '元のWordドキュメントを読み込む
            document.LoadFromFile("C:/宇宙の視野.docx", FileFormat.Docx)

            '元のドキュメントに別のWordドキュメントを完全に挿入する
            document.InsertTextFromFile("C:/定義を超えた意味.docx", FileFormat.Docx)

            '結果ドキュメントを保存する
            document.SaveToFile("ドキュメントの結合.docx", FileFormat.Docx)
        End Sub
    End Class
End Namespace

C#/VB.NET:複数の Word ドキュメントを結合する方法

内容をコピーしてドキュメントを結合する

新しいページを始めずにドキュメントを結合したい場合、他のドキュメントの内容をクローンして、元のドキュメントの末尾に追加することができます。詳しい手順は以下の通りです。

  • 2つの Word ドキュメントを読み込みます。
  • 2番目のドキュメントをループして、Document.Sections プロパティを使用して、すべてのセクションを取得します。次に、すべてのセクションをループして、Section.Body.ChildObjects プロパティを使用して、その子オブジェクトを取得します。
  • Document.LastSection プロパティを使用して、最初のドキュメントで最後のセクションを取得します。そして、LastSection.Body.ChildObjects.Add() メソッドを使用して、子オブジェクトを最初のドキュメントで最後のセクションに追加します。
  • Document.SaveToFile() メソッドを使用して、結果のドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Doc;

namespace MergeWord
{
    class Program
    {
        static void Main(string[] args)
        {
            //2つのWordドキュメントを読み込む
            Document doc1 = new Document("C:/宇宙の視野.docx");
            Document doc2 = new Document("C:/定義を超えた意味.docx");

            //2番目のドキュメントをループしてすべてのセクションを取得する
            foreach (Section section in doc2.Sections)
            {

                //2番目のドキュメントのセクションをループして、その子オブジェクトを取得する
                foreach (DocumentObject obj in section.Body.ChildObjects)
                {

                    //最初のドキュメントで最後のセクションを取得する
                    Section lastSection = doc1.LastSection;

                    //すべての子オブジェクトを、最初のドキュメントで最後のセクションに追加する
                    lastSection.Body.ChildObjects.Add(obj.Clone());
                }
            }

            // 結果ドキュメントを保存する
            doc1.SaveToFile("ドキュメントの結合.docx", FileFormat.Docx);
        }
    }
}
Imports Spire.Doc

Namespace MergeWord
    Class Program
        Shared Sub Main(ByVal args() As String)
            '2つのWordドキュメントを読み込む
            Dim doc1 As Document = New Document("C:/宇宙の視野.docx")
            Dim doc2 As Document = New Document("C:/定義を超えた意味.docx")

            '2番目のドキュメントをループしてすべてのセクションを取得する
            Dim section As Section
            For Each section In doc2.Sections

                '2番目のドキュメントのセクションをループして、その子オブジェクトを取得する
                Dim obj As DocumentObject
                For Each obj In section.Body.ChildObjects

                    '最初のドキュメントで最後のセクションを取得する
                    Dim lastSection As Section = doc1.LastSection

                    'すべての子オブジェクトを、最初のドキュメントで最後のセクションに追加する
                    lastSection.Body.ChildObjects.Add(obj.Clone())
                Next
            Next

            ' 結果ドキュメントを保存する
            doc1.SaveToFile("ドキュメントの結合.docx", FileFormat.Docx)
        End Sub
    End Class
End Namespace

C#/VB.NET:複数の Word ドキュメントを結合する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 946 times