2015-04-16 150 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