Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
В предыдущей записи я показал, как удалять примечания из файла Word. Сегодня я продемонстрирую, как выполняется этот же сценарий, но с файлами Excel и PowerPoint. В Excel и PowerPoint есть функция "Инспектор документов", которая позволяет удалять различные типы данных и содержимого, включая примечания. Эта функция очень хорошо работает в клиентских решениях, но как выполнить очистку файлов от примечаний на сервере? Open XML SDK может справиться с этой задачей с помощью всего нескольких строк кода.
Примечание. Представленный здесь код обратно совместим с версией 1 пакета SDK.
Решение для PowerPoint
Допустим, я начинаю работу с презентацией PowerPoint, содержащей множество слайдов и примечаний. Вот снимок экрана, на котором изображены примечания внутри слайда PowerPoint:
Для удаления примечаний из презентации PowerPoint необходимо выполнить следующие действия:
- Открыть презентацию PowerPoint с помощью пакета Open XML SDK.
- Получить доступ к главному разделу презентации, который предоставляет доступ ко всем разделам слайдов в пакете.
- Удалить раздел примечаний, связанный с каждым разделом слайда.
- Сохранить изменения презентации.
Если вы хотите отслеживать все этапы работы непосредственно по коду, наше решение можно без труда загрузить здесь.
Код
Код довольно простой и полностью соответствует перечисленным выше шагам.
| 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 необходимо выполнить следующие действия:
- Открыть книгу Excel с помощью пакета Open XML SDK.
- Получить доступ к главному разделу книги, который предоставляет доступ ко всем разделам листов в пакете.
- Удалить все примечания, связанные с каждым разделом листа.
- Сохранить изменения в книге.
Если вы хотите отслеживать все этапы работы непосредственно по коду, наше решение можно без труда загрузить здесь.
Код
Код очень похож на код, используемый для удаления примечаний из презентации 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.