0
0

More than 1 year has passed since last update.

Javaを使用してExcelテキストボックスの追加、読み取り、削除する方法

Last updated at Posted at 2021-12-21

この記事では、Javaプログラムを使用してExcelにテキストボックスを追加する方法を紹介します。テキストボックスを追加する時、テキストの追加、テキストの方向の設定、テキストの配置、テキストボックスのサイズ、位置、塗りつぶしの色/塗りつぶしの画像、テキストボックスを設定できます。回転角度、テキストボックス名、選択可能なテキスト、テキストボックスの非表示または表示、およびその他の操作も全てできます。
既存のテキストボックスの場合、テキストボックス内のテキストの読み取り、色の塗りつぶし、画像の塗りつぶし、テキストボックス名、不要なテキストボックスの削除などを行うことができます。以下は、例を通して特定の実装方法を示します。

使用ツール:Free Spire.XLS for Java(無料版)
Jarの取得とインポート:公式Webサイトからパッケージを**ダウンロード**し、libフォルダーの下のjarを解凍してjavaプログラムにインポートします。インポートをした結果は、次のとおりです。
01.png

##Javaコード一覧
###1. テキストボックスを追加する

import com.spire.xls.*;
import com.spire.xls.core.ITextBox;
import com.spire.xls.core.ITextBoxLinkShape;

import java.awt.*;

public class AddTextBox {
    public static void main(String[] args) {
        //インスタンスを作成する
        Workbook wb = new Workbook();

        //ワークブックを取得する
        Worksheet sheet = wb.getWorksheets().get(0);

        //テキストボックス1を追加する
        //テキストボックスの位置とサイズを指定する
        ITextBox textBox1 = sheet.getTextBoxes().addTextBox(3,3,150,300);
        //テキストボックスにテキストを追加する
        textBox1.setText("テキストボックスにテキストを追加する");
        //テキストボックスの塗りつぶしタイプを設定する
        ((ITextBoxLinkShape) textBox1).getFill().setFillType(ShapeFillType.SolidColor);
        //塗りつぶしの色を設定する
        ((ITextBoxLinkShape) textBox1).getFill().setForeColor(new Color(255,218,155));
        //テキストの配置を設定する
        textBox1.setHAlignment(CommentHAlignType.Center);
        textBox1.setVAlignment(CommentVAlignType.Center);
        //テキストの方向を設定する
        textBox1.setTextRotation(TextRotationType.TopToBottom);
        //テキストボックスを表示するように設定する
        ((ITextBoxLinkShape) textBox1).setVisible(true);
        //テキストボックス名を設定する
        ((ITextBoxLinkShape) textBox1).setName("テキストボックス1");


        //テキストボックス2を追加する
        //テキストボックスの位置とサイズを指定する
        ITextBox textBox2 = sheet.getTextBoxes().addTextBox(7,10,120,300);
        //テキストボックスにテキストコンテンツを追加する
        textBox2.setText("画像を追加してテキストボックス2に入力する");

        //テキストボックスを埋めるために画像を追加する
        ((ITextBoxLinkShape) textBox2).getFill().customPicture("C:\\Users\\Administrator\\Pictures\\tp.png");
        //テキストボックスを30度回転するように設定する
        ((ITextBoxLinkShape) textBox2).setRotation(30);
        //テキストボックス名を設定する
        ((ITextBoxLinkShape) textBox2).setName("テキストボックス2");
        //オプションのテキストを設定する
        ((ITextBoxLinkShape) textBox2).setAlternativeText("選択できるテキスト");

        //ドキュメントを保存する
        wb.saveToFile("AddTextBox.xlsx",ExcelVersion.Version2013);
        wb.dispose();
    }
}

テキストボックスを追加した結果:
02.png

###2. テキストボックスを読む

import com.spire.xls.*;
import com.spire.xls.core.spreadsheet.shapes.XlsTextBoxShape;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class ReadTextBox {
    public static void main(String[] args) throws IOException {
        //インスタンスを作成し、テストドキュメントをロードする 
        Workbook wb = new Workbook();
        wb.loadFromFile("AddTextBox.xlsx");

        //ワークシートを取得する
        Worksheet sheet = wb.getWorksheets().get(0);

        //最初のテキストボックスを取得し、テキストを読み、色を塗りつぶする
        XlsTextBoxShape textBoxShape1 = (XlsTextBoxShape) sheet.getTextBoxes().get(0);
        String  text = textBoxShape1.getText();
        Color color = textBoxShape1.getFillColor();
        String  name = textBoxShape1.getName();
        System.out.println("テキスト内容:"+ text + " 塗りつぶしの色:" + color + "名称:"+ name);

        //最初のテキストボックスを取得し、塗りつぶされた画像を読む
        XlsTextBoxShape textBoxShape2 = (XlsTextBoxShape) sheet.getTextBoxes().get(1);
        BufferedImage image = textBoxShape2.getFill().getPicture();
        ImageIO.write(image,"png", new File("ExtractedImg.png"));
    }
}

テキストボックスを読んだ結果:
03.png

###3. テキストボックスを削除する

import com.spire.xls.*;
import com.spire.xls.core.spreadsheet.shapes.XlsTextBoxShape;

public class RemoveTextBox {
    public static void main(String[] args) {
        //テストドキュメントをロードする
        Workbook wb = new Workbook();
        wb.loadFromFile("AddTextBox.xlsx");

        //ワークシートを取得する
        Worksheet sheet = wb.getWorksheets().get(0);

        //テキストボックスを取得し、削除する
        XlsTextBoxShape textBoxShape = (XlsTextBoxShape) sheet.getTextBoxes().get(0);
        textBoxShape.remove();

        //ドキュメントを保存する
        wb.saveToFile("RemoveTextBox.xlsx",FileFormat.Version2013);
        wb.dispose();
    }
}

テキストボックスを削除した結果:
04.png

今回のExcelテキストボックスに対する解説は以上です、最後まで読んでいただきありがとうございます。

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