コメントの操作
コメントの操作
Aspose.Cells FOSS for Java は、XLSX ブック内のセルコメント(ノート)を追加、読み取り、変更、削除できるようにします。コメントはワークシート上の CommentCollection からアクセスされ、Comment オブジェクトとして表され、ノートテキスト、作成者名、表示サイズを保持します。
概要
各ワークシートは Worksheet.getComments() を通じてコメントを公開し、CommentCollection を返します。セルアドレスまたは行/列インデックスでコメントを追加でき、インデックスまたはセル名で既存のコメントを取得し、不要になったら削除できます。
A Comment は、ノートテキスト (getNote()/setNote())、作成者 (getAuthor()/setAuthor())、アンカー位置 (getRow(), getColumn())、表示サイズ (getWidth(), getHeight())、およびデフォルトで表示されるかどうか (isVisible()/setVisible()) を格納します。
ワークシート上のコメントへのアクセス
任意の Worksheet から Worksheet.getComments() を介して CommentCollection を取得します。CommentCollection.getCount() を使用してコメント数を確認します。個々のコメントは、ゼロベースのインデックスで CommentCollection.get(index) を通じて、またはセル名で CommentCollection.get(cellName) を通じてアクセス可能です。
コメントの追加
新しいコメントを挿入するには CommentCollection.add(cellName) または CommentCollection.add(row, column) を使用します。両方のオーバーロードは Comment オブジェクトを返します。保存する前に、返されたインスタンスのノートテキストと作成者を設定してください。
// 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);コメント内容の読み取り
カウントを使用してすべてのコメントを反復処理します:
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());
}既存のコメントの変更
セルアドレスでコメントを取得し、フィールドを直接更新します:
Comment c = ws.getComments().get("B2");
if (c != null) {
c.setNote("Updated note text.");
c.setVisible(true);
}コメントの削除
コメントを削除するには CommentCollection.removeAt(index) または CommentCollection.removeAt(cellName) を使用します:
ws.getComments().removeAt("B2");ヒントとベストプラクティス
- コメントを変更する前に、
CommentCollection.get(cellName)がnullを返さないことを必ず確認してください — セルにコメントが付いていない場合があります。 - ホバー時にのみ表示される注釈には
Comment.setVisible(false)を設定します。これは標準的な Excel の動作と一致します。 - マルチラインテキストが収まるように、ノートボックスのサイズを確保するため
Comment.setWidth()とComment.setHeight()(ピクセル単位)を使用してください。 - 作者名はプレーンな文字列として保存されます。ワークブックのユーザーリストに対して検証は行われません。
- コメントは
CommentCollectionに対して変更が行われていない場合、XLSX を介したロード/セーブの往復でも保持されます。
よくある問題
| 問題 | 原因 | 修正 |
|---|---|---|
get(cellName) は null を返します | そのアドレスにコメントがありません | セルアドレスを確認するか、インデックスで反復処理してください |
| 保存後にコメントノートが空です | setNote() が保存前に呼び出されていません | ワークブックを保存する前に、返された Comment に対して setNote() を呼び出してください |
| Excel でコメントが表示されません | setVisible(false) が設定されました | setVisible(true) に変更するか、Excel でセルにマウスオーバーしてください |
FAQ
特定の行と列にコメントを追加するにはどうすればよいですか?
両方の値がゼロベースのインデックスである CommentCollection.add(row, column) を使用します。これは、対応するセルアドレスを使用した add(cellName) と同等です。
既存のコメントの作成者を変更できますか?
はい。get(cellName) を使用して Comment を取得し、新しい作成者文字列で setAuthor(name) を呼び出します。
コメントが現在表示されているかどうかを確認するにはどうすればよいですか?
Comment.isVisible() を呼び出します。コメントボックスが常に表示されている場合は true を返し、ホバー時のみ表示される場合は false を返します。
他の形式に変換するとき、コメントは保持されますか?
XLSX の往復変換ではコメントが保持されます。他の形式についての保持動作は、対象出力での形式サポートに依存します。
ワークシート上のコメント数を取得するにはどうすればよいですか?
Worksheet.getComments().getCount() を使用してください。
API Reference の概要
Comment
| メソッド | 戻り値の型 | 説明 |
|---|---|---|
getRow() | int | アンカーセルのゼロベース行インデックスです。 |
getColumn() | int | アンカーセルのゼロベース列インデックス。 |
getNote() | String | コメントテキスト。 |
setNote(note) | void | コメントテキストを設定します。 |
getAuthor() | String | 著者名。 |
setAuthor(author) | void | 作者名を設定します。 |
isVisible() | boolean | コメントボックスが常に表示されるかどうか。 |
setVisible(visible) | void | コメント ボックスの表示状態を設定します。 |
getWidth() | int | コメントボックスの幅(ピクセル単位)。 |
setWidth(width) | void | コメントボックスの幅を設定します。 |
getHeight() | int | コメントボックスの高さ(ピクセル)。 |
setHeight(height) | void | コメントボックスの高さを設定します。 |
CommentCollection
| メソッド | 戻り値の型 | 説明 |
|---|---|---|
getCount() | int | ワークシート上のコメント数。 |
get(index) | Comment | ゼロベースのインデックスのコメントを返します。 |
get(cellName) | Comment | 指定されたセルアドレスのコメントを返します。 |
add(row, column) | Comment | 行/列の位置に新しいコメントを追加します。 |
add(cellName) | Comment | セルアドレスに新しいコメントを追加します。 |
removeAt(index) | void | ゼロベースのインデックスのコメントを削除します。 |
removeAt(cellName) | void | セルアドレスのコメントを削除します。 |