Удаление примечаний из файлов Excel и PowerPoint

В предыдущей записи я показал, как удалять примечания из файла Word. Сегодня я продемонстрирую, как выполняется этот же сценарий, но с файлами Excel и PowerPoint. В Excel и PowerPoint есть функция "Инспектор документов", которая позволяет удалять различные типы данных и содержимого, включая примечания. Эта функция очень хорошо работает в клиентских решениях, но как выполнить очистку файлов от примечаний на сервере? Open XML SDK может справиться с этой задачей с помощью всего нескольких строк кода.

Примечание. Представленный здесь код обратно совместим с версией 1 пакета SDK.

Решение для PowerPoint

Допустим, я начинаю работу с презентацией PowerPoint, содержащей множество слайдов и примечаний. Вот снимок экрана, на котором изображены примечания внутри слайда PowerPoint:

Для удаления примечаний из презентации PowerPoint необходимо выполнить следующие действия:

  1. Открыть презентацию PowerPoint с помощью пакета Open XML SDK.
  2. Получить доступ к главному разделу презентации, который предоставляет доступ ко всем разделам слайдов в пакете.
  3. Удалить раздел примечаний, связанный с каждым разделом слайда.
  4. Сохранить изменения презентации.

Если вы хотите отслеживать все этапы работы непосредственно по коду, наше решение можно без труда загрузить здесь.

Код

Код довольно простой и полностью соответствует перечисленным выше шагам.

static void RemovePowerPointComments(string filename) { using (PresentationDocument myPresentation = PresentationDocument.Open(filename, true)) { PresentationPart presentationPart = myPresentation.PresentationPart; foreach (SlidePart slide in presentationPart.SlideParts) { slide.DeletePart(slide.SlideCommentsPart); } } }

Заключение

Выполнив этот метод, мы получим презентацию без примечаний. Легко!

Вот снимок экрана с итоговой презентацией:

Решение для Excel

Это решение очень похоже на решение для PowerPoint.

Допустим, у нас есть книга Excel с множеством листов, каждый из которых содержит несколько примечаний. Вот снимок экрана, на котором изображено примечание в ячейке листа:

Для удаления примечаний из книги Excel необходимо выполнить следующие действия:

  1. Открыть книгу Excel с помощью пакета Open XML SDK.
  2. Получить доступ к главному разделу книги, который предоставляет доступ ко всем разделам листов в пакете.
  3. Удалить все примечания, связанные с каждым разделом листа.
  4. Сохранить изменения в книге.

Если вы хотите отслеживать все этапы работы непосредственно по коду, наше решение можно без труда загрузить здесь.

Код

Код очень похож на код, используемый для удаления примечаний из презентации PowerPoint.

static void RemoveExcelComments(string filename) { using (SpreadsheetDocument myWorkbook = SpreadsheetDocument.Open(filename, true)) { WorkbookPart workbookPart = myWorkbook.WorkbookPart; foreach (WorksheetPart sheet in workbookPart.WorksheetParts) { sheet.DeleteParts<WorksheetCommentsPart>(sheet.GetPartsOfType<WorksheetCommentsPart>()); } } }

Заключение

Выполнив этот метод, мы получим книгу без примечаний.

Вот снимок экрана с итоговой книгой:

Зияд Раджаби (Zeyad Rajabi)

Это локализованная запись блога. Исходную статью можно найти по адресу https://blogs.msdn.com/brian_jones/archive/2009/04/20/removing-comments-from-excel-and-powerpoint-files.aspx.