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

项目: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;
    }
}
项目:OCRaptor    文件:ExcelExtractor.java   
private void findPictures(List<EscherRecord> records) throws IOException,
    SAXException, TikaException {
  for (EscherRecord escherRecord : records) {
    if (escherRecord instanceof EscherBSERecord) {
      EscherBlipRecord blip = ((EscherBSERecord) escherRecord)
          .getBlipRecord();
      if (blip != null) {
        HSSFPictureData picture = new HSSFPictureData(blip);
        String mimeType = picture.getMimeType();
        TikaInputStream stream = TikaInputStream.get(picture.getData());

        if (Config.inst().getProp(
            ConfigBool.ENABLE_IMAGE_OCR)) {
          try {
            if (FileType.isValidImageMime(mimeType)) {
              ByteArrayInputStream imageData = new ByteArrayInputStream(
                  picture.getData());
              BufferedImage image = ImageIO.read(imageData);
              this.tikaHelper.addImage(image);
            }
          } catch (Exception e) {
            // TODO: logging
            e.printStackTrace();
          }
        }

        // Handle the embeded resource
        extractor.handleEmbeddedResource(stream, null, null, mimeType,
            handler, true);
      }
    }

    // Recursive call.
    findPictures(escherRecord.getChildRecords());
  }
}
项目: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();
 }