excel批量删除密码解除密码保护 可多个密码

编程入门 行业动态 更新时间:2024-10-24 14:22:10

配置简单,支持多个密码尝试,完成后移动到新的文件夹,不会和未解密混在一起

csdn点击下载 exe文件

百度网盘:https://pan.baidu/s/1XLqEd8Jzu0Q9GEKBfZBKwA 
提取码:xlsx  好使评论给个赞,谢谢   ^_^
备份文件!!!备份文件!!!备份文件!!!

只适用于以下类型加密

 

使用方法,先建立文件夹,点击运行,会生成

excel需要解除密码的excel

okdir已完成的文件夹

conf.ini配置文件

双击打开配置文件编辑,在password引号内用英文逗号分隔开密码

例子:password='123,456,789',会按照顺序依次尝试

把需要去除面的xls或者xlsx文件放入excel文件夹,再次点击程序,运行完以后等待10秒钟关后关闭窗口,因为excel文件关闭的慢,设置10秒钟后移动到成功文件夹

注意:执行执行完成后静等10秒钟再关闭,excel保存后没那么快关闭,保存完成后延迟10秒钟移动

源代码:

#!/usr/bin/env python3
import configparser
import os
import win32com.client
import turtle
import time
import math
import shutil
import threading
import sched

#创建文件夹
def mkdir(path):
    path = path.strip()
    path = path.rstrip("\\")
    isExists = os.path.exists(path)
    if not isExists:
        os.makedirs(path)
        print (path + ' 创建成功')
        return True
    else:
        print (path + ' 目录已存在')
        return False
def delpwdtry(xcl,filename,pw_str):
    try:
        wb = xcl.Workbooks.Open(filename, False, False, None, pw_str)
        xcl.DisplayAlerts = False
        # # 保存时可设置访问密码.
        wb.SaveAs(filename, None, '', '')
        # 保存文件
        wb.Save()
        # 文件保存并关闭
        wb.Close(SaveChanges=True)
        xcl.Quit()
        return True
    except:
        xcl.Quit()
        return False


def makefile(path, content):
    if os.path.exists(path):
        return
    else:
        f = open(path, 'w+')
        f.write(content)
        f.seek(0)
        read = f.readline()
        f.close()
        print('excel文件放加密excel  config配置密码 okdir是成功文件夹')
        os.system('pause')
        exit(0)
def aaaa(starttime,filename,num,pwds,i,file,xcl):
    haoshi = round(time.time() - starttime, 2)
    print((str(i) + "/" + str(num)), haoshi, '秒', file)
    pwdok = 0
    i2 = 0
    for pwd in pwds:
        i2 = i2 + 1
        print ((str(i) + "/" + str(num)), '第', i2, "次尝试", pwd)
        pwd_end = ''
        boo = delpwdtry(xcl, filename, pwd)
        if boo:
            pwdok = 1
            pwd_end = pwd
            break
    if pwdok:
        print ((str(i) + "/" + str(num)), 'ok')
        # print ('10秒后移动文件')
        s = threading.Timer(10, movee, (filename,))
        s.start()
    else:
        print ('失败')
    xcl.Quit()
def movee(filename):
    shutil.move(filename, './okdir')
def delpwd(okdir,starttime):
    conf = configparser.ConfigParser()
    # 指定配置文件路径和编码
    conf.read('conf.ini', 'utf-8')  # 文件路径
    # 读取配置信息
    path = conf.get("Conf", "path")
    password = conf.get("Conf", "password")
    pwds = password.split(',')
    xcl = win32com.client.Dispatch("Excel.Application")
    # pw_str为打开密码, 若无 访问密码, 则设为 ''
    xcl.Visible = False
    filelist = os.listdir(path)
    num = len(filelist)
    i = 0
    for file in filelist:
        i = i + 1
        filename = os.path.abspath(os.path.join(path, file))
        aaaa(starttime,filename,num,pwds,i,file,xcl)

starttime = time.time()
endtime = time.time()
okdir = './okdir'
mkdir('./excel')
mkdir(okdir)
makefile('./conf.ini', "[Conf]\npath=./excel/\npassword=mima1,mima2,3...")
delpwd(okdir,starttime)

haoshi = round(time.time()-starttime,2)
print("执行完成 耗时",haoshi , "秒")
os.system('pause')

pyinstaller -F 文件名字

更多推荐

excel批量删除密码解除密码保护 可多个密码

本文发布于:2023-06-13 19:49:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1396264.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:密码   多个   密码保护   批量   excel

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!