Java 类org.apache.poi.ss.usermodel.Drawing 实例源码

项目:Gargoyle    文件:FxExcelUtil.java   
/**
 * @작성자 : KYJ
 * @작성일 : 2016. 9. 9. 
 * @param sheet
 * @throws Exception
 */
final static void createDefaultLogo(Sheet sheet) throws Exception {
    Workbook workbook = sheet.getWorkbook();
    byte[] defaultLogoImage = getDefaultLogoImage();
    if(defaultLogoImage == null)
        return;
    int pictureIdx = workbook.addPicture(defaultLogoImage, Workbook.PICTURE_TYPE_PNG);

    CreationHelper creationHelper = workbook.getCreationHelper();
    ClientAnchor anchor = creationHelper.createClientAnchor(); //new XSSFClientAnchor();
    //          anchor.setAnchorType(AnchorType.MOVE_DONT_RESIZE);
    Drawing createDrawingPatriarch = sheet.createDrawingPatriarch();
    anchor.setDx1(0);
    anchor.setCol1(0);
    anchor.setRow1(0);

    //#1 테이블 셀의 너비에 의존적이지않게 사이즈조절.
    anchor.setAnchorType(AnchorType.MOVE_DONT_RESIZE);
    Picture createPicture = createDrawingPatriarch.createPicture(anchor, pictureIdx);
    //#2 테이블 셀의 너비에 의존적이지않게 사이즈조절.
    createPicture.resize();
}
项目:turnus    文件:PoiUtils.java   
/**
 * See the comment for the given cell
 * 
 * @param cell
 *            the cell
 * @param message
 *            the comment message
 */
public static void setComment(HSSFCell cell, String message) {
    Drawing drawing = cell.getSheet().createDrawingPatriarch();
    CreationHelper factory = cell.getSheet().getWorkbook().getCreationHelper();

    // When the comment box is visible, have it show in a 1x3 space
    ClientAnchor anchor = factory.createClientAnchor();
    anchor.setCol1(cell.getColumnIndex());
    anchor.setCol2(cell.getColumnIndex() + 1);
    anchor.setRow1(cell.getRowIndex());
    anchor.setRow2(cell.getRowIndex() + 1);
    anchor.setDx1(100);
    anchor.setDx2(1000);
    anchor.setDy1(100);
    anchor.setDy2(1000);

    // Create the comment and set the text+author
    Comment comment = drawing.createCellComment(anchor);
    RichTextString str = factory.createRichTextString(message);
    comment.setString(str);
    comment.setAuthor("TURNUS");
    // Assign the comment to the cell
    cell.setCellComment(comment);
}
项目:poix    文件:ExcelChartBuildService.java   
/**
 * 构建多个图形对象
 * @param dataSourceSheet
 * @param tragetSheet
 * @param graphList
 */
private static void buildExcelChart(Sheet dataSourceSheet, Sheet tragetSheet,
                                    List<ExcelGraph> graphList) {
    int len = graphList.size();
    if (len == 1) {
        buildExcelChart(dataSourceSheet, tragetSheet, graphList.get(0));
    } else {
        int drawStart = 0;
        int drawEnd = 20;
        Drawing drawing = tragetSheet.createDrawingPatriarch();
        for (int i = 0; i < len; i++) {
            ExcelGraph graph = graphList.get(i);
            ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 0, drawStart, 15, drawEnd);
            buildExcelChart(drawing, anchor, dataSourceSheet, graph);
            drawStart = drawStart + drawEnd;
            drawEnd = drawEnd + drawEnd;
        }
    }
}
项目:easypoi    文件:ExcelExportBase.java   
/**
 * 创建List之后的各个Cells
 * 
 * @param styles
 */
public void createListCells(Drawing patriarch, int index, int cellNum, Object obj,
                            List<ExcelExportEntity> excelParams, Sheet sheet, Workbook workbook)
                                                                                                throws Exception {
    ExcelExportEntity entity;
    Row row;
    if (sheet.getRow(index) == null) {
        row = sheet.createRow(index);
        row.setHeight(getRowHeight(excelParams));
    } else {
        row = sheet.getRow(index);
    }
    for (int k = 0, paramSize = excelParams.size(); k < paramSize; k++) {
        entity = excelParams.get(k);
        Object value = getCellValue(entity, obj);
        if (entity.getType() == 1) {
            createStringCell(row, cellNum++, value == null ? "" : value.toString(),
                row.getRowNum() % 2 == 0 ? getStyles(false, entity) : getStyles(true, entity),
                entity);
        } else {
            createImageCell(patriarch, entity, row, cellNum++,
                value == null ? "" : value.toString(), obj);
        }
    }
}
项目:read-open-source-code    文件:ExcelWriterStep.java   
private Comment createCellComment(String author, String comment) {

        // comments only supported for XLSX
        if (data.sheet instanceof XSSFSheet) {
            CreationHelper factory = data.wb.getCreationHelper();
            Drawing drawing = data.sheet.createDrawingPatriarch();

            ClientAnchor anchor = factory.createClientAnchor();
            Comment cmt = drawing.createCellComment(anchor);
            RichTextString str = factory.createRichTextString(comment);
            cmt.setString(str);
            cmt.setAuthor(author);
            return cmt;

        }
        return null;

    }
项目:kettle-4.4.0-stable    文件:ExcelWriterStep.java   
private Comment createCellComment(String author, String comment) {

        // comments only supported for XLSX
        if (data.sheet instanceof XSSFSheet) {
            CreationHelper factory = data.wb.getCreationHelper();
            Drawing drawing = data.sheet.createDrawingPatriarch();

            ClientAnchor anchor = factory.createClientAnchor();
            Comment cmt = drawing.createCellComment(anchor);
            RichTextString str = factory.createRichTextString(comment);
            cmt.setString(str);
            cmt.setAuthor(author);
            return cmt;

        }
        return null;

    }
项目:kettle-trunk    文件:ExcelWriterStep.java   
private Comment createCellComment(String author, String comment) {

        // comments only supported for XLSX
        if (data.sheet instanceof XSSFSheet) {
            CreationHelper factory = data.wb.getCreationHelper();
            Drawing drawing = data.sheet.createDrawingPatriarch();

            ClientAnchor anchor = factory.createClientAnchor();
            Comment cmt = drawing.createCellComment(anchor);
            RichTextString str = factory.createRichTextString(comment);
            cmt.setString(str);
            cmt.setAuthor(author);
            return cmt;

        }
        return null;

    }
项目:pentaho-kettle    文件:ExcelWriterStep.java   
private Comment createCellComment( String author, String comment ) {

    // comments only supported for XLSX
    if ( data.sheet instanceof XSSFSheet ) {
      CreationHelper factory = data.wb.getCreationHelper();
      Drawing drawing = data.sheet.createDrawingPatriarch();

      ClientAnchor anchor = factory.createClientAnchor();
      Comment cmt = drawing.createCellComment( anchor );
      RichTextString str = factory.createRichTextString( comment );
      cmt.setString( str );
      cmt.setAuthor( author );
      return cmt;

    }
    return null;

  }
项目:PoiExcelExport    文件:ExcelExportService.java   
/**
 * 抽象出图片生成业务代码
 * 
 * @throws IOException
 */
private void extractPicturePortion(String svgString, XSSFWorkbook wb,
        XSSFSheet sheet, int startCol, int endCol, int startRow, int endRow)
        throws IOException {
    // 图片
    if (org.apache.commons.lang3.StringUtils.isNotBlank(svgString)) {
        byte[] safeDataBytes = new BASE64Decoder().decodeBuffer(svgString);
        int pictureIdx = wb.addPicture(safeDataBytes,
                Workbook.PICTURE_TYPE_JPEG);
        CreationHelper helper = wb.getCreationHelper();
        // Create the drawing patriarch. This is the top level container for
        // all shapes.
        Drawing drawing = sheet.createDrawingPatriarch();
        // add a picture shape
        ClientAnchor anchor = helper.createClientAnchor();
        // set top-left corner of the picture,
        // subsequent call of Picture#resize() will operate relative to it
        anchor.setCol1(startCol);
        anchor.setCol2(endCol);
        anchor.setRow1(startRow);
        anchor.setRow2(endRow);
        anchor.setDx1(0);
        anchor.setDy1(0);
        anchor.setDx2(0);
        anchor.setDy2(0);
        anchor.setAnchorType(ClientAnchor.MOVE_DONT_RESIZE);
        Picture pict = drawing.createPicture(anchor, pictureIdx);
        pict.resize(1);
    }
}
项目:PoiExcelExport2.0    文件:ExcelExportService.java   
/**
 * 抽象出图片生成业务代码
 * 
 * @throws IOException
 */
private void extractPicturePortion(String svgString, XSSFWorkbook wb,
        XSSFSheet sheet, int startCol, int endCol, int startRow, int endRow)
        throws IOException {
    // 图片
    if (org.apache.commons.lang3.StringUtils.isNotBlank(svgString)) {
        byte[] safeDataBytes = new BASE64Decoder().decodeBuffer(svgString);
        int pictureIdx = wb.addPicture(safeDataBytes,
                Workbook.PICTURE_TYPE_JPEG);
        CreationHelper helper = wb.getCreationHelper();
        // Create the drawing patriarch. This is the top level container for
        // all shapes.
        Drawing drawing = sheet.createDrawingPatriarch();
        // add a picture shape
        ClientAnchor anchor = helper.createClientAnchor();
        // set top-left corner of the picture,
        // subsequent call of Picture#resize() will operate relative to it
        anchor.setCol1(startCol);
        anchor.setCol2(endCol);
        anchor.setRow1(startRow);
        anchor.setRow2(endRow);
        anchor.setDx1(0);
        anchor.setDy1(0);
        anchor.setDx2(0);
        anchor.setDy2(0);
        anchor.setAnchorType(ClientAnchor.MOVE_DONT_RESIZE);
        Picture pict = drawing.createPicture(anchor, pictureIdx);
        pict.resize(1);
    }
}
项目:poix    文件:ExcelExportBase.java   
/**
 * 创建List之后的各个Cells
 * @param patriarch
 * @param index
 * @param cellNum
 * @param obj
 * @param excelParams
 * @param sheet
 * @param workbook
 * @throws Exception
 */
public void createListCells(Drawing patriarch, int index, int cellNum, Object obj,
                            List<ExcelExportEntity> excelParams, Sheet sheet,
                            Workbook workbook) throws Exception {
    ExcelExportEntity entity;
    Row row;
    if (sheet.getRow(index) == null) {
        row = sheet.createRow(index);
        row.setHeight(getRowHeight(excelParams));
    } else {
        row = sheet.getRow(index);
    }
    for (int k = 0, paramSize = excelParams.size(); k < paramSize; k++) {
        entity = excelParams.get(k);
        Object value = getCellValue(entity, obj);
        if (entity.getType() == BaseEntityTypeConstants.StringType) {
            createStringCell(row, cellNum++, value == null ? "" : value.toString(),
                row.getRowNum() % 2 == 0 ? getStyles(false, entity) : getStyles(true, entity),
                entity);
            if (entity.isHyperlink()) {
                row.getCell(cellNum - 1)
                    .setHyperlink(dataHanlder.getHyperlink(
                        row.getSheet().getWorkbook().getCreationHelper(), obj, entity.getName(),
                        value));
            }
        } else if (entity.getType() == BaseEntityTypeConstants.DoubleType) {
            createDoubleCell(row, cellNum++, value == null ? "" : value.toString(),
                index % 2 == 0 ? getStyles(false, entity) : getStyles(true, entity), entity);
            if (entity.isHyperlink()) {
                row.getCell(cellNum - 1)
                    .setHyperlink(dataHanlder.getHyperlink(
                        row.getSheet().getWorkbook().getCreationHelper(), obj, entity.getName(),
                        value));
            }
        } else {
            createImageCell(patriarch, entity, row, cellNum++,
                value == null ? "" : value.toString(), obj);
        }
    }
}
项目:poix    文件:ExcelExportOfTemplateUtil.java   
/**
 * 往Sheet 填充正常数据,根据表头信息 使用导入的部分逻辑,坐对象映射
 * 
 * @param sheet
 * @param pojoClass
 * @param dataSet
 * @param workbook
 */
private void addDataToSheet(Class<?> pojoClass, Collection<?> dataSet, Sheet sheet,
                            Workbook workbook) throws Exception {

    if (workbook instanceof XSSFWorkbook) {
        super.type = ExcelType.XSSF;
    }
    // 获取表头数据
    Map<String, Integer> titlemap = getTitleMap(sheet);
    Drawing patriarch = sheet.createDrawingPatriarch();
    // 得到所有字段
    Field[] fileds = PoiPublicUtil.getClassFields(pojoClass);
    ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class);
    String targetId = null;
    if (etarget != null) {
        targetId = etarget.value();
    }
    // 获取实体对象的导出数据
    List<ExcelExportEntity> excelParams = new ArrayList<ExcelExportEntity>();
    getAllExcelField(null, targetId, fileds, excelParams, pojoClass, null);
    // 根据表头进行筛选排序
    sortAndFilterExportField(excelParams, titlemap);
    short rowHeight = getRowHeight(excelParams);
    int index = teplateParams.getHeadingRows() + teplateParams.getHeadingStartRow(),
            titleHeight = index;
    //下移数据,模拟插入
    sheet.shiftRows(teplateParams.getHeadingRows() + teplateParams.getHeadingStartRow(),
        sheet.getLastRowNum(), getShiftRows(dataSet, excelParams), true, true);
    if (excelParams.size() == 0) {
        return;
    }
    Iterator<?> its = dataSet.iterator();
    while (its.hasNext()) {
        Object t = its.next();
        index += createCells(patriarch, index, t, excelParams, sheet, workbook, rowHeight);
    }
    // 合并同类项
    mergeCells(sheet, excelParams, titleHeight);
}
项目:poix    文件:ExcelChartBuildService.java   
/**
 * 构建图形对象
 * @param dataSourceSheet
 * @param tragetSheet
 * @param graph
 */
private static void buildExcelChart(Sheet dataSourceSheet, Sheet tragetSheet,
                                    ExcelGraph graph) {
    Drawing drawing = tragetSheet.createDrawingPatriarch();
    ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 0, 0, 15, 20);
    buildExcelChart(drawing, anchor, dataSourceSheet, graph);
}
项目:easypoi    文件:ExcelExportOfTemplateUtil.java   
/**
 * 往Sheet 填充正常数据,根据表头信息 使用导入的部分逻辑,坐对象映射
 * 
 * @param teplateParams
 * @param pojoClass
 * @param dataSet
 * @param workbook
 */
private void addDataToSheet(Class<?> pojoClass, Collection<?> dataSet, Sheet sheet,
                            Workbook workbook) throws Exception {

    if (workbook instanceof XSSFWorkbook) {
        super.type = ExcelType.XSSF;
    }
    // 获取表头数据
    Map<String, Integer> titlemap = getTitleMap(sheet);
    Drawing patriarch = sheet.createDrawingPatriarch();
    // 得到所有字段
    Field[] fileds = PoiPublicUtil.getClassFields(pojoClass);
    ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class);
    String targetId = null;
    if (etarget != null) {
        targetId = etarget.value();
    }
    // 获取实体对象的导出数据
    List<ExcelExportEntity> excelParams = new ArrayList<ExcelExportEntity>();
    getAllExcelField(null, targetId, fileds, excelParams, pojoClass, null);
    // 根据表头进行筛选排序
    sortAndFilterExportField(excelParams, titlemap);
    short rowHeight = getRowHeight(excelParams);
    int index = teplateParams.getHeadingRows() + teplateParams.getHeadingStartRow(), titleHeight = index;
    //下移数据,模拟插入
    sheet.shiftRows(teplateParams.getHeadingRows() + teplateParams.getHeadingStartRow(),
        sheet.getLastRowNum(), getShiftRows(dataSet, excelParams), true, true);
    if (excelParams.size() == 0) {
        return;
    }
    Iterator<?> its = dataSet.iterator();
    while (its.hasNext()) {
        Object t = its.next();
        index += createCells(patriarch, index, t, excelParams, sheet, workbook, rowHeight);
    }
    // 合并同类项
    mergeCells(sheet, excelParams, titleHeight);
}
项目:swing    文件:Report.java   
protected void addChart(HSSFWorkbook workbook, byte[] chart, String name) {
    int pictureIndex = workbook.addPicture(chart, HSSFWorkbook.PICTURE_TYPE_PNG);
    HSSFSheet sheet = workbook.createSheet(name);
    addTitle(sheet, name, 0);
    Drawing drawing = sheet.createDrawingPatriarch();
    CreationHelper helper = workbook.getCreationHelper();
    ClientAnchor anchor = helper.createClientAnchor();
    anchor.setRow1(1);
    anchor.setCol1(0);
    Picture picture = drawing.createPicture(anchor, pictureIndex);
    picture.resize();
}
项目:Aspose_for_Apache_POI    文件:ApacheAddImage.java   
public static void main(String[] args) throws Exception
{
    String dataPath = "src/featurescomparison/workingwithworkbook/addimages/data/";

    //create a new workbook
    Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();

    //add picture data to this workbook.
    InputStream is = new FileInputStream(dataPath + "aspose.jpg");
    byte[] bytes = IOUtils.toByteArray(is);
    int pictureIdx = wb.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG);
    is.close();

    CreationHelper helper = wb.getCreationHelper();

    //create sheet
    Sheet sheet = wb.createSheet();

    // Create the drawing patriarch.  This is the top level container for all shapes. 
    Drawing drawing = sheet.createDrawingPatriarch();

    //add a picture shape
    ClientAnchor anchor = helper.createClientAnchor();
    //set top-left corner of the picture,
    //subsequent call of Picture#resize() will operate relative to it
    anchor.setCol1(3);
    anchor.setRow1(2);
    Picture pict = drawing.createPicture(anchor, pictureIdx);

    //auto-size picture relative to its top-left corner
    pict.resize();

    //save workbook
    String file = dataPath + "ApacheImage.xls";
    if(wb instanceof XSSFWorkbook) file += "x";
    FileOutputStream fileOut = new FileOutputStream(file);
    wb.write(fileOut);
    fileOut.close();
    System.out.println("Done...");
}
项目:gnvc-ims    文件:TagContext.java   
/**
 * Returns the <code>Sheet's</code> <code>Drawing</code> object, creating it
 * if it doesn't exist.  It is hoped that this would be replaced by a call
 * to <code>getDrawingPatriarch</code> in the POI "ss" package, and that
 * that call would NOT corrupt drawings, charts, etc.
 * @return A <code>Drawing</code>.
 * @since 0.2.0
 */
public Drawing createDrawing()
{
   if (myDrawing == null)
   {
      myDrawing = mySheet.createDrawingPatriarch();
   }
   return myDrawing;
}
项目:Runway-SDK    文件:ExcelExportSheet.java   
protected void writeHeader(Sheet sheet, Drawing drawing, Row nameRow, Row labelRow, int i, ExcelColumn column, CellStyle boldStyle)
{
  CreationHelper helper = sheet.getWorkbook().getCreationHelper();

  // Notify the listeners
  for (ExcelExportListener listener : listeners)
  {
    listener.preHeader(column);
  }

  nameRow.createCell(i).setCellValue(helper.createRichTextString(column.getAttributeName()));

  Cell cell = labelRow.createCell(i);
  cell.setCellValue(helper.createRichTextString(column.getDisplayLabel()));

  if (column.isRequired() && boldStyle != null)
  {
    cell.setCellStyle(boldStyle);
  }

  if (column.getDescription() != null && column.getDescription().length() > 0)
  {
    ClientAnchor anchor = helper.createClientAnchor();
    anchor.setDx1(0);
    anchor.setDy1(0);
    anchor.setDx2(0);
    anchor.setDy2(0);
    anchor.setCol1(0);
    anchor.setRow1(0);
    anchor.setCol2(0);
    anchor.setRow2(4);

    Comment comment = drawing.createCellComment(anchor);
    comment.setString(helper.createRichTextString(column.getDescription()));

    cell.setCellComment(comment);
  }

  sheet.autoSizeColumn((short) i);
}
项目:easypoi    文件:ExcelExportBase.java   
/**
 * 创建 最主要的 Cells
 * 
 * @param styles
 * @param rowHeight
 * @throws Exception
 */
public int createCells(Drawing patriarch, int index, Object t,
                       List<ExcelExportEntity> excelParams, Sheet sheet, Workbook workbook,
                       short rowHeight) throws Exception {
    ExcelExportEntity entity;
    Row row = sheet.createRow(index);
    row.setHeight(rowHeight);
    int maxHeight = 1, cellNum = 0;
    int indexKey = createIndexCell(row, index, excelParams.get(0));
    cellNum += indexKey;
    for (int k = indexKey, paramSize = excelParams.size(); k < paramSize; k++) {
        entity = excelParams.get(k);
        if (entity.getList() != null) {
            Collection<?> list = getListCellValue(entity, t);
            int listC = 0;
            for (Object obj : list) {
                createListCells(patriarch, index + listC, cellNum, obj, entity.getList(),
                    sheet, workbook);
                listC++;
            }
            cellNum += entity.getList().size();
            if (list != null && list.size() > maxHeight) {
                maxHeight = list.size();
            }
        } else {
            Object value = getCellValue(entity, t);
            if (entity.getType() == 1) {
                createStringCell(row, cellNum++, value == null ? "" : value.toString(),
                    index % 2 == 0 ? getStyles(false, entity) : getStyles(true, entity), entity);
            } else {
                createImageCell(patriarch, entity, row, cellNum++,
                    value == null ? "" : value.toString(), t);
            }
        }
    }
    // 合并需要合并的单元格
    cellNum = 0;
    for (int k = indexKey, paramSize = excelParams.size(); k < paramSize; k++) {
        entity = excelParams.get(k);
        if (entity.getList() != null) {
            cellNum += entity.getList().size();
        } else if (entity.isNeedMerge()) {
            for (int i = index + 1; i < index + maxHeight; i++) {
                sheet.getRow(i).createCell(cellNum);
                sheet.getRow(i).getCell(cellNum).setCellStyle(getStyles(false, entity));
            }
            sheet.addMergedRegion(new CellRangeAddress(index, index + maxHeight - 1, cellNum,
                cellNum));
            cellNum++;
        }
    }
    return maxHeight;

}
项目:birt    文件:FilteredSheet.java   
public Drawing createDrawingPatriarch() {
    return sheet.createDrawingPatriarch();
}
项目:birt    文件:PageHandler.java   
@Override
public void endPage(HandlerState state, IPageContent page) throws BirtException {

    if( EmitterServices.booleanOption( state.getRenderOptions(), page, ExcelEmitter.SINGLE_SHEET, false )  
        && ! state.reportEnding ) {
        return ;
    }       

    if( EmitterServices.booleanOption( state.getRenderOptions(), page, ExcelEmitter.STRUCTURED_HEADER, false ) ) {
        outputStructuredHeaderFooter(state, page.getFooter());
    } 

    String sheetName = prepareSheetName( state );
    if( sheetName != null ) {
        log.debug("Attempting to name sheet ", ( state.getWb().getNumberOfSheets() - 1 ), " \"", sheetName, "\" ");
        int existingSheetIndex = -1;
        for( int i = 0; i < state.getWb().getNumberOfSheets() - 1; ++i ) {
            if( state.getWb().getSheetName(i).equals(sheetName)) {
                log.debug("Found matching sheet at ", i, " \"", state.getWb().getSheetName(i), "\"" );
                existingSheetIndex = i;
                break;
            }
        }
        if (existingSheetIndex >= 0) {
            log.debug("Deleting sheet at ", existingSheetIndex, " \"", state.getWb().getSheetName(existingSheetIndex), "\"" );
            state.getWb().removeSheetAt(existingSheetIndex);
        }
        state.getWb().setSheetName(state.getWb().getNumberOfSheets() - 1, sheetName);
        if (existingSheetIndex >= 0) {
            state.getWb().setSheetOrder(sheetName,existingSheetIndex);
        }
        state.sheetName = null;
    } 
    if( state.sheetPassword != null ) {
        log.debug("Attempting to protect sheet ", ( state.getWb().getNumberOfSheets() - 1 ) );
        state.currentSheet.protectSheet( state.sheetPassword );
        state.sheetPassword = null;
    }

    Drawing drawing = null;
    if( ! state.images.isEmpty() ) {
        drawing = state.currentSheet.createDrawingPatriarch();
    }
    for( CellImage cellImage : state.images ) {
        processCellImage(state,drawing,cellImage);
    }
    state.images.clear();
    state.rowNum = 0;
    state.colNum = 0;
    state.clearRowSpans();
    state.areaBorders.clear();

    state.currentSheet = null;
}
项目:birt    文件:PageHandler.java   
/**
 * <p>
 * Process a CellImage from the images list and place the image on the sheet.
 * </p><p>
 * This involves changing the row height as necesssary and determining the column spread of the image.
 * </p>
 * @param cellImage
 * The image to be placed on the sheet.
 */
private void processCellImage( HandlerState state, Drawing drawing, CellImage cellImage ) {
    Coordinate location = cellImage.location;

    Cell cell = state.currentSheet.getRow( location.getRow() ).getCell( location.getCol() );

    IImageContent image = cellImage.image;      

    StyleManagerUtils smu = state.getSmu();
    float ptHeight = cell.getRow().getHeightInPoints();
    if( image.getHeight() != null ) {
        ptHeight = smu.fontSizeInPoints( image.getHeight().toString() );
    }

    // Get image width
    int endCol = cell.getColumnIndex();
       double lastColWidth = ClientAnchorConversions.widthUnits2Millimetres( (short)state.currentSheet.getColumnWidth( endCol ) )
            + 2.0;
       int dx = smu.anchorDxFromMM( lastColWidth, lastColWidth );
       double mmWidth = 0.0;
       if( smu.isAbsolute(image.getWidth())) {
           mmWidth = image.getWidth().convertTo(DimensionType.UNITS_MM);
       } else if(smu.isPixels(image.getWidth())) {
           mmWidth = ClientAnchorConversions.pixels2Millimetres( image.getWidth().getMeasure() );
       }
    // Allow image to span multiple columns
    CellRangeAddress mergedRegion = getMergedRegionBegunBy( state.currentSheet, location.getRow(), location.getCol() );
    if( (cellImage.spanColumns) || ( mergedRegion != null ) ) {
        log.debug( "Image size: ", image.getWidth(), " translates as mmWidth = ", mmWidth );
        if( mmWidth > 0) {
            double mmAccumulatedWidth = 0;
            int endColLimit = cellImage.spanColumns ? 256 : mergedRegion.getLastColumn();
            for( endCol = cell.getColumnIndex(); mmAccumulatedWidth < mmWidth && endCol < endColLimit; ++ endCol ) {
                lastColWidth = ClientAnchorConversions.widthUnits2Millimetres( (short)state.currentSheet.getColumnWidth( endCol ) )
                        + 2.0;
                mmAccumulatedWidth += lastColWidth;
                log.debug( "lastColWidth = ", lastColWidth, "; mmAccumulatedWidth = ", mmAccumulatedWidth);
            }
            if( mmAccumulatedWidth > mmWidth ) {
                mmAccumulatedWidth -= lastColWidth;
                --endCol;
                double mmShort = mmWidth - mmAccumulatedWidth;
                dx = smu.anchorDxFromMM( mmShort, lastColWidth );
            }
        }
    } else {
        float widthRatio = (float)(mmWidth / lastColWidth);
        ptHeight = ptHeight / widthRatio;
    }

    int rowsSpanned = state.findRowsSpanned( cell.getRowIndex(), cell.getColumnIndex() );
    float neededRowHeightPoints = ptHeight;

    for( int i = 0; i < rowsSpanned; ++i ) {
        int rowIndex = cell.getRowIndex() + 1 + i;
        neededRowHeightPoints -= state.currentSheet.getRow(rowIndex).getHeightInPoints();
    }

    if( neededRowHeightPoints > cell.getRow().getHeightInPoints()) {
        cell.getRow().setHeightInPoints( neededRowHeightPoints );
    }

    // ClientAnchor anchor = wb.getCreationHelper().createClientAnchor();
    ClientAnchor anchor = state.getWb().getCreationHelper().createClientAnchor();
       anchor.setCol1(cell.getColumnIndex());
       anchor.setRow1(cell.getRowIndex());
       anchor.setCol2(endCol);
       anchor.setRow2(cell.getRowIndex() + rowsSpanned);
       anchor.setDx2(dx);
       anchor.setDy2( smu.anchorDyFromPoints( ptHeight, cell.getRow().getHeightInPoints() ) );
       anchor.setAnchorType(ClientAnchor.MOVE_DONT_RESIZE);
    drawing.createPicture(anchor, cellImage.imageIdx);
}
项目:excel-streaming-reader    文件:StreamingSheet.java   
/**
 * Not supported
 */
@Override
public Drawing getDrawingPatriarch() {
  throw new UnsupportedOperationException();
}
项目:excel-streaming-reader    文件:StreamingSheet.java   
/**
 * Not supported
 */
@Override
public Drawing createDrawingPatriarch() {
  throw new UnsupportedOperationException();
}
项目:xlsmapper    文件:CellCommentStore.java   
/**
 * 保持している情報を元に、シートのセルにコメントを設定する。
 * @param sheet
 * @return POIの設定したコメントオブジェクト。
 * @throws IllegalArgumentException sheet is null.
 */
public Comment set(final Sheet sheet) {
    ArgUtils.notNull(sheet, "sheet");

    final CreationHelper helper = sheet.getWorkbook().getCreationHelper();
    final Drawing drawing = sheet.createDrawingPatriarch();

    // コメントの位置、サイズの指定
    int col1 = column + 1;
    int row1 = row;

    if(sheet instanceof HSSFSheet) {
        // 2003形式の場合は、行の位置をずらす。
        row1--;
    }

    int col2 = col1 + anchor.columnSize;
    int row2 = row1 + anchor.rowSize;
    final ClientAnchor clientAnchor = drawing.createAnchor(
            anchor.dx1, anchor.dy1, anchor.dx2, anchor.dy2,
            col1, row1, col2, row2
            );
    POIUtils.setClientAnchorType(clientAnchor, anchor.type);

    final Comment comment = drawing.createCellComment(clientAnchor);
    comment.setColumn(column);
    comment.setRow(row);
    comment.setAuthor(author);
    comment.setVisible(visible);

    // 装飾を適用する。
    final RichTextString richText = helper.createRichTextString(text.text);
    if(text.fonts != null) {
        for(TextFontStore fontStore : text.fonts) {
            if(fontStore.font != null) {
                richText.applyFont(fontStore.startIndex, fontStore.endIndex, fontStore.font);
            } else {
                richText.applyFont(fontStore.startIndex, fontStore.endIndex, fontStore.fontIndex);
            }
        }
    }

    comment.setString(richText);

    return comment;

}
项目:dataforms    文件:ExcelReport.java   
/**
 * 描画オブジェクトを取得します。
 * @return 描画オブジェクト。
 */
protected Drawing getDrawing() {
    return drawing;
}
项目:dataforms    文件:ExcelReport.java   
/**
 * 描画オブジェクトを設定します。
 * @param drawing 描画オブジェクト。
 */
protected void setDrawing(final Drawing drawing) {
    this.drawing = drawing;
}
项目:gnvc-ims    文件:TagContext.java   
/**
 * Returns the <code>Sheet's</code> <code>Drawing</code> object, if it
 * exists yet.
 * @return A <code>Drawing</code>, or <code>null</code> if it doesn't exist
 *    yet.
 * @since 0.2.0
 */
public Drawing getDrawing()
{
   return myDrawing;
}
项目:gnvc-ims    文件:TagContext.java   
/**
 * Sets the <code>Sheet's</code> <code>Drawing</code> object.  This is
 * usually used to initialize a <code>TagContext</code> from another
 * <code>TagContext</code>, copying the <code>Drawing</code> object.
 * @param drawing A <code>Drawing</code>.
 * @since 0.2.0
 */
public void setDrawing(Drawing drawing)
{
   myDrawing = drawing;
}