3
1

More than 1 year has passed since last update.

Javaを使用してExcelの図形を追加、読み取り、削除する方法

Last updated at Posted at 2022-02-25

この記事では、次のようなJavaプログラムを使用してExcelで図形(グラフィックス)を操作する方法を紹介します。

1.図形を追加します(図形の種類/位置/サイズの設定、図形の塗りつぶし(単色/グラデーションの色/テクスチャ/画像の塗りつぶし)、図形の表示または非表示、図形の傾斜角度、図形へのテキストの追加、図形の影など)

2.図形からテキストと画像を抽出します

3.図形を削除します(指定された図形またはすべての図形を削除します)

ツール:Spire.XLS for Java

Jarファイルの取得とインポート:公式WebサイトまたはMavenからダウンロードしてインポートします。インポート結果は次のとおりです。
01.png

Javaコード一覧

【例1】図形を追加する

import com.spire.xls.*;
import com.spire.xls.core.IPrstGeomShape;

import java.awt.*;

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

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

        //楕円形を追加する
        IPrstGeomShape ellipse = sheet.getPrstGeomShapes().addPrstGeomShape(3,4,125,200,PrstGeomShapeType.Ellipse);
        ellipse.getFill().setFillType(ShapeFillType.SolidColor);//単色塗りつぶし
        ellipse.getFill().setForeColor(new Color(180,125,208));
        ellipse.setRotation(30);//図形の回転角度
        ellipse.setText("楕円形にテキストを追加する");//図形にテキストを追加する

        //星の図形を追加する
        IPrstGeomShape star = sheet.getPrstGeomShapes().addPrstGeomShape(3,8,180,200,PrstGeomShapeType.Star5);
        star.getFill().setFillType(ShapeFillType.Gradient);//グラデーション塗りつぶし
        star.getFill().setGradientColorType(GradientColorType.Preset);
        star.getFill().setForeColor(Color.orange);

        //雲の図形を追加する
        IPrstGeomShape cloud = sheet.getPrstGeomShapes().addPrstGeomShape(12,4,175,200,PrstGeomShapeType.Cloud);
        cloud.getFill().setFillType(ShapeFillType.Texture);//テクスチャ塗りつぶし
        cloud.getFill().setTexture(GradientTextureType.WhiteMarble);
        cloud.setVisible(true);//図形が表示されるかどうかを設定する
        //クラウドシャドウ効果を設定する
        cloud.getShadow().setAngle(90);
        cloud.getShadow().setDistance(10);
        cloud.getShadow().setSize(100);
        cloud.getShadow().setColor(Color.GRAY);
        cloud.getShadow().setBlur(30);
        cloud.getShadow().setTransparency(1);
        cloud.getShadow().hasCustomStyle();

        //長方形を追加する
        IPrstGeomShape rect = sheet.getPrstGeomShapes().addPrstGeomShape(15,8,125,200,PrstGeomShapeType.Rect);
        rect.getFill().customPicture("tp.png");//画像の塗りつぶしを読み込む
        rect.setName("Shape4");//図形を命名する

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

追加した結果:
02.png

【例2】図形の中の文字や絵を読む

import com.spire.xls.*;

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

public class Extract {
    public static void main(String[] args) throws IOException {
        //ドキュメントをロードする
        Workbook wb = new Workbook();
        wb.loadFromFile("C:\\Users\\Administrator\\IdeaProjects\\TEST\\AddShape.xlsx");

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

        //指定された図形のテキストを取得する
        String text = sheet.getPrstGeomShapes().get(0).getText();
        System.out.println(text);

        //指定された形で写真を取得する
        BufferedImage image = sheet.getPrstGeomShapes().get(3).getFill().getPicture();
        ImageIO.write(image,"png",new File("ExtractedImage.png"));
    }
}

文字や絵を読む結果:
03.png

【例3】図形を削除する

import com.spire.xls.*;

public class RemoveShape {
    public static void main(String[] args) {
        //ドキュメントをロードする
        Workbook wb = new Workbook();
        wb.loadFromFile("C:\\Users\\Administrator\\IdeaProjects\\TEST\\AddShape.xlsx");

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

        //指定された図形を取得し、削除する
        //sheet.getPrstGeomShapes().get(1).remove();//インデックス値による取得と削除する
        // sheet.getPrstGeomShapes().get("Shape4").remove();//形状名で取得および削除する

        //すべてのグラフィックを削除する
        for (int i = sheet.getPrstGeomShapes().getCount()-1; i >= 0; i--)
        {
            sheet.getPrstGeomShapes().get(i).remove();
        }

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

プログラムを実行した後、図形の削除効果を確認できます。
04.png

今回の図形を追加、読み取り、削除する方法はここまででした、最後まで読んでいただきありがとうございます。

3
1
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
3
1