我正在使用POI,我想在xlsx中插入一些行。在这个文件中,我在表格中有一些图像。当我通过这样做来移动行:
sheet.shiftRows(30, sheet.getLastRowNum(), 10, true, true);
某些图片位于错误的位置并调整大小。
如何在不调整图像大小的情况下一次移动所有项目并将它们放在正确的位置?
答案 0 :(得分:0)
遇到这个问题,这段代码对我有用 基本上需要发生的是更改图像的锚点以反映新的行索引。
XSSFDrawing drawings = mainSheet.createDrawingPatriarch();
for(XSSFShape shape : drawings.getShapes()){
if(shape instanceof Picture){
XSSFPicture picture = (XSSFPicture) shape;
XSSFClientAnchor anchor = picture.getClientAnchor();
int row1 = anchor.getRow1();
if (row1 >= 30 && row1 <= mainSheet.getLastRowNum()) {
int row2 = anchor.getRow2();
anchor.setRow1(row1 + 10);
anchor.setRow2(row2 + 10);
}
}
}
这就是发生的事情: