[]
        
(Showing Draft Content)

批注

批注是指显示为对话或讨论的电子表格评论。 这些评论提供了一个回复框,允许用户对导致对话的评论进行回复。

GcExcel 允许您通过ICommentThreaded 接口添加批注。 特定工作表上的批注集合中的每条批注由 ICommentThreaded 对象表示。 评论按行然后列的顺序存储在集合中。


新建批注

要为工作表单元格创建批注,您可以使用 IRange 接口的 addCommentThread 方法。 此方法接受评论文本和作者姓名作为其参数。

// Create threaded comment for range C3.
ICommentThreaded commentThreadedC3 = worksheet.getRange("C3").addCommentThreaded("Range C3's threaded comment","Bill");

// Add a reply for commentThreadedC3.
ICommentThreaded Reply = commentThreadedC3.addReply("Range C3's reply","Even");

添加对批注的回复

要添加对批注的回复,您可以使用ICommentThreadedaddReply 方法 . 如果批注是顶级批注,则该方法将回复添加到回复集合中。 如果批注是回复,则该方法将回复添加到父级的回复集合。 可以使用 getReplies 方法获取回复集合。

// Add replies for commentThreadedC3.
ICommentThreaded Reply_1 = commentThreadedC3.addReply("Mark's reply", "Mark");
ICommentThreaded Reply_2 = commentThreadedC3.addReply("Bill's reply", "Bill");

修改批注

要修改批注,您可以使用批注的 setText 方法来设置新字符串。

// Sets a new text for commentTHreadedC3.
commentThreadedC3.setText("New Content");

// Delete Reply_1
Reply_1.delete();

// Sets a new text for Reply_2.
Reply_2.setText("Bill's new reply");

读取批注

GcExcel Java 提供了各种属性,您可以使用这些属性读取批注及其属性,例如日期戳、作者等。要获取工作表上的批注的整个集合,您可以使用 IWorksheet.getCommentsThreaded 方法,而可以使用 get 方法从 ICommentThreaded 集合中获取特定的批注。您也可以 使用 getCount 方法获取工作表上的评论总数。如果批注是回复,ICommentsThreaded 接口还提供 getParent 方法来获取父级。 要阅读评论的日期戳或作者,您可以使用 DateTimegetAuthor 方法。 您还可以获取工作表中批注的 下一个 上一个 评论。

// Get a specific comment
System.out.println("Get a specific comment : " + worksheet.getCommentsThreaded().get(0).getText());

// Get replies count
System.out.println("Replies Count : " + commentThreadedC3.getReplies().getCount());

// Get all replies on a specific comment
for (int i = 0; i < commentThreadedC3.getReplies().getCount(); i++)
    System.out.println("Get replies text[" + i + "] : " + commentThreadedC3.getReplies().get(i).getText());

// Get author of comment
System.out.println("Author Name : " + commentThreadedC3.getAuthor().getName().toString());

// Get collection of threaded comments
System.out.println("Get collection of threaded comments : " + worksheet.getCommentsThreaded().getCount());

// Get Date stamp of comment
Date date = commentThreadedC3.DateTime();
DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
String strDate = dateFormat.format(date);
System.out.println("Date of Comment : " + strDate);

// Get Time stamp of comment
Date time = commentThreadedC3.DateTime();
DateFormat timeFormat = new SimpleDateFormat("hh:mm:ss");
String strTime = timeFormat.format(time);
System.out.println("Time of Comment : " + strTime);

// Get C3's next comment
System.out.println("C3's next comment : " + commentThreadedC3.next().getText());

// Get D3's previous comment
System.out.println("D3's previous comment : " + commentThreadedD3.previous().getText());

// Get parent of a reply    
System.out.println("Parent of Reply_1 : " + Reply_1.getParent().getText());
System.out.println("Parent of Reply_2 : " + Reply_2.getParent().getText());

以下是经过上述处理后在控制台上显示的结果:


禁用批注

GcExcel提供了setIsResolved方法来设置批注的解析状态。 将此方法设置为 true 还意味着,批注被禁用,用户无法编辑或回复该评论。

commentThreadedC3.setIsResolved(true);

清除批注

要删除批注和与该评论关联的回复,您可以使用 ICommentThreaded.delete 方法。如果目标 CommentThreaded 对象是顶级注释,则此方法删除指定的注释。但是,如果目标评论是评论线程之一中的回复,则此方法会从父评论的回复集合中删除该回复。 您还可以使用IRange.clearCommentsThreaded 方法清除一系列单元格中的批注。

// Delete a single cell threaded comment.
commentThreadedE3.delete();

// Clear a range of cells threaded comment.
worksheet.getRange("F3:G4").clearCommentsThreaded();

设置作者姓名

要设置评论的作者,您可以使用 IAuthor 接口的 setName 方法。

//Set author name
IAuthor author = commentThreadedC3.getAuthor();
author.setName("Alex");