본문 바로가기
코딩 연습

엑셀 암호 해제 방법 - 파이썬으로 엑셀 암호 제거 프로그램 만들기

by good4me 2022. 10. 13.

goodthings4me.tistory.com

엑셀 암호 해제 또는 암호를 설정하는 방법은 간단하다. 그러나 용량이 큰 여러 엑셀 파일에 암호가 걸려있고 함수 수식과 피벗도 설정되어 있어서 엑셀 파일 로딩이 오래 걸리는 경우에는 엑셀 암호를 제거하고 사용해야 할 때가 있다.

 

 

엑셀 암호 해제 프로그램 만들기

여러 엑셀 파일에 동일한 엑셀 암호가 있을 경우, 특히 용량이 큰 파일에 암호가 걸려있을 경우, 함수 수식이 많거나 피벗이 설정되어 있어서 엑셀 파일 열때 시간이 오래 걸리는 경우 등, 이런 상황에서 엑셀 암호를 제거하고 사용하고 싶을 때 암호를 일괄적으로 제거할 수 있는 프로그램을 파이썬으로 만들어 보았다.

우선 엑셀 파일에서 암호를 설정하고 해제하는 방법을 알아보고 파이썬 코드를 활용하여 암호를 일괄 제거하는 방법을 설명한다.

 

엑셀 암호 설정하는 방법

엑셀 파일 다른 이름으로 저장
엑셀 파일 다른 이름으로 저장

엑셀 좌측 상단 "파일"을 클릭하고 "다른 이름으로 저장 > 찾아보기"를 클릭한다.

 

엑셀 파일, 도구 일반 옵션
엑셀 파일, 도구 일반 옵션

  • 하단 저장 버튼 옆의 "도구"를 클릭하여 "일반옵션"을 선택한다.
  • 열기 암호에 암호를 입력하고 확인을 클릭한다. (쓰기 암호를 설정하고 싶으면 여기도 암호를 입력한다.)
  • 암호 확인 팝업창이 나오면 암호를 다시 입력한다. (열기 암호를 다시 입력하십시오)
  • 같은 이름의 엑셀 파일이 있다는 메시지가 나오는데 그냥 덮어쓰기 하면 된다.

 

엑셀 암호 입력
엑셀 암호 입력

 

엑셀 암호 해제 방법

암호 해제 방법은 설정 방법과 같으며, 도구 > 일반 옵션 클릭 후 암호를 모두 삭제한 후 저장을 하면 된다.

 

good4me.co.kr

 

 

파이썬으로 엑셀 암호 제거 프로그램 소스 코드

윈도우 탐색기 excel 폴더에 있는 엑셀 파일

창호 샷시 견적 엑셀 파일
창호 샷시 견적 엑셀 파일

 

[여러 엑셀 파일 암호를 해제시키는 소스코드]

▷ msoffcrypto 모듈 설치

pip install msoffcrypto-tool
 

msoffcrypto-tool

Python tool and library for decrypting MS Office files with passwords or other keys

pypi.org

 

▷ 파이썬 코드

import os
import msoffcrypto
# from glob import glob


def xl_pw_decript(raw_path, new_path):

    xlfile_lst = os.listdir(raw_path)
    print(xlfile_lst)
    # ['창호 샷시 견적.xlsx', '창호 샷시 견적1.xlsx', '창호 샷시 견적2.xlsx']

    for xlfile in xlfile_lst:
        # print(raw_path + xlfile)
        encrypted = open(raw_path + xlfile, 'rb')
        file = msoffcrypto.OfficeFile(encrypted)
        file.load_key(password='1234')  # 사용 암호 입력

        with open(new_path + xlfile, 'wb') as f:
            file.decrypt(f)
            print(f'암호 해제 파일({xlfile}) 생성!')

        encrypted.close()

raw_path = './excel/'
new_path = './test/'
xl_pw_decript(raw_path, new_path)
  • "excel" 폴더에서 읽은 전체 파일을 대상으로 처리, 엑셀 파일 읽기는 glob(raw_path + '*.xls*') 코드도 가능
  • file.load_key(password='1234') 코드의 '1234' 부분에 엑셀 파일의 암호를 입력한다.

 

▷ 터미널 실행 결과

암호 해제 파일(창호 샷시 견적.xlsx) 생성!
암호 해제 파일(창호 샷시 견적1.xlsx) 생성!
암호 해제 파일(창호 샷시 견적2.xlsx) 생성!

 

 

댓글