2013-07-19 1 views
1

(Apache POI를 사용하여) 새 셀에 CellComment를 복사하려고합니다. 나는 새 주석을 작성해야한다는 것을 알고있다 (새로운 셀에 오래된 주석을 설정하는 것과는 대조적 임). 그러나 앵커를 복제하는 방법을 찾을 수없는 것처럼 보입니다.CellComments를 새 셀에 복사하는 방법 (전체 시트를 복사 할 때)

private void createComment(Cell aNewCell, Comment theOldComment) { 
    CreationHelper createHelper = aNewCell.getSheet().getWorkbook().getCreationHelper(); 
    ClientAnchor anchor = createHelper.createClientAnchor(); 
    // How to get the old CellComment anchor for x1, c2, y1, y2??? 
    Drawing drawing = aNewCell.getSheet().createDrawingPatriarch(); 
    Comment aNewComment = drawing.createCellComment(anchor); 
    aNewComment.setString(theOldComment.getString()); 
    aNewCell.setCellComment(aNewComment); 
} 

답변

0

CreationHelper 대신 총지거인을 사용하십시오. HSSFPatriarch의 개체에서 앵커를 만들고 매개 변수로 값을 createAnchor 함수에 전달합니다. 희망이 도움이됩니다.

HSSFPatriarch drawing = sheet.createDrawingPatriarch(); 
ClientAnchor anchor = drawing.createAnchor(10, 20, 30, 40, (short)4, 2, (short)6, 5); 

희망이 있습니다.

private void createComment(HSSFCell aNewCell, Comment theOldComment) { 
     HSSFPatriarch drawing = aNewCell.getSheet().getDrawingPatriarch(); 
     ClientAnchor anchor = drawing.createAnchor(drawing.getChildren().get(0).getAnchor().getDx1(), 
       drawing.getChildren().get(0).getAnchor().getDx2(), drawing.getChildren().get(0).getAnchor().getDy1(), 
       drawing.getChildren().get(0).getAnchor().getDy2(), (short)4, 2, (short)6, 5); 
     Comment aNewComment = drawing.createCellComment(anchor); 
     aNewComment.setString(theOldComment.getString()); 
     aNewCell.setCellComment(aNewComment); 
    } 
관련 문제