zoukankan      html  css  js  c++  java
  • 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)  # 打开文件
    

      

  • 相关阅读:
    八爪鱼 爬取微博中的图片到本地
    【简易采集】美团数据抓取方法 八爪鱼
    jeesite 的提示消息图标
    SpringBoot 入门 Demo
    spring 简单入门实例
    正则表达式之匹配替换
    数据结构之堆栈
    c#设计模式之装饰者模式
    c#设计模式之策略模式
    一个自然数在1700和1800之间,且被5除余3,被7除余4,被11除余6,求符合条件的数
  • 原文地址:https://www.cnblogs.com/vhills/p/9418860.html
Copyright © 2011-2022 走看看