この記事では、Javaプログラムを使用してExcelにテキストボックスを追加する方法を紹介します。テキストボックスを追加する時、テキストの追加、テキストの方向の設定、テキストの配置、テキストボックスのサイズ、位置、塗りつぶしの色/塗りつぶしの画像、テキストボックスを設定できます。回転角度、テキストボックス名、選択可能なテキスト、テキストボックスの非表示または表示、およびその他の操作も全てできます。
既存のテキストボックスの場合、テキストボックス内のテキストの読み取り、色の塗りつぶし、画像の塗りつぶし、テキストボックス名、不要なテキストボックスの削除などを行うことができます。以下は、例を通して特定の実装方法を示します。
使用ツール:Free Spire.XLS for Java(無料版)
Jarの取得とインポート:公式Webサイトからパッケージを**ダウンロード**し、libフォルダーの下のjarを解凍してjavaプログラムにインポートします。インポートをした結果は、次のとおりです。
##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();
}
}
###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"));
}
}
###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();
}
}
今回のExcelテキストボックスに対する解説は以上です、最後まで読んでいただきありがとうございます。