създаване на клетъчни коментари с помощта на HSSFClientAnchor в apache poi

Може ли някой да ми обясни как правилно да използвам котвите, когато създавам коментари в клетка? Моите работеха, но електронната таблица се промени и имам проблеми с показването на коментарите в клетката ми. Това е кодът, който използвах и работи:

 Comment c = drawing.createCellComment (new HSSFClientAnchor(0, 0, 0, 0, (short)4, 2, (short)6, 5));

Това беше установено най-вече чрез експериментиране наоколо. Гледането на API за това не го прави точно по-ясно.

Въз основа на ръководството за бърз старт, аз също опитах следното без успех:

ClientAnchor anchor = chf.createClientAnchor();
Comment c = drawing.createCellComment(anchor);
c.setString(chf.createRichTextString(message)); 

person Casey    schedule 17.02.2010    source източник


Отговори (2)


Малко късно, но това вероятно ще работи (работи за мен, докато примерът за POI на Apache от бързия старт също не работи за мен):

    public void setComment(String text, Cell cell) {
    final Map<Sheet, HSSFPatriarch> drawingPatriarches = new HashMap<Sheet, HSSFPatriarch>();

    CreationHelper createHelper = cell.getSheet().getWorkbook().getCreationHelper();
    HSSFSheet sheet = (HSSFSheet) cell.getSheet();
    HSSFPatriarch drawingPatriarch = drawingPatriarches.get(sheet);
    if (drawingPatriarch == null) {
        drawingPatriarch = sheet.createDrawingPatriarch();
        drawingPatriarches.put(sheet, drawingPatriarch);
    }

    Comment comment = drawingPatriarch.createComment(new HSSFClientAnchor(0, 0, 0, 0, (short) 4, 2, (short) 6, 5));
    comment.setString(createHelper.createRichTextString(text));
    cell.setCellComment(comment);
}

Ерик Прагт

person Erik Pragt    schedule 22.04.2010
comment
В крайна сметка това е, което направих. - person Casey; 22.04.2010

Следният код работи за мен за файлове във формат Office 2007 (xlsx). Разбрах това от ръководството за POI http://poi.apache.org/spreadsheet/quick-guide.html#CellComments и Как да зададете коментари за 3 клетки с помощта на apache poi

protected void setCellComment(Cell 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(100);
    anchor.setDy1(100);
    anchor.setDy2(100);

    // Create the comment and set the text+author
    Comment comment = drawing.createCellComment(anchor);
    RichTextString str = factory.createRichTextString(message);
    comment.setString(str);
    comment.setAuthor("Apache POI");
    // Assign the comment to the cell
    cell.setCellComment(comment);
}
person lastnitescurry    schedule 04.07.2011