我正在使用POI API将许多Excel工作簿复制到1个大型Excel工作簿中。 对于我的要求之一,有一些图像在文档中专门放置和调整大小。 我正在使用以下代码的组合来传输所有必要的图像。 它们仅是图片,并且已找到所有图片。
import org.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D; // only important class you need to know about.
private static void transferShape (XSSFSheet sheet, XSSFSheet newSheet) {
XSSFDrawing drawing = sheet.createDrawingPatriarch();
for(XSSFShape shape : drawing.getShapes()) {
if(shape instanceof XSSFPicture) {
XSSFPicture picture = (XSSFPicture) shape;
transferPicture(picture, newSheet);
}
}
}
private static void transferPicture(XSSFPicture picture, XSSFSheet newSheet) {
XSSFPictureData xssfPictureData = picture.getPictureData();
XSSFClientAnchor anchor = picture.getPreferredSize();
int col1 = anchor.getCol1();
int col2 = a

这篇博客探讨了使用Java POI库复制Excel工作簿时遇到的内存溢出问题,特别是涉及到图片时如何保持图片大小不变。作者详细描述了复制图片和调整大小的代码实现,以及遇到的问题——图片不再正确调整大小,尽管尝试了不同的解决方案,如设置CTPositiveSize2D,但仍然未能成功。博客提出了当前代码中可能存在的问题,并寻求解决方案。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



