Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы
Редакторы
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
Команда
Команда
Мобильные редакторы
Мобильные редакторы
Облачный офис
Облачный офис
Почта
Почта
Органайзер
Органайзер
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Получаем из документа все комментарии в массив и выводим комментарии в документ

Обновлено: 17.12.25

Основные методы, которые будем использовать в данном примере описаны тут: Класс для работы с комментариями. Рассмотрим работу с комментариями:

  • получить все комментарии (GetAllComments). Получаем массив со всеми комментариями. Также, в примере ниже приведён пример работы с массивом комментариев с использованием метода GetText;
  • удалим комментарий с индексом 1 (Delete);
builder.OpenFile("comments.docx");
var oDocument = Api.GetDocument();
var oParagraph = oDocument.GetElement(0);
var aComments = oDocument.GetAllComments(); //получаем массив со всеми комментариями
var sType = aComments[0].GetClassType();
oParagraph = Api.CreateParagraph(); //создаём параграф куда добавим элементы массива т.е. комментарии
oParagraph.AddText("Comment 0: " + aComments[0].GetText()); //выводим комментарий
oDocument.Push(oParagraph);
oParagraph = Api.CreateParagraph();
oParagraph.AddText("Comment 1: " + aComments[1].GetText());
oDocument.Push(oParagraph);

oParagraph = Api.CreateParagraph(); //создадим параграф куда выведем весь массив комментариев
oParagraph.AddText("Ниже выведем в цикле комменты из массива ");
oDocument.Push(oParagraph);
for (let i = 0; i < aComments.length; i++) { // в цикле выводим все комментарии
oParagraph = Api.CreateParagraph();
oParagraph.AddText("Коммент: " + aComments[i].GetText());
oDocument.Push(oParagraph);
}

oParagraph = Api.CreateParagraph();
oParagraph.AddText("Удалим коммент под индексом 1 ");
oDocument.Push(oParagraph);

aComments[1].Delete(); //удаляем комментарий с индексом 1
oParagraph = Api.CreateParagraph();
var aComments = oDocument.GetAllComments(); //перечитаем комменты в документе после удаления
oParagraph.AddText("Ниже выведем в цикле комменты из массива, после удаления ");
oDocument.Push(oParagraph);
for (let i = 0; i < aComments.length; i++) {
oParagraph = Api.CreateParagraph();
oParagraph.AddText("Комментарий: " + aComments[i].GetText());
oDocument.Push(oParagraph);
}

builder.SaveFile("docx", "GetAllCommentsAndDelete.docx");
builder.CloseFile();

Также, Вам может пригодиться Справочник методов класса ApiCommentReply текстового документа для работы с ответами на комментариями.