В предыдущей статье я рассказал о том, как можно защитить данные от любопытных глаз или от их случайного изменения. Ну а сейчас давайте разберемся с тем, как восстановить доступ к документу, если пароль был утерян.
Делается это довольно просто. Дело в том, что экселевский формат xlsx (Microsoft Excel Open XML Spreadsheet) имеет открытую XML-структуру, которая может быть отредактирована в любом текстовом редакторе.
В контексте нашей задачи нет никакой необходимости в более детальном погружении в тему XML и если вам интересны подробности, то на официальном сайте есть статья о структуре экселевских файлов.
Для нас важно только одно - мы можем снять защиту с книги или листа, так как она текстом прописывается в соответствующем файле. По сути, файл xlsx - это контейнер, в котором находятся другие файлы, отвечающие за отдельные листы документа или книгу целиком. Убедиться в этом очень просто, но сначала сделайте резервную копию документа, чтобы в случае какой-то непредвиденной ситуации не потерять данные.
Поменяем расширение файла на zip.
Вместе с расширением изменится и тип файла. Теперь это будет zip-архив, в который можно зайти как в обычную папку.
Зайдя внутрь, мы обнаружим структуру из папок и файлов.
С архивами удобнее работать с помощью сторонних архиваторов вроде WinRar или 7-ZIP, так как они позволяют сохранять изменения в заархивированных файлах без их извлечениям из архива, но можно справиться и стандартными средствами Windows.
Нам нужно зайти в папку xl.
Как я уже упоминал, для каждого объекта здесь заведен отдельный файл. Например, за всю книгу отвечает файл workbook.xml, а в папке worksheets находятся отдельные файлы каждого из листов.
В данном документе были скрыты два листа и при работе с документом пользователь даже может не догадываться об их существовании. Однако, зайдя в эту папку, он сразу обнаружит их наличие.
Итак, наша задача снять защиту с двух первых листов и с книги.
Открываем файл первого листа sheet1.xml. Так как это по сути текстовый документ, то по умолчанию он, скорее всего, откроется в обычном Блокноте.
Нам нужно найти блок, отвечающий за защиту листа. В названии таких блоков всегда есть слово protection, поэтому просто вызываем поиск с помощью сочетания клавиш Ctrl+F и ищем это слово.
Так как сейчас речь идет о защите листа, то элемент, который за это отвечает, называется sheetProtection. Все что нам нужно сделать, это полностью удалить данный элемент со всеми параметрами. Все элементы xml-разметки заключаются в своеобразные скобки - знаки больше и меньше (<>). Соответственно, перед тем как удалить данный элемент с помощью клавиши Delete, нужно его полностью выделить от знака больше, до знака меньше.
Сохраняем файл и вот здесь как раз и проявляется преимущество сторонних архиваторов, так как можно сразу сохранить файл в архиве. При работе со встроенным в Windows архиватором придется сначала сохранить файл где-нибудь на диске компьютера, например, на рабочем столе.
По аналогии снимаем защиту со второго листа (sheet2.xml) и с книги (workbook.xml). Также сохраняем изменения в отдельных файлах на рабочем столе.
Ну а теперь нужно поменять файлы в архиве на вновь созданные. Для этого достаточно перетянуть файлы с рабочего листа в архив в соответствующее расположение и заменить оригиналы.
Осталось изменить расширение zip обратно на xlsx и открыть файл в Excel.
Защита снята и теперь есть возможность редактировать данные, увидеть формулы и отобразить скрытые ранее листы.
Ссылки на мои ресурсы по Excel
★ Телеграм
★ Серия видеокурсов "Microsoft Excel Шаг за Шагом"