![](/img/trans.png)
[英]Get the image position/location of an image in .xlsx file using Apache POI
[英]Get an image and its position from excel file using Apache POI
在这里看看:
http://poi.apache.org/components/spreadsheet/quick-guide.html#Images
样品:
List lst = workbook.getAllPictures();
for (Iterator it = lst.iterator(); it.hasNext(); ) {
PictureData pict = (PictureData)it.next();
String ext = pict.suggestFileExtension();
byte[] data = pict.getData();
if (ext.equals("jpeg")) {
FileOutputStream out = new FileOutputStream("pict.jpg");
out.write(data);
out.close();
}
}
之后,您可以使用诸如ImageInfo之类的工具,该工具扩展了Magick来查找各种配置。 您甚至可以将图像转换为不同大小。
看看这个课程:
http://blog.jaimon.co.uk/simpleimageinfo/SimpleImageInfo.java.html
- 希望这可以帮助
希望这段代码对您有所帮助)
XSSFDrawing dp = workbook.getSheetAt(1).createDrawingPatriarch();
List<XSSFShape> pics = dp.getShapes();
XSSFPicture inpPic = (XSSFPicture)pics.get(0);
XSSFClientAnchor clientAnchor = inpPic.getClientAnchor();
inpPic.getShapeName(); // узнаю название картинки
PictureData pict = inpPic.getPictureData();
FileOutputStream out = new FileOutputStream("pict.jpg");
byte[] data = pict.getData();
out.write(data);
out.close();
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());
而且,如果您不想使用迭代器(因为有时它们很重)
public List readDrawing(Workbook workbook) throws Exception {
List list = workbook.getAllPictures();
for (int i=0; i<list.size(); i++) {
PictureData picture = (PictureData) list.get(i);
String ext = picture.suggestFileExtension();
byte[] data = picture.getData();
FileOutputStream out = new FileOutputStream("imageName" + "." + ext);
out.write(data);
out.close();
}
return list;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.