两种方法清除Excel保护密码

一、利用VBA脚本直接清除

打Excel,打开脚本编辑器(Alt+F11)或者如图,右键sheet名称

输入代码并运行,即可清除密码保护:

Sub DeletePW()ActiveSheet.Protect DrawingObjects:=True, Contents:=True, AllowFiltering:=TrueActiveSheet.Protect DrawingObjects:=False, Contents:=True, AllowFiltering:=TrueActiveSheet.Protect DrawingObjects:=True, Contents:=True, AllowFiltering:=TrueActiveSheet.Protect DrawingObjects:=False, Contents:=True, AllowFiltering:=TrueActiveSheet.Unprotect
End Sub

二、用python代码批量处理多个Excel文件 

注意:这种方法前提是得知道密码。

直接上代码:

'''
Title: 批量清除Excel保护密码
Author: JackieZheng
Date: 2022-04-07 20:38:46
LastEditTime: 2022-04-08 18:35:37
LastEditors: Please set LastEditors
Description:
FilePath: \\pythonCode\\RemoveExcelPwd.py
'''import os
import win32com.client
from win32com.client import Dispatch# 如果有打开的excel窗口先关闭,否则后边会报错
def removePassword(path,password):try:xlApp =  win32com.client.DispatchEx('Excel.Application')except Exception as err:print('错误: %s' % err)try:for file in os.listdir(path):filepath = os.path.join(path, file)if not os.path.isfile(filepath):continueprint(filepath)xlApp.Visible = FalsexlApp.DisplayAlerts = Falsewb = xlApp.Workbooks.Open(filepath)try:# print(password)wb.Unprotect(password)wb.Checkcompatibility = Falsesht = wb.Worksheets('Sheet1')sht.Unprotect(password)except Exception as err:print('清除 %s 的保护密码出错:%s' % (file, err))wb.Save()wb.Close(SaveChanges=True)finally:if hasattr(xlApp, 'Quit'):xlApp.Quit()path=r'E:\数据\2021院校专业计划'
password=r'135246'
removePassword(path,password)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/284365.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jsonp-反向代理-CORS解决JS跨域问题的个人总结

jsonp-反向代理-CORS解决JS跨域问题的个人总结 网上说了很多很多,但是看完之后还是很混乱,所以我自己重新总结一下。解决 js 跨域问题一共有8种方法, jsonp(只支持 get)反向代理CORSdocument.domain iframe 跨域windo…

URAL 1682 Crazy Professor (并查集)

【题目链接】 http://acm.timus.ru/problem.aspx?space1&num1682 【题目大意】 给出k,从1开始不断地加一并把这个数写在黑板上,如果写上的数字和之前的数字满足   (ab*b)%k0或者(ba*a)%k0就在他们之间连一条线,如果黑板上出现环就结束…

利用Python随机或暴力生成密码

""" Title: python 密码生成 Author: JackieZheng Date: 2022-04-09 12:47:33 LastEditTime: 2022-04-09 14:00:46 LastEditors: Please set LastEditors Description: FilePath: \\pythonCode\\python_pwd_generater.py """import itertools im…

EasyNetQ-用于使用 RabbitMQ 的 .NET API开源的工具库

Part1介绍EasyNetQ 的目标是提供一个库,用于在 .NET 中使用 RabbitMQ 尽可能简单。为了做到这一点,它通过强制执行一些简单的约定来以灵活性换取简单性。这些包括:消息应该由 .NET 类型表示。消息应按其 .NET 类型进行路由。这意味着消息是由…

python 中 __name__ 的使用

1. 如果模块是被导入,__name__的值为模块名字2. 如果模块是被直接执行,__name__的值为’__main__’Py1.py #!/usr/bin/env python def test():print __name__ ,__name__ if __name__ __main__:test() Py2.py #!/usr/bin/env pyt…

第6章 循环

6.1 range 函数用来创建一个数字列表,它的范围是从起始数字开始到结束数字之前 1 >>> for x in range(0,5): 2 print(Hello %s % x) 3 4 Hello 0 5 Hello 1 6 Hello 2 7 Hello 3 8 Hello 4 1 >>> print(list(range(10,20))) 2 [10, 11, 12, …

C# 实例解释面向对象编程中的依赖反转原则

在面向对象编程中,SOLID 是五个设计原则的首字母缩写,旨在使软件设计更易于理解、灵活和可维护。这些原则是由美国软件工程师和讲师罗伯特C马丁(Robert Cecil Martin)提出的许多原则的子集,在他2000年的论文《设计原则与设计模式》中首次提出…

Linux学习笔记之一————什么是Linux及其应用领域

1.1认识Linux 1)什么是操作系统 2)现实生活中的操作系统 win7 Mac Android iOS 3) 操作系统的发展史 (1)Unix 1965年之前的时候,电脑并不像现在一样普遍,它可不是一般人能碰的起的,…

Flex中宽度计算

flex 有三个属性值,分别是 flex-grow, flex-shrink, flex-basis,默认值是 0 1 auto。 发现网上详细介绍他们的文章比较少, 今天就详细说说他们,先一个一个看。 flex-grow 定义项目的放大比例,默…

Lucene详解

一.lucene原理 Lucene 是apache软件基金会一个开放源代码的全文检索引擎工具包,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能…

.NET 6.0中使用Identity框架实现JWT身份认证与授权

原文作者:Sarathlal Saseendran原文链接:https://www.c-sharpcorner.com/article/jwt-authentication-and-authorization-in-net-6-0-with-identity-framework/翻译:沙漠尽头的狼(谷歌翻译加持)介绍微软于 2021 年 11 …

adb devices 里面有很多 emulator-XXXX的解决方法

2019独角兽企业重金招聘Python工程师标准>>> adb kill-server 转载于:https://my.oschina.net/sfshine/blog/700354

MQ(Message Queue)简介

一、何为MQ? MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通…

【GlobalMapper精品教程】015:矢量面图层的创建及数字化操作

本文讲解在Globalmapper中文23.0中创建矢量面状数据(政区数据),并进行面状数据采集及编辑的详细操作流程,数据为配套案例数据包中的data015.rar。 参考阅读: ArcGIS实验教程——实验三:矢量数据采集与编辑(矢量化) 文章目录 一、认识工具条1. 数字化(创建)工具条2. 选…

Blazor University (39)JavaScript 互操作 —— 更新 document title

原文链接:https://blazor-university.com/javascript-interop/calling-javascript-from-dotnet/updating-the-document-title/更新 document title源代码[1]在创建 Blazor 布局[2]部分中,我们看到了 Blazor 应用程序如何存在于 HTML(或 cshtm…

IIS 日志文件位置

IIS 6 Log files location IIS 6中日志文件的位置%windir%\System32\LogFilesIIS 7 Log files location IIS的日志文件的位置%SystemDrive%\inetpub\logs\LogFiles用户每打开一次网页,iis 都会记录用户IP、访问的网页地址、访问时间、访问状态等信息,这些…

APP测试流程和测试点

1 APP测试基本流程 1.1流程图 1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间。正式测试前先向主管确认项目排期。 1.3测试资源 测…

39所强基计划试点高校已全部公布招生简章

截至目前(4月8日下午) 39所强基计划试点高校 已全部公布招生简章 各高校招生要求是什么? 招生专业有哪些? 什么时候报名? 一起来看 北京大学 招生对象及报名条件 各省(区、市)符合2022年全国普通高等学校招生统…

【ArcGIS错误异常100问】之001:License服务无法启动权威解决办法

测试环境: 操作系统:Windows10ArcGIS版本:10.X结果:通过测试 文章目录1. 错误提示2. 问题分析3. 解决办法3.1 关闭Windows Defender3.2 关闭系统防火墙3.3 删除迈克菲(McAfee)杀毒软件3.4 在系统服务中启动…

Appium wait等待的三种方法

1、sleep()方法Thread.sleep(60000)强制等待60s2、隐式等待implicitlyWait()driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);全局等待30s不管元素是否已经加载1) 当使用了隐式等待执行测试的时候,如果WebDriver没有在DOM中…