programing

파이썬을 사용하여 암호로 보호된 엑셀 파일을 여는 방법은 무엇입니까?

iphone6s 2023. 7. 1. 08:09
반응형

파이썬을 사용하여 암호로 보호된 엑셀 파일을 여는 방법은 무엇입니까?

이 주제와 관련하여 이전 스레드를 살펴보았지만 문제 해결에 도움이 되지 않았습니다.

나는 사용자의 조작 없이 엑셀에서 비밀번호로 보호된 파일을 열려고 합니다.온라인으로 검색해보니 win32com.client를 사용하는 이 코드를 찾았습니다. 이 코드를 실행해도 여전히 암호를 입력하라는 메시지가 표시됩니다.

from xlrd import *
import win32com.client
import csv
import sys

xlApp = win32com.client.Dispatch("Excel.Application")
print "Excel library version:", xlApp.Version
filename,password = r"\\HRA\Myfile.xlsx", 'caa team'
xlwb = xlApp.Workbooks.Open(filename, Password=password)

명명된 매개 변수는 이 경우에 작동하지 않습니다.따라서 다음과 같은 작업을 수행해야 합니다.

xlwb = xlApp.Workbooks.Open(filename, False, True, None, password)

워크북에 대한 자세한 내용은 http://msdn.microsoft.com/en-us/library/office/ff194819.aspx 을 참조하십시오.방법을 엽니다.

저는 최근에 이 작업을 간단하게 해주는 파이썬 라이브러리를 발견했습니다.

엑셀을 설치할 필요가 없고, 순수 파이썬이기 때문에 크로스 플랫폼이기도 합니다!

msofcrypto-tool은 이전 XLS 이진 파일 형식을 포함하여 암호로 보호된(암호화된) Microsoft Office 문서를 지원합니다.

  • ms ofcrypto-tool 설치:

     pip install msoffcrypto-tool
    
  • 명령줄에서 암호화되지 않은 버전의 워크북을 만들 수 있습니다.

    msoffcrypto-tool Myfile.xlsx Myfile-decrypted.xlsx -p "caa team"
    
  • 또는 msofcrypto-tool을 라이브러리로 사용할 수 있습니다.와 같이 암호화되지 않은 버전을 디스크에 쓸 수 있지만, 암호화되지 않은 인메모리 파일을 만들어 파이썬 엑셀 라이브러리에 전달하는 것을 선호할 수 있습니다.openpyxl,xlrd등).

    import io
    
    import msoffcrypto
    import openpyxl
    
    
    decrypted_workbook = io.BytesIO()
    
    with open('Myfile.xlsx', 'rb') as file:
        office_file = msoffcrypto.OfficeFile(file)
        office_file.load_key(password='caa team')
        office_file.decrypt(decrypted_workbook)
    
    # `filename` can also be a file-like object.
    workbook = openpyxl.load_workbook(filename=decrypted_workbook)
    

파일 크기가 작으면 ".csv"로 저장한 다음 을 읽을 수 있습니다.

저한테는 효과가 있었어요 :)

Openpyxl 패키지는 Linux 시스템을 사용하는 경우에 작동합니다.암호를 설정하여 파일 보안을 사용하고 동일한 암호를 사용하여 파일을 열 수 있습니다.

자세한 내용은 https://www.quora.com/How-do-I-open-read-password-protected-xls-or-xlsx-Excel-file-using-python-in-Linux 에서 확인하시기 바랍니다.

이 주제에 대한 훌륭한 답변에 정말 감사드립니다.모든 것을 대조해 보려고 합니다.제 요구 사항은 암호로 보호된 엑셀 파일(모두 동일한 암호)을 열어 처리하는 것이었습니다.아래 코드를 찾아주세요.

import pandas as pd
import os

from xlrd import *
import win32com.client as w3c
import csv
import sys
from tempfile import NamedTemporaryFile

    df_list=[]
#    print(len(files))
    for f in files:
#    print(f)
    if('.xlsx' in f):


        xlwb = xlapp.Workbooks.Open('C:\\users\\files\\'+f, False, True, None, 'password')

        temp_f = NamedTemporaryFile(delete=False, suffix='.csv')  
        temp_f.close()
        os.unlink(temp_f.name)  

        xlwb.SaveAs(Filename=temp_f.name, FileFormat=xlCSVWindows) 
        df = pd.read_csv(temp_f.name,encoding='Latin-1')  # Read that CSV from Pandas
        df.to_excel('C:\\users\\files\\password_removed\\'+f)
        

      

언급URL : https://stackoverflow.com/questions/19450837/how-to-open-a-password-protected-excel-file-using-python

반응형