求助,使用POI操作excel2007以上版本,插入图片的定位问题。

t2money11 发布于 2016/05/19 16:39
阅读 890
收藏 0
POI

XSSFClientAnchor好像只提供了用起点终点单元格的左上角来定位插入图片的位置和大小。

XSSFClientAnchor实例化方法中前4个参数设置了好像也没什么反应。

有没有可以通过像素来调整图片起始位置和大小的方法呐。

理想的效果是,图片1起始点是第一行第一列的左上角,长度50个像素,高度根据长度自动调整。

图片2起始点也是第一行第一列左上角,X轴右移50个像素,高度根据长度自动调整。(就是紧挨着图片1显示,不受单元格限制)

以下是现在的代码,也就是用单元格来定位的方式,这样感觉很不灵活,有些需求很难实现。

还望高人指点,谢谢。

Drawing patri = sheet.createDrawingPatriarch();

XSSFClientAnchor anchor = null;

File[] tempList = file.listFiles();
for (int j = 0; j < tempList.length; j++) {

    File temp = tempList[j];
    anchor = new XSSFClientAnchor(0, 0, 512, 125, 6 + j, 1 + i, 7 + j, 2 + i);
    ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();  
    BufferedImage bufferImg = ImageIO.read(temp);  
    
    String tempFileName = temp.getName();
    String prefix = tempFileName.substring(tempFileName.lastIndexOf(".") + 1);
    if("png".equals(prefix)){
   
         ImageIO.write(bufferImg, "png", byteArrayOut);  
    }else{
   
         ImageIO.write(bufferImg, "jpg", byteArrayOut);  
    }
    anchor.setAnchorType(2);
    patri.createPicture(anchor ,wb.addPicture(byteArrayOut.toByteArray(), XSSFWorkbook.PICTURE_TYPE_JPEG));
}


加载中
返回顶部
顶部