有时只需要删除文档中的注释,要怎么快速做到呢?在这篇文章中,我们将会展示如何为ONLYOFFICE创建一个简单的宏,来删除某些特定的或所有评论,从而保持协作的重点和整洁。
什么是 ONLYOFFICE 宏
如果您是一名资深 Microsoft Excel 用户,那么相信您已对于 VBA 宏非常熟悉了。这些宏是帮助您自动执行日常任务的小型脚本。无论是重构数据,还是在单元格区域中插入多个值。ONLYOFFICE 宏的基础是 JavaScript 语法与文档生成器 API 方法。基于 JavaSript 的宏易于使用,具有跨平台特性且十分安全。这就使得其与 VBA 相比有着显著的优势。
创建宏
var oDocument = Api.GetDocument();
首先,我们在 oDocument 变量中获取当前工作文档。
var aComments = oDocument.GetAllComments();
var enteredText = "THE COMMENT YOU WANT TO DELETE";
接下来,我们使用 GetAllComments() 方法获取宏中的所有注释,并设置要搜索的注释。如果要删除文档中的所有注释,可以跳过此步骤并按照以下步骤操作。
for (let i = 0; i < aComments.length; i++) {
var sQuoteText = aComments[i].GetText();
接下来,我们设置 for 循环,该循环迭代 aComments 数组并获取 sQuoteText 中每次迭代的注释文本。
//aComments[i].Delete(); Uncomment if you want to delete every comment in the document
如果要删除文档中的所有注释,可以取消注释此行并运行宏。
if (sQuoteText === enteredText) {
aComments[i].Delete();
}
}
最后,我们检查输入的单词(enteredText)是否与注释中的文本匹配。如果是这样,我们使用 delete() 方法删除对该单词的注释。
完整的宏代码
下面是完整的宏代码。
(function () {
//get the active sheets and comments
var oDocument = Api.GetDocument();
var aComments = oDocument.GetAllComments();
var enteredText = "THE COMMENT YOU WANT TO DELETE"; //place your comment here
//for loop to iterate through all the comments
for (let i = 0; i < aComments.length; i++) {
var sQuoteText = aComments[i].GetText();
//aComments[i].Delete(); Uncomment if you want to delete every comment in the document
//this if statement deletes all instances of the specified comment from the doc
if (sQuoteText === enteredText) {
aComments[i].Delete();
}
}
})();
现在让我们运行我们的宏,看看它的实际效果!
删除所有评论:
删除特定注释:
以上就是一个简单的宏教程。这个小工具将使文档编辑更加顺畅,节省时间并促进协作。
不要错过利用 ONLYOFFICE API 强大功能的机会。我们广泛的 API 方法库是您将想法变为现实的关键。如果您有任何问题或创新概念,欢迎与我们分享。也很高兴能够与您合作。祝探索之路好运!