2020年5月27日

python excel 加密及解密的方法(必须在win下使用)

作者 spoony
import win32com.client



reload(sys)
sys.setdefaultencoding('utf-8')


def decrypt_excel(encrypt_excel_path, decrypt_excel_path, excel_key):
    xcl = win32com.client.DispatchEx('Excel.Application')
    xcl.DisplayAlerts = False
    wb = xcl.workbooks.open(
        encrypt_excel_path, False, True, None, excel_key)
    wb.SaveAs(decrypt_excel_path, None, '', '')
    wb.Close()
    xcl.Quit()


def encrypt_excel(decrypt_excel_path, encrypt_excel_path, excel_key):
    xcl = win32com.client.DispatchEx('Excel.Application')
    xcl.DisplayAlerts = False
    wb = xcl.workbooks.open(decrypt_excel_path, False, False, None)
    wb.SaveAs(encrypt_excel_path, None, excel_key, '')  # excel支持打开加密和写修改加密两层,这里只设置了一层key
    wb.Close()
    xcl.Quit()


# 读取加密文件,临时生成解密文件
# decrypt_excel(encrypt_excel_path, decrypt_excel_path, excel_key)
# 将result excel加密
# encrypt_excel(result_path, result_path, excel_key)