Понадобилось срочно-срочно на работе снять защиту с листов в Excel. Ранее пользовался этим макросом, но сейчас разработчик требует за него деньги. Пришлось искать обходное решение. О нем — ниже.
Файлы последних версий Excel (2007 и выше) представляют из себя «архив». Таким образом можно либо переименовать расширение xls в zip и открыть архив, либо открыть сам файл xls в каком-нибудь файловом менеджере.
Открыв увидим такую картину:
Нужно пройти в папку xl, а за ней в папку worksheets. В ней и будут находиться все листы из файла.
Копируем эти листы из архива (либо один тот, который защищен) в любую директорию и открываем sheet1.xml с помощью любого текстового редактора.
Далее необходимо найти строку, начинающуюся с <sheetProtection password (опять же через текстовый редактор и Ctrl+F) и полностью от < до > удалить ее:
После чего сохраняем sheet1.xml и переходим к следующему, если это необходимо.
Затем копируем измененные файлы обратно в файл xls. И… Собственно всё. 🙂 Теперь листы открыты для изменения.
Возможно та же процедура прокатит и в более ранних версиях, если файл xls предварительно превратить в zip, но не уверен.
UPD: Только что нашел более изящное решение: «Открываем файл в libreoffice. На этом все. Либре вообще пофигу на все эти пароли на редактирование, листы и прочее. Остается только пересохранить файл.»