python win32com 读取带密码的excel
Posted vhills
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python win32com 读取带密码的excel相关的知识,希望对你有一定的参考价值。
之前用到的win32com读取带密码excel的相关内容,今天刚好准备整理下,突然发现方法又不灵了。
以下为错误示范:
# 已知excel密码去除 def del_password(filename, password): excel = DispatchEx("Excel.Application") # 启动excel excel.Visible = True # 可视化 excel.DisplayAlerts = False # 是否显示警告 wb = excel.Workbooks.Open(filename, Password=password) # 打开文件
这就神奇了,之前用着好好的呢?,没道理啊这么简单的打开,不就加个password参数?明明把密码参数给输入了,为什么还提示输入密码框?
(再重新看看微软bb的官方介绍)https://msdn.microsoft.com/zh-cn/VBA/Excel-VBA/articles/workbooks-open-method-excel,没毛病啊。
实在不行,找回以前写的。想起来有个问题,大家注意看不同,注意添加的几个参数。
(标红参数少一个不行,顺序没影响,但是这几个参数之间没有实在的联系啊,百思不得解。先mark下,有知道的大神指教下——之前也遇到过类似的方法只写一个参数不行,如有类似情况试着把参数写全再进行操作)
暂时只得到一个结论:说明win32com读取的excel操作不是严格按照python的位置参数,不是可有可无的,而是严格匹配。
——————————分割线————————————
以下为正确
# 已知excel密码去除 def del_password(filename, password): excel = DispatchEx("Excel.Application") # 启动excel excel.Visible = visible # 可视化 excel.DisplayAlerts = displayalerts # 是否显示警告 wb = excel.Workbooks.Open(filename, UpdateLinks=False, ReadOnly=False, Format=None, Password=password, WriteResPassword=password) # 打开文件
以上是关于python win32com 读取带密码的excel的主要内容,如果未能解决你的问题,请参考以下文章