チュートリアル

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

チュートリアル»Java»Spire.Doc for Java»文書操作»Java:2つの Word ドキュメントを比較する方法
2023-06-01

Java:2つの Word ドキュメントを比較する方法

ドキュメントの比較とは、異なる貢献者による変更を識別するために、新しいバージョンのドキュメントを以前のコピーと照合するプロセスです。これらの違いには、単語、文章、段落の追加や削除、書式の調整などが含まれます。この記事では、Spire.Doc for Java を使用して、Java で2つの Word ドキュメントを比較する方法について説明します。

以下は、比較対象となる2つの Word ドキュメントの表示画像です。

Java:2つの Word ドキュメントを比較する方法

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

まず、Spire. Doc for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url> https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.doc</artifactId>
        <version>11.4.2</version>
    </dependency>
</dependencies>

2つのドキュメントを比較し、結果を保存する

比較結果を別の Word ドキュメントに保存すると、挿入、削除、書式の変更など、元のドキュメントに加えられたすべての変更を確認することができます。以下は、Spire.Doc for Java を使用して、2つのドキュメントを比較し、その結果を3つ目の Word ドキュメントに保存する手順です。

  • Document のオブジェクトを2つ作成します。
  • Document.loadFromFile() メソッドを用いて、2つの Word ドキュメントを読み込みます。
  • Document.compare() メソッドを使用して、2つのドキュメントを比較します。
  • Document.saveToFile() メソッドを使用して、結果を3番目の Word ドキュメントに保存します。
  • Java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;

public class CompareDocuments {

    public static void main(String[] args) {

        //Documentのオブジェクトを2つ作成する
        Document doc1 = new Document();
        Document doc2 = new Document();

        //Wordドキュメントを読み込む
        doc1.loadFromFile("C:/比較1.docx");

        //他のWordドキュメントを読み込む
        doc2.loadFromFile("C:/比較2.docx");

        //2つのドキュメントを比較する
        doc1.compare(doc2, "John");

        //相違点を第3のドキュメントに保存する
        doc1.saveToFile("相違点.docx", FileFormat.Docx_2013);
        doc1.dispose();
    }
}

Java:2つの Word ドキュメントを比較する方法

2つのドキュメントを比較し、挿入と削除を返す

時には、全体の差分ではなく、挿入と削除だけを気にすることがあります。以下は、2つのリストで挿入と削除を取得する手順です。

  • Document のオブジェクトを2つ作成する。
  • Document.loadFromFile() メソッドを使用して、2つの Word ドキュメントを読み込みます。
  • Document.compare() メソッドを使用して、2つのドキュメントを比較します。
  • DifferRevisions のコンストラクタ関数を使用して、リビジョンを取得します。
  • DifferRevisions.getInsertRevisions() メソッドを使用して、挿入のリストを取得します。
  • DifferRevisions.getDeleteRevisions() メソッドを使用して削除のリストを取得します。
  • 2つのリストの要素をループして、特定の挿入と削除を取得します。
  • Java
import com.spire.doc.DifferRevisions;
import com.spire.doc.Document;
import com.spire.doc.DocumentObject;
import com.spire.doc.fields.TextRange;
import com.spire.ms.System.Collections.Generic.List;

public class CompareReturnResultsInLists {

    public static void main(String[] args) {

        //Documentのオブジェクトを2つ作成する
        Document doc1 = new Document();
        Document doc2 = new Document();

        //Wordドキュメントを読み込む
        doc1.loadFromFile("C:/比較1.docx");

        //他のWordドキュメントを読み込む
        doc2.loadFromFile("C:/比較2.docx");

        //2つのWordドキュメントを比較する
        doc1.compare(doc2, "Author");

        //改訂を取得する
        DifferRevisions differRevisions = new DifferRevisions(doc1);

        //挿入改訂をリストで返す
        List insertRevisionsList = differRevisions.getInsertRevisions();

        //削除改訂をリストで返す
        List  deleteRevisionsList = differRevisions.getDeleteRevisions();

        //2つのint変数を作成する
        int m = 0;
        int n = 0;

        //挿入改訂リストをループする
        for (int i = 0; i < insertRevisionsList.size(); i++)
        {
            if (insertRevisionsList.get(i) instanceof TextRange)
            {
                m += 1;
                //特定の改訂を取得し、その内容を取得する
                TextRange textRange = (TextRange)insertRevisionsList.get(i) ;
                System.out.println("挿入 #" + m + ":" + textRange.getText());
            }
        }
        System.out.println("============================================");
        //削除改訂リストをループする
        for (int i = 0; i < deleteRevisionsList.size() ; i++)
        {
            if (deleteRevisionsList.get(i) instanceof TextRange)
            {
                n += 1;
                //特定の改訂を取得し、その内容を取得する
                TextRange textRange = (TextRange) deleteRevisionsList.get(i) ;
                System.out.println("削除 #" + n + ":" + textRange.getText());
            }
        }
    }
}

Java:2つの Word ドキュメントを比較する方法

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

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

Read 382 times