2015-04-16 147 views
3

我只能通過這種方法.getAllPictures()獲取.xlsx文件圖像的圖像位置/位置

List<XSSFPictureData> lst = (List)workbook.getAllPictures(); 

我得到這個得到的圖像數據,每當我使用getShapes()

at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:309) 
at org.codehaus.groovy.control.ErrorCollector.addFatalError(ErrorCollector.java:149) 
at org.codehaus.groovy.tools.javac.JavacJavaCompiler.addJavacError(JavacJavaCompiler.java:92) 
at org.codehaus.groovy.tools.javac.JavacJavaCompiler.compile(JavacJavaCompiler.java:71) 
at org.codehaus.groovy.tools.javac.JavaAwareCompilationUnit.gotoPhase(JavaAwareCompilationUnit.java:97) 
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:529) 
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:498) 
at org.codehaus.groovy.tools.FileSystemCompiler.compile(FileSystemCompiler.java:55) 
at org.codehaus.groovy.tools.FileSystemCompiler.doCompilation(FileSystemCompiler.java:210) 
at org.codehaus.groovy.ant.Groovyc.runCompiler(Groovyc.java:1078) 
at org.codehaus.groovy.ant.Groovyc.compile(Groovyc.java:1129) 
at org.codehaus.groovy.ant.Groovyc.execute(Groovyc.java:748) 
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 

2015年4月21日09:54:36457錯誤堆棧跟蹤完整堆棧跟蹤: org.codehaus.groovy.control.MultipleCompilationErrorsException:啓動失敗:

是否有可能或有辦法讓我可以在.xlsx文件中獲取圖像位置/位置?

+0

新增POI標記,以便誰知道POI人看到這個問題 – centic

回答

3

您可以檢索通過XSSFPicture.getClientAnchor()方法的位置,ClientAnchor具有行/列位置和像素偏移量應允許得到你正在尋找的信息,例如:

XSSFDrawing dp = wb.getSheetAt(0).createDrawingPatriarch(); 
List<XSSFShape> pics = dp.getShapes(); 
XSSFPicture inpPic = (XSSFPicture)pics.get(0); 

XSSFClientAnchor clientAnchor = inpPic.getClientAnchor(); 

System.out.println("col1: " + clientAnchor.getCol1() + ", col2: " + clientAnchor.getCol2() + ", row1: " + clientAnchor.getRow1() + ", row2: " + clientAnchor.getRow2()); 
System.out.println("x1: " + clientAnchor.getDx1() + ", x2: " + clientAnchor.getDx2() + ", y1: " + clientAnchor.getDy1() + ", y2: " + clientAnchor.getDy2()); 

將打印出類似

col1: 0, col2: 2, row1: 1, row2: 7 
x1: 252000, x2: 63720, y1: 60480, y2: 201600 
+0

感謝您的回答,但我已經做了這一點,其方法有點奇怪怎麼把「getShapes()」 。因爲它顯示錯誤「無法找到符號」,它與「getShapes()」有關。有沒有辦法擺脫這個錯誤?順便說一句,我的Java版本是1.7 – kevkev

+0

什麼是錯誤的完整異常堆棧跟蹤? – centic

+0

看到我編輯的帖子。那是你在找什麼?我很抱歉,如果這是錯誤的,因爲我只是一個新手。請告訴我,如果這是錯誤的,所以我可以編輯它。謝謝! – kevkev