Praca z komentarzami

Praca z komentarzami

Aspose.Cells FOSS dla Java pozwala dodawać, odczytywać, modyfikować i usuwać komentarze komórek (notatki) w skoroszytach XLSX. Komentarze są dostępne poprzez CommentCollection na arkuszu i są reprezentowane jako obiekty Comment, które zawierają tekst notatki, nazwę autora i wymiary wyświetlania.


Przegląd

Każdy arkusz udostępnia swoje komentarze poprzez Worksheet.getComments(), który zwraca CommentCollection. Możesz dodać komentarz podając adres komórki lub indeks wiersza/kolumny, pobrać istniejące komentarze według indeksu lub nazwy komórki oraz usunąć je, gdy nie są już potrzebne.

Obiekt Comment przechowuje tekst notatki (getNote()/setNote()), autora (getAuthor()/setAuthor()), pozycję kotwicy (getRow(), getColumn()), wymiary wyświetlania (getWidth(), getHeight()) oraz informację, czy jest domyślnie widoczny (isVisible()/setVisible()).


Uzyskiwanie dostępu do komentarzy w arkuszu

Pobierz CommentCollection z dowolnego Worksheet za pomocą Worksheet.getComments(). Użyj CommentCollection.getCount(), aby określić liczbę istniejących komentarzy. Poszczególne komentarze są dostępne przez indeks zerowy za pomocą CommentCollection.get(index) lub przez nazwę komórki za pomocą CommentCollection.get(cellName).


Dodawanie komentarza

Użyj CommentCollection.add(cellName) lub CommentCollection.add(row, column), aby wstawić nowy komentarz. Obie przeciążenia zwracają obiekt Comment. Ustaw tekst notatki i autora na zwróconym egzemplarzu przed zapisaniem.

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

Odczytywanie treści komentarza

Iteruj po wszystkich komentarzach, używając licznika:

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

Modyfikowanie istniejącego komentarza

Pobierz komentarz według adresu komórki i zaktualizuj jego pola bezpośrednio:

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

Usuwanie komentarza

Użyj CommentCollection.removeAt(index) lub CommentCollection.removeAt(cellName), aby usunąć komentarz:

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

Wskazówki i najlepsze praktyki

  • Zawsze sprawdzaj, czy CommentCollection.get(cellName) nie zwraca null przed modyfikacją komentarza — komórka może nie mieć dołączonego komentarza.
  • Ustaw Comment.setVisible(false) dla adnotacji, które powinny pojawiać się tylko po najechaniu, co odpowiada standardowemu zachowaniu Excela.
  • Użyj Comment.setWidth() i Comment.setHeight() (w pikselach), aby zapewnić, że pole notatki jest wystarczająco duże na tekst wielowierszowy.
  • Nazwy autorów są przechowywane jako zwykłe ciągi znaków; nie są weryfikowane względem listy użytkowników skoroszytu.
  • Komentarze przetrwają cykl wczytania/zapisu w formacie XLSX, gdy nie wprowadzono żadnych zmian w CommentCollection.

Typowe problemy

ProblemPrzyczynaNaprawa
get(cellName) zwraca nullBrak komentarza pod tym adresemSprawdź adres komórki lub iteruj według indeksu
Notatka komentarza jest pusta po zapisaniusetNote() nie zostało wywołane przed zapisemWywołaj setNote() na zwróconym Comment przed zapisaniem skoroszytu
Komentarz niewidoczny w ExcelusetVisible(false) został ustawionyZmień na setVisible(true) lub najedź kursorem na komórkę w Excelu

FAQ

Jak dodać komentarz w określonym wierszu i kolumnie?

Użyj CommentCollection.add(row, column), gdzie obie wartości są indeksami zerowymi. To jest równoważne add(cellName) z odpowiednim adresem komórki.

Czy mogę zmienić autora istniejącego komentarza?

Tak. Pobierz Comment za pomocą get(cellName) i wywołaj setAuthor(name) z nowym ciągiem autora.

Jak sprawdzić, czy komentarz jest obecnie widoczny?

Wywołaj Comment.isVisible(). Zwraca true, jeśli pole komentarza jest zawsze wyświetlane; false, jeśli pojawia się tylko po najechaniu.

Czy komentarze są zachowywane przy konwersji do innych formatów?

Komentarze są zachowywane przy dwukierunkowej konwersji XLSX. Zachowanie zachowywania w innych formatach zależy od wsparcia formatu w docelowym wyjściu.

Jak policzyć komentarze na arkuszu?

Użyj Worksheet.getComments().getCount().


Podsumowanie API Reference

Comment

MetodaTyp zwracanyOpis
getRow()intIndeks wiersza liczony od zera komórki kotwicy.
getColumn()intIndeks kolumny (liczony od zera) komórki kotwicy.
getNote()StringTekst komentarza.
setNote(note)voidUstawia tekst komentarza.
getAuthor()StringNazwa autora.
setAuthor(author)voidUstawia nazwę autora.
isVisible()booleanCzy pole komentarza jest zawsze widoczne.
setVisible(visible)voidUstawia widoczność pola komentarza.
getWidth()intSzerokość pola komentarza w pikselach.
setWidth(width)voidUstawia szerokość pola komentarza.
getHeight()intWysokość pola komentarza w pikselach.
setHeight(height)voidUstawia wysokość pola komentarza.

CommentCollection

MetodaTyp zwracanyOpis
getCount()intLiczba komentarzy w arkuszu.
get(index)CommentZwraca komentarz pod indeksem zerowym.
get(cellName)CommentZwraca komentarz podanym adresem komórki.
add(row, column)CommentDodaje nowy komentarz w pozycji wiersz/kolumna.
add(cellName)CommentDodaje nowy komentarz pod adresem komórki.
removeAt(index)voidUsuwa komentarz pod indeksem zerowym.
removeAt(cellName)voidUsuwa komentarz pod adresem komórki.

Zobacz także

 Polski