Java 类org.apache.poi.hssf.usermodel.HSSFPicture 实例源码

项目:poix    文件:PoiPublicUtil.java   
/**
 * 获取Excel2003图片
 * 
 * @param sheet
 *            当前sheet对象
 * @param workbook
 *            工作簿对象
 * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
 */
public static Map<String, PictureData> getSheetPictrues03(HSSFSheet sheet,
                                                          HSSFWorkbook workbook) {
    Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
    List<HSSFPictureData> pictures = workbook.getAllPictures();
    if (!pictures.isEmpty()) {
        for (HSSFShape shape : sheet.getDrawingPatriarch().getChildren()) {
            HSSFClientAnchor anchor = (HSSFClientAnchor) shape.getAnchor();
            if (shape instanceof HSSFPicture) {
                HSSFPicture pic = (HSSFPicture) shape;
                int pictureIndex = pic.getPictureIndex() - 1;
                HSSFPictureData picData = pictures.get(pictureIndex);
                String picIndex = String.valueOf(anchor.getRow1()) + "_"
                                  + String.valueOf(anchor.getCol1());
                sheetIndexPicMap.put(picIndex, picData);
            }
        }
        return sheetIndexPicMap;
    } else {
        return sheetIndexPicMap;
    }
}
项目:easypoi    文件:PoiPublicUtil.java   
/**
 * 获取Excel2003图片
 * 
 * @param sheet
 *            当前sheet对象
 * @param workbook
 *            工作簿对象
 * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
 */
public static Map<String, PictureData> getSheetPictrues03(HSSFSheet sheet, HSSFWorkbook workbook) {
    Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
    List<HSSFPictureData> pictures = workbook.getAllPictures();
    if (!pictures.isEmpty()) {
        for (HSSFShape shape : sheet.getDrawingPatriarch().getChildren()) {
            HSSFClientAnchor anchor = (HSSFClientAnchor) shape.getAnchor();
            if (shape instanceof HSSFPicture) {
                HSSFPicture pic = (HSSFPicture) shape;
                int pictureIndex = pic.getPictureIndex() - 1;
                HSSFPictureData picData = pictures.get(pictureIndex);
                String picIndex = String.valueOf(anchor.getRow1()) + "_"
                                  + String.valueOf(anchor.getCol1());
                sheetIndexPicMap.put(picIndex, picData);
            }
        }
        return sheetIndexPicMap;
    } else {
        return null;
    }
}
项目:excel2javabeans    文件:ExcelImages.java   
private static Table<Integer, Integer, ImageData> readAllCellImages(HSSFPatriarch patriarch, Sheet sheet) {
    val images = HashBasedTable.<Integer, Integer, ImageData>create();
    val allPictures = sheet.getWorkbook().getAllPictures();
    for (val shape : patriarch.getChildren()) {
        if (!(shape instanceof HSSFPicture && shape.getAnchor() instanceof HSSFClientAnchor)) continue;

        val picture = (HSSFPicture) shape;
        val imageData = createImageData(allPictures.get(picture.getPictureIndex() - 1));

        val axisRow = computeAxisRowIndex(sheet, picture);
        val axisCol = computeAxisColIndex(sheet, picture);

        images.put(axisRow, axisCol, imageData);
    }

    return images;
}
项目:gnvc-ims    文件:ExcelToHtmlConverter.java   
private void processSheetImage(Element htmlBody, HSSFSheet sheet) {
//        Element h2 = htmlDocumentFacade.createImage(logo);
//        h2.setAttribute("style", "top:112px;left:300px;position:absolute");
//        htmlBody.appendChild( h2 );

        if (sheet.getDrawingPatriarch() != null) {
            final List<HSSFShape> shapes = sheet.getDrawingPatriarch()
                    .getChildren();
            for (int i = 0; i < shapes.size(); ++i) {
                if (shapes.get(i) instanceof HSSFPicture) {
                    try {
                        // Gain access to private field anchor.
                        final HSSFPicture pic = (HSSFPicture) shapes.get(i);
                        picMap.put(pic.getPreferredSize().getCol1()+":"+pic.getPreferredSize().getRow1(), pic);
                    } catch (final Exception e) {
                        throw new RuntimeException(e);
                    }
                }
            }
        }
    }
项目:ermasterr    文件:PictureSheetGenerator.java   
private void setImage(final HSSFWorkbook workbook, final HSSFSheet sheet, final CellLocation cellLocation, int width, int height) {
    POIUtils.setCellValue(sheet, cellLocation, "");

    if (imageBuffer != null) {
        final HSSFPatriarch patriarch = sheet.createDrawingPatriarch();

        final HSSFPicture picture = patriarch.createPicture(new HSSFClientAnchor(), pictureIndex);

        final Dimension dimension = picture.getImageDimension();
        final float rate = (float) dimension.width / (float) dimension.height;
        final float specifiedRate = (float) width / (float) height;

        if (width == -1 || height == -1) {
            width = dimension.width;
            height = dimension.height;

        } else {
            if (rate > specifiedRate) {
                if (dimension.width > width) {
                    height = (int) (width / rate);

                } else {
                    width = dimension.width;
                    height = dimension.height;
                }

            } else {
                if (dimension.height > height) {
                    width = (int) (height * rate);

                } else {
                    width = dimension.width;
                    height = dimension.height;
                }
            }
        }

        final HSSFClientAnchor preferredSize = getPreferredSize(sheet, new HSSFClientAnchor(0, 0, 0, 0, (short) cellLocation.c, cellLocation.r, (short) 0, 0), width, height);
        picture.setAnchor(preferredSize);
    }
}
项目:ermaster-k    文件:PictureSheetGenerator.java   
private void setImage(HSSFWorkbook workbook, HSSFSheet sheet,
        CellLocation cellLocation, int width, int height) {
    POIUtils.setCellValue(sheet, cellLocation, "");

    if (this.imageBuffer != null) {
        HSSFPatriarch patriarch = sheet.createDrawingPatriarch();

        HSSFPicture picture = patriarch.createPicture(
                new HSSFClientAnchor(), this.pictureIndex);

        Dimension dimension = picture.getImageDimension();
        float rate = (float) dimension.width / (float) dimension.height;
        float specifiedRate = (float) width / (float) height;

        if (width == -1 || height == -1) {
            width = dimension.width;
            height = dimension.height;

        } else {
            if (rate > specifiedRate) {
                if (dimension.width > width) {
                    height = (int) (width / rate);

                } else {
                    width = dimension.width;
                    height = dimension.height;
                }

            } else {
                if (dimension.height > height) {
                    width = (int) (height * rate);

                } else {
                    width = dimension.width;
                    height = dimension.height;
                }
            }
        }

        HSSFClientAnchor preferredSize = this.getPreferredSize(sheet,
                new HSSFClientAnchor(0, 0, 0, 0, (short) cellLocation.c,
                        cellLocation.r, (short) 0, 0), width, height);
        picture.setAnchor(preferredSize);
    }
}
项目:ermaster-nhit    文件:PictureSheetGenerator.java   
private void setImage(HSSFWorkbook workbook, HSSFSheet sheet,
        CellLocation cellLocation, int width, int height) {
    POIUtils.setCellValue(sheet, cellLocation, "");

    if (this.imageBuffer != null) {
        HSSFPatriarch patriarch = sheet.createDrawingPatriarch();

        HSSFPicture picture = patriarch.createPicture(
                new HSSFClientAnchor(), this.pictureIndex);

        Dimension dimension = picture.getImageDimension();
        float rate = (float) dimension.width / (float) dimension.height;
        float specifiedRate = (float) width / (float) height;

        if (width == -1 || height == -1) {
            width = dimension.width;
            height = dimension.height;

        } else {
            if (rate > specifiedRate) {
                if (dimension.width > width) {
                    height = (int) (width / rate);

                } else {
                    width = dimension.width;
                    height = dimension.height;
                }

            } else {
                if (dimension.height > height) {
                    width = (int) (height * rate);

                } else {
                    width = dimension.width;
                    height = dimension.height;
                }
            }
        }

        HSSFClientAnchor preferredSize = this.getPreferredSize(sheet,
                new HSSFClientAnchor(0, 0, 0, 0, (short) cellLocation.c,
                        cellLocation.r, (short) 0, 0), width, height);
        picture.setAnchor(preferredSize);
    }
}
项目:nci-term-browser    文件:ResolvedValueSetIteratorHolder.java   
private void table(final HSSFSheet sheet) {
    if (sheet == null) {
        return;
    }
    if (sheet.getDrawingPatriarch() != null) {
        final List<HSSFShape> shapes = sheet.getDrawingPatriarch()
                .getChildren();
        for (int i = 0; i < shapes.size(); ++i) {
            if (shapes.get(i) instanceof HSSFPicture) {
                try {
                    // Gain access to private field anchor.
                    final HSSFShape pic = shapes.get(i);
                    final Field f = HSSFShape.class
                            .getDeclaredField("anchor");
                    f.setAccessible(true);
                    final HSSFClientAnchor anchor = (HSSFClientAnchor) f
                            .get(pic);
                    // Store picture cell row, column and picture data.
                    if (!pix.containsKey(anchor.getRow1())) {
                        pix.put(anchor.getRow1(),
                                new HashMap<Short, List<HSSFPictureData>>());
                    }
                    if (!pix.get(anchor.getRow1()).containsKey(
                            anchor.getCol1())) {
                        pix.get(anchor.getRow1()).put(anchor.getCol1(),
                                new ArrayList<HSSFPictureData>());
                    }
                    pix.get(anchor.getRow1())
                            .get(anchor.getCol1())
                            .add(book.getAllPictures().get(
                                    ((HSSFPicture) pic).getPictureIndex()));
                } catch (final Exception e) {
                    throw new RuntimeException(e);
                }
            }
        }
    }

    out.append("<table cellspacing='0' style='border-spacing:0; border-collapse:collapse;'>\n");
    for (rowIndex = 0; rowIndex < sheet.getPhysicalNumberOfRows(); ++rowIndex) {
        tr(sheet.getRow(rowIndex));
    }
    out.append("</table>\n");
}
项目:nci-term-browser    文件:ResolvedValueSetIteratorHolder.java   
private void table(final HSSFSheet sheet, int startIndex, int endIndex) {
     if (sheet == null) {
         return;
     }
     if (sheet.getDrawingPatriarch() != null) {
         final List<HSSFShape> shapes = sheet.getDrawingPatriarch()
                 .getChildren();
         for (int i = 0; i < shapes.size(); ++i) {
             if (shapes.get(i) instanceof HSSFPicture) {
                 try {
                     // Gain access to private field anchor.
                     final HSSFShape pic = shapes.get(i);
                     final Field f = HSSFShape.class
                             .getDeclaredField("anchor");
                     f.setAccessible(true);
                     final HSSFClientAnchor anchor = (HSSFClientAnchor) f
                             .get(pic);
                     // Store picture cell row, column and picture data.
                     if (!pix.containsKey(anchor.getRow1())) {
                         pix.put(anchor.getRow1(),
                                 new HashMap<Short, List<HSSFPictureData>>());
                     }
                     if (!pix.get(anchor.getRow1()).containsKey(
                             anchor.getCol1())) {
                         pix.get(anchor.getRow1()).put(anchor.getCol1(),
                                 new ArrayList<HSSFPictureData>());
                     }
                     pix.get(anchor.getRow1())
                             .get(anchor.getCol1())
                             .add(book.getAllPictures().get(
                                     ((HSSFPicture) pic).getPictureIndex()));
                 } catch (final Exception e) {
                     throw new RuntimeException(e);
                 }
             }
         }
     }

     out.append("<table id=\"" + "rvs_table" + "\" width=\"900\" class=\"mt\">\n");
     tr(sheet.getRow(0));
     StringBuffer buf = new StringBuffer();
     tr(sheet.getRow(0), buf);
     String t = buf.toString();
     resolvedValueSetList.add(t);

     for (int i=startIndex; i<=endIndex; i++) {
         tr(sheet.getRow(i));
buf = new StringBuffer();
tr(sheet.getRow(i), buf);
t = buf.toString();
resolvedValueSetList.add(t);

     }
     out.append("</table>\n");

     resolvedValueSetIterator = resolvedValueSetList.listIterator();
 }