Снять защиту с книги Microsoft Excel

Возникла такая задача: Есть отчетный документ представлен он в виде книги MS Excel и защищен от редактирования. Формат xls.
Первое что приходит в голову это снять защиту. Но для этого необходимо знать пароль. А пароль естественно ни кто не скажет. Остается одно ломать...
Я опишу способ который помог мне в моей проблеме. Придумал я его не сам а нашел в интернете на одном из форумов. Ссылка ниже будет приведена, сам процесс опишу здесь.
Первое, что мне пришлось сделать это привести задачу к рещению уже известной. Так как  у меня формат xls я открыл данный файл в Office Excel 2010 и сохранил его в формате xlsx  таким образом получил то что нужно.
Второе открыл этот файл как контейнер в файловом менеджере Total Commander  выделив нужный файл и нажав сочетание клавиш Ctrl+PageDown. Файл откроется как архив и можно посмотреть его структуру.
Переходим по пути "Файл.xlsx/xl/worksheets/sheet1.xml" может быть и в sheet2.xml вообщем нужно просмотреть все листы. Я на всякий случай просмотрел все xml файлы. Но реально то, что нужно было находилось в sheet1.xml.
1. "Вытаскиваем файл "sheet1.xml" из контейнера XLSX и открываем текстовым редактором."
в моем случае открывался файл для редактирования в том же TotalCommander клавишей F4.
Дальше по инструкции
2. Поиском по тексту ищу "pass"
3. Редактор находит XML-контейнер <sheetProtection password="CF7A" sheet="1" objects="1" scenarios="1" selectLockedCells="1" selectUnlockedCells="1"/>. Или что-то типа этого. Короче контейнер "sheetProtection"
4. Убиваем весь контейнер "sheetProtection" от "<" до ">".
5. Сохраняем файлик.
6. Закидываем обратно в контейнер XLSX. (В моем случае не понадобилось)
7. Поднимаемся вверх из файла
Отрываем файл обычным способом и вот оно счастье все работает. Правда еще пришлось все таки в 2010 офисе зайти в меню  "Рецензирование" и на каждом листе нажать кнопку "Снять защиту с листа", но пароль уже не спросил

Обещенная ссылка форум там еще пару вариантов описано, но не проверял.

Комментарии

Популярные сообщения из этого блога

PowerShell. Коммандлет для паузы в выполнении скрипта Wait-Event

Первоначальная настройка МФУ Kyocera FS-1035MFP для печати по сети