数据分析师通常少不了一项工作,就是给领导们或者业务方发送数据周报、日报。每天重复整理相同的报表的工作实在是浪费精力又没有意义。这种简单、重复性的工作还是交给python来做吧。
这里使用python主要借助的是pymysql、openpyxl、email和smtplib这几个模块,pymysql用来连接数据库,取数数据,openpyxl用来写入excel,而email和smtplib用来做邮件处理和建立服务器链接、发送邮件。
# -*- coding: utf-8 -*-
import pymysql,openpyxl
import pandas as pd
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
from email.mime.application import MIMEApplication
from email.mime.base import MIMEBase
from email.header import Header
from email import encoders
import smtplib
import time
import datetime
import win32com.client as win32 # 打开excel文件
from PIL import ImageGrab #用于获取复制的图片
now = datetime.datetime.now()
date=datetime.datetime.strftime(now-datetime.timedelta(days = 1), '%Y%m%d')#获取日期
第一步要做的是建立数据库连接和取数。host是要连接的MySQL服务器地址,port是服务器端口号,user和passwd分别是用户名和密码,db则是数据库名称。charset是连接编码,一般用utf8。
def connectDatabase(sql): #连接mysql数据库
db = pymysql.connect(
host = 'xxxxxx',
port = xxx,
user = 'xxxxxxx',
passwd = 'xxxxxxx',
db = 'xxxxxxxxx',
charset = "utf8")