首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Apache POI获取图像在.xlsx文件中的位置

使用Apache POI获取图像在.xlsx文件中的位置
EN

Stack Overflow用户
提问于 2015-04-16 18:19:11
回答 1查看 2.4K关注 0票数 3

我只能通过这个方法.getAllPictures()来获取图像数据

代码语言:javascript
运行
复制
List<XSSFPictureData> lst = (List)workbook.getAllPictures();

每当我使用getShapes()时,我都会收到这样的信息

代码语言:javascript
运行
复制
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-04-21 09:54:36,457错误org.codehaus.groovy.control.MultipleCompilationErrorsException:全栈跟踪: StackTrace启动失败:

有没有可能或者有没有办法让我在.xlsx文件中获得图像的位置/位置?

EN

回答 1

Stack Overflow用户

发布于 2015-04-20 16:27:25

您可以通过XSSFPicture.getClientAnchor()方法检索位置,ClientAnchor有一个行/列位置和一个像素偏移量,它应该允许获取您正在查找的信息,例如:

代码语言:javascript
运行
复制
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());

将打印出类似这样的内容

代码语言:javascript
运行
复制
col1: 0, col2: 2, row1: 1, row2: 7
x1: 252000, x2: 63720, y1: 60480, y2: 201600
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29671780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档