Práce s komentáři

Práce s komentáři

Aspose.Cells FOSS pro Java vám umožňuje přidávat, číst, upravovat a odstraňovat komentáře (poznámky) buněk v sešitech XLSX. Ke komentářům se přistupuje prostřednictvím CommentCollection na listu a jsou reprezentovány jako objekty Comment, které nesou text poznámky, jméno autora a rozměry zobrazení.


Přehled

Každý list zpřístupňuje své komentáře prostřednictvím Worksheet.getComments(), který vrací CommentCollection. Můžete přidat komentář podle adresy buňky nebo podle indexu řádku/sloupce, načíst existující komentáře podle indexu nebo názvu buňky a odstranit je, když již nejsou potřeba.

Objekt Comment ukládá text poznámky (getNote()/setNote()), autora (getAuthor()/setAuthor()), jeho ukotvenou pozici (getRow(), getColumn()), rozměry zobrazení (getWidth(), getHeight()) a zda je ve výchozím nastavení viditelný (isVisible()/setVisible()).


Přístup ke komentářům na listu

Získejte CommentCollection z libovolného Worksheet pomocí Worksheet.getComments(). Použijte CommentCollection.getCount() k určení počtu existujících komentářů. Jednotlivé komentáře jsou přístupné pomocí nulového indexu přes CommentCollection.get(index) nebo podle názvu buňky přes CommentCollection.get(cellName).


Přidání komentáře

Použijte CommentCollection.add(cellName) nebo CommentCollection.add(row, column) k vložení nového komentáře. Obě přetížení vrací objekt Comment. Nastavte text poznámky a autora na vrácené instanci před uložením.

// Add a comment to cell B2 and configure it
Comment comment = ws.getComments().add("B2");
comment.setNote("Review this value before submission.");
comment.setAuthor("Analyst");
comment.setVisible(false);
comment.setWidth(180);
comment.setHeight(60);

Čtení obsahu komentáře

Iterujte přes všechny komentáře pomocí počtu:

CommentCollection comments = ws.getComments();
for (int i = 0; i < comments.getCount(); i++) {
    Comment c = comments.get(i);
    System.out.printf("Cell [%d,%d] author=%s note=%s%n",
        c.getRow(), c.getColumn(), c.getAuthor(), c.getNote());
}

Úprava existujícího komentáře

Získejte komentář podle adresy buňky a aktualizujte jeho pole přímo:

Comment c = ws.getComments().get("B2");
if (c != null) {
    c.setNote("Updated note text.");
    c.setVisible(true);
}

Odstranění komentáře

Použijte CommentCollection.removeAt(index) nebo CommentCollection.removeAt(cellName) k odstranění komentáře:

ws.getComments().removeAt("B2");

Tipy a osvědčené postupy

  • Vždy zkontrolujte, že CommentCollection.get(cellName) nevrací null, než upravíte komentář — buňka může nemít přiřazený žádný komentář.
  • Nastavte Comment.setVisible(false) pro anotace, které se mají zobrazovat pouze při najetí kurzorem, což odpovídá standardnímu chování Excelu.
  • Použijte Comment.setWidth() a Comment.setHeight() (v pixelech), aby byl rámeček poznámky dostatečně velký pro víceřádkový text.
  • Jména autorů jsou uložena jako obyčejné řetězce; neprovádí se jejich ověření vůči seznamu uživatelů sešitu.
  • Komentáře přežijí načtení/uložení ve formátu XLSX, pokud k CommentCollection nejsou provedeny žádné úpravy.

Časté problémy

ProblémPříčinaOprava
get(cellName) vrací nullŽádný komentář na této adreseZkontrolujte adresu buňky nebo iterujte podle indexu
Poznámka komentáře je po uložení prázdnásetNote() nebyl zavolán před uloženímZavolejte setNote() na vráceném Comment před uložením sešitu
Komentář není v Excelu viditelnýsetVisible(false) byl nastavenZměňte na setVisible(true) nebo přejděte myší nad buňku v Excelu

FAQ

Jak přidám komentář do konkrétního řádku a sloupce?

Použijte CommentCollection.add(row, column), kde oba hodnoty jsou indexy začínající nulou. Toto je ekvivalentní k add(cellName) s odpovídající adresou buňky.

Mohu změnit autora existujícího komentáře?

Ano. Získejte Comment pomocí get(cellName) a zavolejte setAuthor(name) s novým řetězcem autora.

Jak zjistím, zda je komentář aktuálně viditelný?

Zavolejte Comment.isVisible(). Vrací true, pokud je pole komentáře vždy zobrazeno; false, pokud se zobrazí pouze při přejetí myší.

Zůstávají komentáře zachovány při převodu do jiných formátů?

Komentáře jsou zachovány při zpětném převodu XLSX. Chování zachování pro ostatní formáty závisí na podpoře formátu v cílovém výstupu.

Jak spočítám komentáře v listu?

Použijte Worksheet.getComments().getCount().


API Reference Shrnutí

Comment

MetodaTyp vráceníPopis:
getRow()intIndex řádku kotvící buňky číslovaný od nuly.
getColumn()intIndex sloupce ukotvené buňky počítaný od nuly.
getNote()StringText komentáře.
setNote(note)voidNastaví text komentáře.
getAuthor()StringJméno autora.
setAuthor(author)voidNastaví jméno autora.
isVisible()booleanZda je komentářové pole vždy viditelné.
setVisible(visible)voidNastavuje viditelnost pole komentáře.
getWidth()intŠířka komentářového pole v pixelech.
setWidth(width)voidNastavuje šířku okna komentáře.
getHeight()intVýška políčka komentáře v pixelech.
setHeight(height)voidNastaví výšku pole komentáře.

CommentCollection

MetodaTyp vráceníPopis:
getCount()intPočet komentářů na pracovním listu.
get(index)CommentVrací komentář na indexu počítaném od nuly.
get(cellName)CommentVrací komentář na zadané adrese buňky.
add(row, column)CommentPřidá nový komentář na pozici řádek/sloupec.
add(cellName)CommentPřidá nový komentář na adresu buňky.
removeAt(index)voidOdstraní komentář na indexu počítaném od nuly.
removeAt(cellName)voidOdstraní komentář na adrese buňky.

Viz také:

 Čeština