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