Arbeiten mit Kommentaren

Arbeiten mit Kommentaren

Aspose.Cells FOSS für Java ermöglicht das Hinzufügen, Lesen, Ändern und Entfernen von Zellenkommentaren (Notizen) in XLSX-Arbeitsmappen. Kommentare werden über das CommentCollection in einem Arbeitsblatt abgerufen und als Comment-Objekte dargestellt, die den Notiztext, den Autorennamen und die Anzeigedimensionen enthalten.


Übersicht

Jedes Arbeitsblatt stellt seine Kommentare über Worksheet.getComments() bereit, das ein CommentCollection zurückgibt. Sie können einen Kommentar per Zelladresse oder per Zeilen-/Spaltenindex hinzufügen, vorhandene Kommentare nach Index oder Zellnamen abrufen und sie entfernen, wenn sie nicht mehr benötigt werden.

Ein Comment speichert den Notiztext (getNote()/setNote()), den Autor (getAuthor()/setAuthor()), seine Ankerposition (getRow(), getColumn()), seine Anzeigedimensionen (getWidth(), getHeight()) und ob er standardmäßig sichtbar ist (isVisible()/setVisible()).


Zugriff auf Kommentare in einem Arbeitsblatt

Rufen Sie das CommentCollection aus jedem Worksheet über Worksheet.getComments() ab. Verwenden Sie CommentCollection.getCount(), um zu bestimmen, wie viele Kommentare vorhanden sind. Einzelne Kommentare sind über einen nullbasierten Index mittels CommentCollection.get(index) oder über den Zellnamen mittels CommentCollection.get(cellName) zugänglich.


Hinzufügen eines Kommentars

Verwenden Sie CommentCollection.add(cellName) oder CommentCollection.add(row, column), um einen neuen Kommentar einzufügen. Beide Überladungen geben ein Comment-Objekt zurück. Setzen Sie den Notiztext und den Autor auf der zurückgegebenen Instanz, bevor Sie sie speichern.

// 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);

Lesen des Kommentar-Inhalts

Iterieren Sie über alle Kommentare mit dem count:

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());
}

Ändern eines bestehenden Kommentars

Rufen Sie den Kommentar über die Zelladresse ab und aktualisieren Sie seine Felder direkt:

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

Entfernen eines Kommentars

Verwenden Sie CommentCollection.removeAt(index) oder CommentCollection.removeAt(cellName), um einen Kommentar zu löschen:

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

Tipps und bewährte Vorgehensweisen

  • Stellen Sie immer sicher, dass CommentCollection.get(cellName) nicht null zurückgibt, bevor Sie einen Kommentar ändern — die Zelle hat möglicherweise keinen Kommentar angehängt.
  • Legen Sie Comment.setVisible(false) für Anmerkungen fest, die nur beim Überfahren angezeigt werden sollen, was dem Standardverhalten von Excel entspricht.
  • Verwenden Sie Comment.setWidth() und Comment.setHeight() (in Pixeln), um sicherzustellen, dass das Notizfeld für mehrzeiligen Text ausreichend groß ist.
  • Autorennamen werden als einfache Zeichenketten gespeichert; sie werden nicht gegen die Benutzerliste der Arbeitsmappe validiert.
  • Kommentare überstehen einen Lade-/Speichervorgang im XLSX-Format, wenn an CommentCollection keine Änderungen vorgenommen werden.

Häufige Probleme

ProblemUrsacheLösung
get(cellName) gibt null zurückKein Kommentar an dieser AdresseÜberprüfen Sie die Zelladresse oder iterieren Sie nach Index
Kommentar-Notiz ist nach dem Speichern leersetNote() wurde nicht vor dem Speichern aufgerufenRufen Sie setNote() auf dem zurückgegebenen Comment auf, bevor Sie die Arbeitsmappe speichern
Kommentar in Excel nicht sichtbarsetVisible(false) wurde gesetztÄndern Sie zu setVisible(true) oder fahren Sie mit der Maus über die Zelle in Excel

FAQ

Wie füge ich einen Kommentar in einer bestimmten Zeile und Spalte hinzu?

Verwenden Sie CommentCollection.add(row, column), wobei beide Werte nullbasierte Indizes sind. Das entspricht add(cellName) mit der entsprechenden Zellenadresse.

Kann ich den Autor eines bestehenden Kommentars ändern?

Ja. Rufen Sie das Comment über get(cellName) ab und rufen Sie setAuthor(name) mit dem neuen Autor-String auf.

Wie prüfe ich, ob ein Kommentar derzeit sichtbar ist?

Rufen Sie Comment.isVisible() auf. Gibt true zurück, wenn das Kommentarfeld immer angezeigt wird; false, wenn es nur bei Mauszeigerkontakt erscheint.

Werden Kommentare beim Konvertieren in andere Formate beibehalten?

Kommentare werden beim XLSX-Rundweg beibehalten. Das Beibehaltungsverhalten für andere Formate hängt von der Formatunterstützung in der Zielausgabe ab.

Wie zähle ich Kommentare in einem Arbeitsblatt?

Verwenden Sie Worksheet.getComments().getCount().


API Reference Zusammenfassung

Comment

MethodeRückgabetypBeschreibung
getRow()intNullbasierter Zeilenindex der Ankerzelle.
getColumn()intNullbasierter Spaltenindex der Ankerzelle.
getNote()StringDer Kommentartext.
setNote(note)voidLegt den Kommentartext fest.
getAuthor()StringDer Autorenname.
setAuthor(author)voidSetzt den Autorennamen.
isVisible()booleanOb das Kommentarfeld immer sichtbar ist.
setVisible(visible)voidSetzt die Sichtbarkeit des Kommentarfelds.
getWidth()intBreite des Kommentarfelds in Pixeln.
setWidth(width)voidLegt die Breite des Kommentarfelds fest.
getHeight()intHöhe des Kommentarfelds in Pixeln.
setHeight(height)voidLegt die Höhe des Kommentarfelds fest.

CommentCollection

MethodeRückgabetypBeschreibung
getCount()intAnzahl der Kommentare im Arbeitsblatt.
get(index)CommentGibt den Kommentar am nullbasierten Index zurück.
get(cellName)CommentGibt den Kommentar an der angegebenen Zelladresse zurück.
add(row, column)CommentFügt einen neuen Kommentar an der Zeilen-/Spaltenposition hinzu.
add(cellName)CommentFügt einen neuen Kommentar an der Zelladresse hinzu.
removeAt(index)voidEntfernt den Kommentar am nullbasierten Index.
removeAt(cellName)voidEntfernt den Kommentar an der Zelladresse.

Siehe auch

 Deutsch