Взлом защищенного листа в Excel 2010

06-09-2013 @ 11:57

Понадобилось срочно-срочно на работе снять защиту с листов в Excel. Ранее пользовался этим макросом, но сейчас разработчик требует за него деньги. Пришлось искать обходное решение. О нем — ниже.

Файлы последних версий Excel (2007 и выше) представляют из себя «архив». Таким образом можно либо переименовать расширение xls в zip и открыть архив, либо открыть сам файл xls в каком-нибудь файловом менеджере.

Открыв увидим такую картину:

Нужно пройти в папку xl, а за ней в папку worksheets. В ней и будут находиться все листы из файла.

Копируем эти листы из архива (либо один тот, который защищен) в любую директорию и открываем sheet1.xml с помощью любого текстового редактора.

Далее необходимо найти строку, начинающуюся с  <sheetProtection password (опять же через текстовый редактор и Ctrl+F) и полностью от < до > удалить ее:

После чего сохраняем sheet1.xml и переходим к следующему, если это необходимо.

Затем копируем измененные файлы обратно в файл xls. И… Собственно всё. 🙂 Теперь листы открыты для изменения.

Возможно та же процедура прокатит и в более ранних версиях, если файл xls предварительно превратить в zip, но не уверен.

UPD: Только что нашел более изящное решение: «Открываем файл в libreoffice. На этом все. Либре вообще пофигу на все эти пароли на редактирование, листы и прочее. Остается только пересохранить файл.»