0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Java】Word文書内の変数の追加、変更、削除

Last updated at Posted at 2023-06-01

Word文書の変数は、文書の特定のテキストを動的に編集するために使用することができる特別な文書フィールドです。変数は、テキストの追加、編集、置換、削除など、特定のテキストの管理を容易にする優れたツールです。検索と置換の機能と比較すると、変数は特定のテキストの修正を簡単かつ正確に行うことができます。この記事では、無料のFree Spire.Doc for Javaを使用して、Word文書に変数を追加、編集、または削除する方法を紹介する予定です。

【依存関係の追加】

この記事の方法は、無料のWord文書処理Java API、Free Spire.Doc for Javaが必要です。このAPIは、公式サイトからダウンロードするか、Mavenでプロジェクトに導入することができます。Mavenのコードは以下の通りです。

<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.free</artifactId>
        <version>5.2.0</version>
    </dependency>
</dependencies>

Word文書に変数を追加する

Spire.Doc for Javaでは、Word文書の段落に変数を挿入する Paragraph.appendField() メソッドと、変数に値を割り当てる VariableCollection.add() メソッドを提供しています。以下は、変数の挿入の詳細な手順です。
ステップ 1
Documentのオブジェクトを作成します。
Document document = new Document();
ステップ 2
ドキュメントにセクションを追加します。
Section section = document.addSection();
ステップ 3
セクションに段落を追加します。
Paragraph paragraph = section.addParagraph();
ステップ 4
段落に変数フィールドを追加します。
Paragraph.appendField();
ステップ 5
変数コレクションを取得します。
VariableCollection variableCollection = document.getVariables();
ステップ 6
変数に値を割り当てます。
VariableCollection.add();
ステップ 7
変数のフィールドを更新します。
Document.isUpdateFields()
ステップ 8
ドキュメントを保存します。
Document.saveToFile()

以下は、完全なコード例です。

import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.formatting.CharacterFormat;

public class AddVariables {
    public static void main(String[] args) {

        //Documentのオブジェクトを作成する
        Document document = new Document();

        //セクションを追加する
        Section section = document.addSection();

        //段落を追加する
        Paragraph paragraph = section.addParagraph();

        //テキスト書式を設定する
        CharacterFormat characterFormat = paragraph.getStyle().getCharacterFormat();
        characterFormat.setFontName("BIZ UDPGothic");
        characterFormat.setFontSize(12);

        //ページの余白を設定する
        section.getPageSetup().getMargins().setTop(100f);

        //段落に変数フィールドを追加する
        paragraph.appendField("物理用語", FieldType.Field_Doc_Variable);
        paragraph.appendText("は物体である。\r\n");
        paragraph.appendField("物理用語", FieldType.Field_Doc_Variable);
        paragraph.appendText("は背景でも錯覚でも創発現象でもない。\r\n");
        paragraph.appendField("物理用語", FieldType.Field_Doc_Variable);
        paragraph.appendText("には、研究所で測定できる物理的なサイズがあります。");

        //変数コレクションを取得する
        VariableCollection variableCollection = document.getVariables();

        //変数に値を割り当てる
        variableCollection.add("物理用語", "時間");

        //文書内のフィールドを更新する
        document.isUpdateFields(true);

        //文書を保存する
        document.saveToFile("変数の追加.docx", FileFormat.Auto);
        document.dispose();
    }
}

【結果文書】
Word文書に変数を追加する

Word文書の変数を変更する

Spire.Doc for Javaが提供する VariableCollection.set() メソッドを用いて変数の値を変更することで、その変数が文書中に現れる全ての位置のテキストを変更することができ、高速かつ正確なテキスト置換という目的を達成できます。以下、詳しい手順をご紹介します。
ステップ 1
Documentのオブジェクトを作成します。
Document document = new Document();
ステップ 2
Word文書を読み込みます。
Document.loadFromFile();
ステップ 3
文書中の変数をコレクションとして取得します。
VariableCollection variableCollection = document.getVariables();
ステップ 4
変数の値を変更します。
VariableCollection.set();
ステップ 5
文書内のフィールドを更新します。
Document.isUpdateFields(true);
ステップ 6
文書を保存します。
Document.saveToFile();

以下は、完全なコード例です。

import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.VariableCollection;

public class ChangeVariableValue {
    public static void main(String[] args) {

        //Documentのオブジェクトを作成する
        Document document = new Document();

        //Word文書を読み込む
        document.loadFromFile("変数の追加.docx");

        //文書内の変数を取得する
        VariableCollection variableCollection = document.getVariables();

        //変数の値を設定する
        variableCollection.set("物理用語", "時");

        //文書内のフィールドを更新する
        document.isUpdateFields(true);

        //文書を保存する
        document.saveToFile("変数の値を変更.docx", FileFormat.Auto);
        document.dispose();
    }
}

【結果文書】
Word文書の変数を変更する

Word文書から変数を削除する

同様に、Spire.Doc for Javaが提供する VariableCollection.remove() メソッドで変数を削除すると、その変数が出現するすべての場所のテキストも削除されます。詳しい手順は以下の通りです。
ステップ 1
Documentのオブジェクトを作成します。
Document document = new Document();
ステップ 2
Word文書を読み込みます。
Document.loadFromFile();
ステップ 3
文書中の変数をコレクションとして取得します。
VariableCollection variableCollection = document.getVariables();
ステップ 4
変数をその名前で削除します。
VariableCollection.remove();
ステップ 5
文書内のフィールドを更新します。
Document.isUpdateFields(true);
ステップ 6
文書を保存します。
Document.saveToFile();

以下は、完全なコード例です。

import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.VariableCollection;

public class RemoveVariable {
    public static void main(String[] args) {

        //Documentのオブジェクトを作成する
        Document document = new Document();

        //Word文書を読み込む
        document.loadFromFile("変数の追加.docx");

        //文書内の変数を取得する
        VariableCollection variableCollection = document.getVariables();

        //変数をその名前で削除する
        variableCollection.remove("物理用語");

        //文書内のフィールドを更新する
        document.isUpdateFields(true);

        //文書を保存する
        document.saveToFile("変数の削除.docx", FileFormat.Auto);
        document.dispose();
    }
}

【結果文書】
Word文書から変数を削除する

注意点としては、変数の追加、変更、削除を行った後に、文書フィールドを更新する必要があることです。 これは、変更した結果が文書に表示されるようにするためです。

以上、Word文書で変数を追加・変更・削除する方法を紹介しました。Spire.Doc for Javaは、他にも様々な文書処理機能をサポートしていますので、詳しくはSpire.Doc for Javaのチュートリアルをご覧ください。

記事推薦
Word文書の結合
2つのWord文書の比較

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?