老板给我一批Excel文档都有密码保护,还好我会Python,不
实现方法很多,不仅限于Python,一般场景下通过VBA去做应该会更方便。
主要是因为同事有类似的需求,需要批量解除大量Excel文档的工作簿保护,统计其中的信息,而他又使用了Python,我正好没写过,顿时来了兴致就写了一下。
加群:943752371可以获取Python入门学习资料哦!
老板给我一批Excel文档都有密码保护,还好我会Python,不然惨了Python操作Excel的库如xlrd、openpyxl等都无法实现解除工作簿保护,因此只能通过COM组件的方式调用Excel来解除。
我将其通过COM组件调用Excel解除工作簿保护的部分单独提取了出来,因为其它地方也可能会用到。
用法上涉及到了configparser(解析配置文件)、logging(日志记录)以及win32com.client的Dispatch(COM组件调用)等模块。
注释我已经尽可能详细,初学者或感兴趣的可以尝试折腾。
你可能需要通过以下命令安装configparser
<pre style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232);">pip install configparser
</pre>
其主要代码如下:
老板给我一批Excel文档都有密码保护,还好我会Python,不然惨了 老板给我一批Excel文档都有密码保护,还好我会Python,不然惨了 老板给我一批Excel文档都有密码保护,还好我会Python,不然惨了conf.ini配置文件如下:
<pre style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232);">[Conf]
path=文件路径
password=密码
</pre>