長い論文や研究報告書は、複数の人が共同で仕上げることが多いものです。時間を節約するために、各自が割り当てられた部分を別々のドキュメントで作業し、編集が終わった後にこれらのドキュメントを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
内容をコピーしてドキュメントを結合する
新しいページを始めずにドキュメントを結合したい場合、他のドキュメントの内容をクローンして、元のドキュメントの末尾に追加することができます。詳しい手順は以下の通りです。
- 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
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。