使用xlwings拆分excel并调用outlook进行邮件发送
写这段代码的起因是因为公司要下发一个销售日报表,但是由于不同部门的销售区域老总看到的只能是自己区域的数据,每个工作簿有10多个工作表,如果靠手工来做工作量极大,因此,有迫切的需求要对报表做一些自动化操作,并能自动发送邮件。在做到以上的基础上,还要顾及美观。 表格的截图如下: 可以看到这个表格处理的几个关键点: 1、有组合,要取消组合,目前python还没法实现(我没找到办法),所以必须要调用VBA 2、有隐藏的sheet,其实是3级组合,要展示出来 3、要根据2级组合里的区域,分别发给对应的区域 4、要保留原格式 import xlwings as xw import win32com.client as win32 程序运行的时候不显示在前端,也不新建Excel窗口 app = xw.App(visible=False,add_book=False) ywb = ["浙江部","河南部","KA部","黑龙江部","广西部","江西部","海南部","广东部"] for i in range(0,len(ywb)): # 这是循环的开始,读取业务部的数量,每个业务部作为一个最大的循环 # print(i) iw = app.books.open(r'E:\Documnet\工作\07_数据分析\临时文件\副本.xlsm') sheet_count = iw.sheets