表格某一列不固定其余全固定_如何利用Python一键拆分表格并进行邮件发送~
因為平時經常要將 一張表 拆成工作簿,拆完還要發給不同的對象,工作又使用outlook發郵件,所以本文調用outlook賬號進行郵件的發送作為示例:在 一張表拆成多個sheet的基礎上,修改了代碼,可實現一表拆成多個工作簿。 如果想調用其他郵箱可參見文末參考鏈接,你也可以舉一反三。
一表拆成多個表
這個拆表代碼是我能找到的最簡潔的了。首先用 ExcelWriter 生成一個拆完表后的容納工作簿,然后調用了 For 循環對某一列進行遍歷,area_list 取自表格的某一列,這一列有多少種因子,就拆成多少個表,例如北京、深圳等等。
最后通過循環每一個因子生成一個表,寫入之前建好的工作簿中直至循環結束。
小提示:python對空格敏感,不信你把writer.save和上一行對齊看看效果是什么樣的。
(大表)
(拆分表)
import pandas as pdimport xlsxwriterimport xlrddata = pd.read_excel(r"C:甥敳獲PycharmProjects拆分自動郵件發送chaifen.xlsx", encoding='gbk')area_list = list(set(data['店鋪']))writer = pd.ExcelWriter(r"C:甥敳獲PycharmProjects拆分自動郵件發送拆好的表1.xlsx", engine='xlsxwriter')data.to_excel(writer, sheet_name="總表", index=False)# 遍歷for j in area_list: df = data[data['店鋪'] == j] df.to_excel(writer, sheet_name=j, index=False)writer.save() # 一定要加上這句代碼,“拆好的表”才會顯示出來參考:https://me.csdn.net/weixin_41261833
一表拆成多個表
這個拆表代碼是我能找到的最簡潔的了。首先用 ExcelWriter 生成一個拆完表后的容納工作簿,然后調用了 For 循環對某一列進行遍歷,area_list 取自表格的某一列,這一列有多少種因子,就拆成多少個表,例如北京、深圳等等。
最后通過循環每一個因子生成一個表,寫入之前建好的工作簿中直至循環結束。
小提示:python對空格敏感,不信你把writer.save和上一行對齊看看效果是什么樣的。
(大表)
(拆分表)
import pandas as pdimport xlsxwriterimport xlrddata = pd.read_excel(r"C:甥敳獲PycharmProjects拆分自動郵件發送chaifen.xlsx", encoding='gbk')area_list = list(set(data['店鋪']))writer = pd.ExcelWriter(r"C:甥敳獲PycharmProjects拆分自動郵件發送拆好的表1.xlsx", engine='xlsxwriter')data.to_excel(writer, sheet_name="總表", index=False)# 遍歷for j in area_list: df = data[data['店鋪'] == j] df.to_excel(writer, sheet_name=j, index=False)writer.save() # 一定要加上這句代碼,“拆好的表”才會顯示出來參考:https://me.csdn.net/weixin_41261833
分別發送和抄送給多個人
建一個附件和收件人的索引,用之前給文件命名的變量j ,索引到收件人'Rec'列中'店鋪'列等于 j的行。
最后構建郵件發送的函數,包括收件人、抄送人、附件、正文等,從拆分到郵件整個過程不超過1分鐘。
import pandas as pdimport xlrddata = pd.read_excel(r"C:甥敳獲PycharmProjects拆分自動郵件發送chaifen.xlsx", encoding='gbk')data2 = pd.read_excel(r"C:甥敳獲PycharmProjects拆分自動郵件發送郵件人員清單清單.xlsx", converters={'dep2':str, 'Rec':str, 'Cc':str},encoding='gbk')area_list = list(set(data['店鋪']))# 遍歷for j in area_list: df = data[data['店鋪'] == j] writer = pd.ExcelWriter(f'{str( j )} 拆分自動郵件發送.xlsx', engine='xlsxwriter') df.to_excel(writer, sheet_name=j, index=False) writer.save() # 一定要加上這句代碼,“拆好的表”才會顯示出來for j in area_list: def send_mail(): outlook = win32.Dispatch('Outlook.Application') # 固定寫法 mail_item = outlook.CreateItem(0) # 0: olMailItem mail_item.to = list(data2['Rec'][data2['店鋪'] == j])[0] #收件人 mail_item.cc = list(data2['Cc'][data2['店鋪'] == j]) [0] #抄送人 # mail.Recipients.Add(addressee) mail_item.Subject = 'Mail Test5'+'you are the best' mail_item.BodyFormat = 2 # 2: Html format mail_item.HTMLBody = '''Hello, This is a test mail.
Hello Guys. Do you want to come with us? ''' mail_item.Attachments.Add(r'C:甥敳獲PycharmProjects拆分自動郵件發送'+f'{str( j )} 拆分自動郵件發送.xlsx', 1, 1, f'{str( j )} 拆分自動郵件發送.xls') mail_item.Send() if __name__ == '__main__': send_mail() print('success')源碼私信小編01獲取哦!
總結
以上是生活随笔為你收集整理的表格某一列不固定其余全固定_如何利用Python一键拆分表格并进行邮件发送~的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡纠纷被起诉了怎么办
- 下一篇: 简短的python金融数据分析师_让一位