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并输出字典,对合并单元格的部分没有处理,这里仅仅对套路的部分做个记录,实际上并不实用,后续记录更多的操作。
 

 

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值