2012-02-10 46 views
2

我需要的是讓圖片數據字節,那麼它的錨細節和finaly 在屏幕上顯示在我的用戶目標的位置和大小,結果......獲取畫面位置的Apache POI從Excel XLS HSSF

的API顯示了我們可以通過工作簿對象獲取的所有圖片列表如下:

List<HSSFPictureData> picturesData = workbook.getAllPictures(); 

,也是我們能夠獲取所有錨詳細信息(參見HSSFClientAnchor細節here)。

問題是由錨refered不匹配getAllPictures的)HSSFPictureData集合索引(上述方法HSSFPicture.getPictureIndex()...

...現在的問題是:如何映射HSSFClientAnchor實例來具體HSSFPictureData實例還是相反?

回答

1
List<HSSFShape> shapes = this.tSheet.sheet().getDrawingPatriarch().getChildren(); 
     for (int i = 0; i < shapes.size(); i++) 
     { 
      if(shapes.get(i) instanceof HSSFPicture) 
      { 
       HSSFPicture pic = (HSSFPicture) shapes.get(i); 
       HSSFPictureData picdata = this.tSheet.sheet().getWorkbook().getAllPictures().get(pic.getPictureIndex()); 
       int pictureIndex = this.newSheet.getWorkbook().addPicture(picdata.getData(), picdata.getFormat()); 

this.newSheet.createDrawingPatriarch().createPicture((HSSFClientAnchor)pic.getAnchor()r, pictureIndex); 

      } 


     } 

注: 以上代碼將從一個片讀取PIC數據到另一片 this.tSheet.sheet()是源片 this.newSheet是新的薄片

+1

正如我所說...問題被錨定引用的HSSFPicture.getPictureIndex()與上面的getAllPictures()方法的HSSFPictureData收集索引不匹配... – 2012-05-15 11:51:04

相關問題