Werken met opmerkingen
Werken met opmerkingen
Aspose.Cells FOSS voor Java stelt je in staat om celopmerkingen (notities) toe te voegen, te lezen, te wijzigen en te verwijderen in XLSX-werkboeken. Opmerkingen worden benaderd via de CommentCollection op een werkblad en worden weergegeven als Comment-objecten die de notitietekst, auteursnaam en weergavedimensies bevatten.
Overzicht
Elk werkblad maakt zijn opmerkingen toegankelijk via Worksheet.getComments(), die een CommentCollection retourneert. Je kunt een opmerking toevoegen via het celadres of via rij-/kolomindex, bestaande opmerkingen ophalen via index of celnaam, en ze verwijderen wanneer ze niet meer nodig zijn.
Een Comment slaat de notitietekst op (getNote()/setNote()), de auteur (getAuthor()/setAuthor()), zijn ankerpositie (getRow(), getColumn()), zijn weergavedimensies (getWidth(), getHeight()), en of hij standaard zichtbaar is (isVisible()/setVisible()).
Toegang tot opmerkingen op een werkblad
Haal de CommentCollection op van elke Worksheet via Worksheet.getComments(). Gebruik CommentCollection.getCount() om te bepalen hoeveel opmerkingen aanwezig zijn. Individuele opmerkingen zijn toegankelijk via een nulgebaseerde index met CommentCollection.get(index) of via celnaam met CommentCollection.get(cellName).
Een opmerking toevoegen
Gebruik CommentCollection.add(cellName) of CommentCollection.add(row, column) om een nieuwe opmerking in te voegen. Beide overloads retourneren een Comment object. Stel de opmerkingstekst en auteur in op de geretourneerde instantie voordat u deze opslaat.
// 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);Opmerkinginhoud lezen
Itereer over alle opmerkingen met behulp van de teller:
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());
}Een bestaande opmerking wijzigen
Haal de opmerking op via het celadres en werk de velden direct bij:
Comment c = ws.getComments().get("B2");
if (c != null) {
c.setNote("Updated note text.");
c.setVisible(true);
}Een opmerking verwijderen
Gebruik CommentCollection.removeAt(index) of CommentCollection.removeAt(cellName) om een opmerking te verwijderen:
ws.getComments().removeAt("B2");Tips en best practices
- Controleer altijd dat
CommentCollection.get(cellName)nietnullteruggeeft voordat u een opmerking wijzigt — de cel heeft mogelijk geen opmerking gekoppeld. - Stel
Comment.setVisible(false)in voor aantekeningen die alleen bij zweven moeten verschijnen, wat overeenkomt met het standaardgedrag van Excel. - Gebruik
Comment.setWidth()enComment.setHeight()(in pixels) om te zorgen dat het notitievak groot genoeg is voor meerregelige tekst. - Auteursnamen worden opgeslagen als platte tekenreeksen; ze worden niet gevalideerd tegen de gebruikerslijst van de werkmap.
- Opmerkingen blijven behouden tijdens een laad-/opsla-ronde via XLSX wanneer er geen wijzigingen worden aangebracht in
CommentCollection.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
get(cellName) retourneert null | Geen commentaar op dat adres | Controleer het celadres of itereren op index |
| Commentaarnotitie is leeg na opslaan | setNote() niet aangeroepen vóór opslaan | Roep setNote() aan op de geretourneerde Comment voordat u de werkmap opslaat |
| Opmerking niet zichtbaar in Excel | setVisible(false) was ingesteld | Wijzig naar setVisible(true) of zweef met de muis over de cel in Excel |
FAQ
Hoe voeg ik een opmerking toe op een specifieke rij en kolom?
Gebruik CommentCollection.add(row, column), waarbij beide waarden nul-gebaseerde indexen zijn. Dit is gelijk aan add(cellName) met het overeenkomende celadres.
Kan ik de auteur van een bestaande opmerking wijzigen?
Ja. Haal de Comment op via get(cellName) en roep setAuthor(name) aan met de nieuwe auteurstring.
Hoe controleer ik of een opmerking momenteel zichtbaar is?
Roep Comment.isVisible() aan. Retourneert true als het opmerkingenvak altijd wordt weergegeven; false als het alleen verschijnt bij zweven.
Worden opmerkingen bewaard bij het converteren naar andere formaten?
Opmerkingen worden bewaard bij een XLSX round-trip. Het bewaar-gedrag voor andere formaten hangt af van de formatondersteuning in de doeloutput.
Hoe tel ik opmerkingen op een werkblad?
Gebruik Worksheet.getComments().getCount().
API Reference Samenvatting
Comment
| Methode | Retourtype | Beschrijving |
|---|---|---|
getRow() | int | Nulgebaseerde rij-index van de ankercel. |
getColumn() | int | Nulgebaseerde kolomindex van de ankercel. |
getNote() | String | De commentaartekst. |
setNote(note) | void | Stelt de commentaartekst in. |
getAuthor() | String | De naam van de auteur. |
setAuthor(author) | void | Stelt de auteursnaam in. |
isVisible() | boolean | Of het reactie-vak altijd zichtbaar is. |
setVisible(visible) | void | Stelt de zichtbaarheid van het commentaarvak in. |
getWidth() | int | Breedte van het reactievak in pixels. |
setWidth(width) | void | Stelt de breedte van het commentaarvak in. |
getHeight() | int | Hoogte van het commentaarvak in pixels. |
setHeight(height) | void | Stelt de hoogte van het commentaarvak in. |
CommentCollection
| Methode | Retourtype | Beschrijving |
|---|---|---|
getCount() | int | Aantal opmerkingen op het werkblad. |
get(index) | Comment | Retourneert de opmerking op de nul-gebaseerde index. |
get(cellName) | Comment | Retourneert de opmerking op het opgegeven celadres. |
add(row, column) | Comment | Voegt een nieuwe opmerking toe op de rij/kolompositie. |
add(cellName) | Comment | Voegt een nieuwe opmerking toe op het celadres. |
removeAt(index) | void | Verwijdert de opmerking op de nulgebaseerde index. |
removeAt(cellName) | void | Verwijdert de opmerking op het celadres. |