0
フォームコントロールを含むいくつかのxlsmファイルがあります。私はプログラム的に各シート上のいくつかの行の特定のボタンを移動したいと思います。Apache POIでXLSXフォームコントロールの位置を変更する
FileInputStream inputStream = new FileInputStream(new File("t.xlsm"));
XSSFWorkbook wb = new XSSFWorkbook(inputStream);
XSSFSheet xs = (XSSFSheet)wb.getSheetAt(1);
RelationPart rp = xs.getRelationParts().get(0);
XSSFDrawing drawing = (XSSFDrawing)rp.getDocumentPart();
for(XSSFShape sh : drawing.getShapes()){
XSSFClientAnchor a = (XSSFClientAnchor)sh.getAnchor();
if (sh.getShapeName().equals("Button 2")) {
a.setRow1(a.getRow1()+10);
a.setRow2(a.getRow2()+10);
}
}
しかし、XSSFDrawing.getShapes()
により所定の形状の物体がwb.write()
後の文書に反映されていないコピーし、それらの変更内容は次のとおりです。私の最初の希望は、このような何かをすることでした。
CTShape
を取得してXMLを解析するなど、いくつかのアプローチを試しましたが、すばやくぼんやりしてしまいました。
このようなフォームコントロールをPOI経由で管理する方法はありますか?