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()aComment.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
CommentCollectionnejsou provedeny žádné úpravy.
Časté problémy
| Problém | Příčina | Oprava |
|---|---|---|
get(cellName) vrací null | Žádný komentář na této adrese | Zkontrolujte 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ím | Zavolejte setNote() na vráceném Comment před uložením sešitu |
| Komentář není v Excelu viditelný | setVisible(false) byl nastaven | Změň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
| Metoda | Typ vrácení | Popis: |
|---|---|---|
getRow() | int | Index řádku kotvící buňky číslovaný od nuly. |
getColumn() | int | Index sloupce ukotvené buňky počítaný od nuly. |
getNote() | String | Text komentáře. |
setNote(note) | void | Nastaví text komentáře. |
getAuthor() | String | Jméno autora. |
setAuthor(author) | void | Nastaví jméno autora. |
isVisible() | boolean | Zda je komentářové pole vždy viditelné. |
setVisible(visible) | void | Nastavuje viditelnost pole komentáře. |
getWidth() | int | Šířka komentářového pole v pixelech. |
setWidth(width) | void | Nastavuje šířku okna komentáře. |
getHeight() | int | Výška políčka komentáře v pixelech. |
setHeight(height) | void | Nastaví výšku pole komentáře. |
CommentCollection
| Metoda | Typ vrácení | Popis: |
|---|---|---|
getCount() | int | Počet komentářů na pracovním listu. |
get(index) | Comment | Vrací komentář na indexu počítaném od nuly. |
get(cellName) | Comment | Vrací komentář na zadané adrese buňky. |
add(row, column) | Comment | Přidá nový komentář na pozici řádek/sloupec. |
add(cellName) | Comment | Přidá nový komentář na adresu buňky. |
removeAt(index) | void | Odstraní komentář na indexu počítaném od nuly. |
removeAt(cellName) | void | Odstraní komentář na adrese buňky. |