快捷搜索: 王者荣耀 脱发

python用win32com对Excel的一些操作

最近接的项目结果输出excel对格式要求特别高,所以懒得找了,直接用win32操作了。

Python操作Excel的库有不少,但是各有优缺点,没有完美的,这里其他的几个库都不多说了,仅仅列下win32的一些学习记录。

直接上代码:

def win32Read(filepath, passWords):
    #===========================================================================
    # win32实现Excel文件读取
    # Just An Example, Do Not Use It.
    #===========================================================================
    rst = {}
    try:
        pythoncom.CoInitialize ()
        
        xlsApp = win32com.client.DispatchEx(Excel.Application)
        #禁用事件
        xlsApp.EnableEvents = False
        #禁止弹窗
        xlsApp.DisplayAlerts = False
        
        #注: 当使用密码时,前边的几个参数都必须存在
        wb = xlsApp.Workbooks.Open(filepath,UpdateLinks=3,ReadOnly=False,Format = None, Password=passWords)
       
        # 屏蔽弹窗
        wb.Checkcompatibility = False
        #1:打开宏,2:禁用宏
        wb.RunAutoMacros(2)
        
        for sheetObj in wb.Worksheets:
            datatupe = sheetObj.UsedRange.Value
            if not datatupe:
                continue
            else:
                datatupe = [list(linedata) for linedata in datatupe]
            rst[sheetObj.name] = datatupe
        return rst
    except Exception,e:
        print unicode(e)
        # 具体处理看情况
    finally:
        try:
            xlsApp.DisplayAlerts = False
            wb.Close(SaveChange = False)
            xlsApp.DisplayAlerts = True
        except:
            pass
        try:
            xlsApp.Application.Quit()
            del xlsApp
        except:
            pass
        pythoncom.CoUninitialize ()

这个函数主要用来读取excel并输出字典,对合并单元格的部分没有处理,这里仅仅对套路的部分做个记录,实际上并不实用,后续记录更多的操作。

经验分享 程序员 微信小程序 职场和发展