XSSFのシェイプの削除は、APIも探してみましたが、見つかりませんでした。
XSSFのシェイプのサイズの単位については、下記サイトを参照してください。
valid,invalid: [Java] Apache POI XSSFClientAnchor でoffset を指定して画像を貼り付ける
計算の仕方は私もよく知らないので、下記のコード例のようにしてcol
,row
,dx
,dy
の値を取得して、前述のサイトを参考に計算してみてください。
lang
1// import java.io.*;
2// import java.nio.file.*;
3// import java.util.List;
4// import org.apache.poi.xssf.usermodel.*;
5
6Path path = Paths.get("shapes.xlsx");
7try (InputStream is = Files.newInputStream(path); XSSFWorkbook book = new XSSFWorkbook(is)) {
8 XSSFSheet sheet1 = book.getSheetAt(0);
9
10 // シートにあるすべてのシェイプを取得
11 XSSFDrawing draw = sheet1.createDrawingPatriarch();
12 List<XSSFShape> shapes = draw.getShapes();
13 for (XSSFShape shape : shapes) {
14 XSSFClientAnchor a = (XSSFClientAnchor)shape.getAnchor();
15 short col1 = a.getCol1();
16 short col2 = a.getCol2();
17 int row1 = a.getRow1();
18 int row2 = a.getRow2();
19 int dx1 = a.getDx1();
20 int dx2 = a.getDx2();
21 int dy1 = a.getDy1();
22 int dy2 = a.getDy2();
23 }
24}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。