/**
* 获取图片和位置 (xlsx)
*/
public static Map<String, String> getPictures2(XSSFSheet sheet) throws Exception {
Map<String, String> map = new HashMap<>(16);
List<POIXMLDocumentPart> list = sheet.getRelations();
for (POIXMLDocumentPart part : list) {
if (part instanceof XSSFDrawing) {
XSSFDrawing drawing = (XSSFDrawing) part;
List<XSSFShape> shapes = drawing.getShapes();
for (XSSFShape shape : shapes) {
XSSFPicture picture = (XSSFPicture) shape;
// 会有空指针问题
// XSSFClientAnchor anchor = picture.getPreferredSize();
XSSFClientAnchor anchor = (XSSFClientAnchor) shape.getAnchor();
CTMarker marker = anchor.getFrom();
String key = marker.getRow() + "-" + marker.getCol();
String imgName = "lihang/lihang_picture_".concat(System.currentTimeMillis() + ".png");
String url = OssUtils.uploadToOss(picture.getPictureData().getData(), imgName, 1L);
map.put(key, url);
}
}
}
return map;
}
/**
* 获取图片和位置 (xls)
*/
public static Map<String, String> getPictures1(HSSFSheet sheet) throws Exception {
Map<String, String> map = new HashMap<>(16);
List<HSSFShape> list = sheet.getDrawingPatriarch().getChildren();
for (HSSFShape shape : list) {
if (shape instanceof HSSFPicture) {
HSSFPicture picture = (HSSFPicture) shape;
HSSFClientAnchor cAnchor = (HSSFClientAnchor) picture.getAnchor();
// 行号-列号
String key = cAnchor.getRow1() + "-" + cAnchor.getCol1();
String imgName = "lihang/lihang_picture_".concat(System.currentTimeMillis() + ".png");
String url = OssUtils.uploadToOss(picture.getPictureData().getData(), imgName, 1L);
map.put(key, url);
}
}
return map;
}