安排一个每天运行的SQL查询,并将结果以Excel文件的形式通过电子邮件发送。
创始人
2024-11-04 13:30:44
0

在Python中,可以使用pandas库来执行SQL查询并将结果保存为Excel文件。然后,使用smtplib库来发送电子邮件。

首先,确保已安装pandasopenpyxl库,执行以下命令进行安装:

pip install pandas openpyxl

然后,使用以下代码示例来安排每天运行的SQL查询并将结果以Excel文件的形式通过电子邮件发送:

import pandas as pd
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

# 执行SQL查询并将结果保存为Excel文件
def run_sql_query_and_save_to_excel():
    # 运行SQL查询,获取结果数据
    query_result = pd.read_sql_query("SELECT * FROM your_table", your_database_connection)

    # 将结果保存为Excel文件
    query_result.to_excel('query_result.xlsx', index=False)

# 发送电子邮件
def send_email():
    # 设置发件人和收件人
    from_email = "your_email@example.com"
    to_email = "recipient@example.com"

    # 创建MIMEMultipart对象,并设置邮件头部信息
    msg = MIMEMultipart()
    msg['From'] = from_email
    msg['To'] = to_email
    msg['Subject'] = "SQL查询结果"

    # 添加邮件正文
    body = "附件中是每天运行的SQL查询结果,请查收。"
    msg.attach(MIMEText(body, 'plain'))

    # 添加附件
    filename = 'query_result.xlsx'
    attachment = open(filename, 'rb')

    # 创建MIMEBase对象,并设置附件数据
    part = MIMEBase('application', 'octet-stream')
    part.set_payload(attachment.read())
    encoders.encode_base64(part)
    part.add_header('Content-Disposition', "attachment; filename= %s" % filename)

    # 将附件添加到邮件中
    msg.attach(part)

    # 发送邮件
    server = smtplib.SMTP('smtp.gmail.com', 587)  # 更换为你的邮箱的SMTP服务器地址和端口号
    server.starttls()
    server.login(from_email, "your_password")  # 更换为你的邮箱和密码
    text = msg.as_string()
    server.sendmail(from_email, to_email, text)
    server.quit()

# 主函数
def main():
    run_sql_query_and_save_to_excel()
    send_email()

if __name__ == "__main__":
    main()

在上述代码中,你需要做以下更改:

  • "SELECT * FROM your_table" 更改为你的SQL查询语句。
  • your_database_connection 更改为你的数据库连接对象。
  • from_email 更改为发件人的电子邮件地址。
  • to_email 更改为收件人的电子邮件地址。
  • smtp.gmail.com 更改为你的邮箱的SMTP服务器地址,并更改端口号。
  • from_email"your_password" 更改为你的邮箱地址和密码。

请确保你的邮箱允许使用SMTP服务,并且在代码中使用的邮箱地址和密码是正确的。

相关内容

热门资讯

iwatch怎么连接安卓系统,... 你有没有想过,那款时尚又实用的iWatch,竟然只能和iPhone好上好?别急,今天就来给你揭秘,怎...
安卓系统怎么连不上carlif... 安卓系统无法连接CarLife的原因及解决方法随着智能手机的普及,CarLife这一车载互联功能为驾...
oppo手机安卓系统换成苹果系... OPPO手机安卓系统换成苹果系统:现实吗?如何操作?随着智能手机市场的不断发展,用户对于手机系统的需...
iphone系统与安卓系统更新... 最近是不是你也遇到了这样的烦恼?手机更新系统总是失败,急得你团团转。别急,今天就来给你揭秘为什么iP...
安卓平板改windows 系统... 你有没有想过,你的安卓平板电脑是不是也能变身成Windows系统的超级英雄呢?想象在同一个设备上,你...
安卓系统上滑按键,便捷生活与高... 你有没有发现,现在手机屏幕越来越大,操作起来却越来越方便了呢?这都得归功于安卓系统上的那些神奇的上滑...
安卓系统连接耳机模式,蓝牙、有... 亲爱的手机控们,你们有没有遇到过这种情况:手机突然变成了“耳机模式”,明明耳机没插,声音却只从耳机孔...
希沃系统怎么装安卓系统,解锁更... 亲爱的读者们,你是否也像我一样,对希沃一体机上的安卓系统充满了好奇呢?想象在教室里,你的希沃一体机不...
安装了Anaconda之后找不... 在安装Anaconda后,如果找不到Jupyter Notebook,可以尝试以下解决方法:检查环境...
安卓换鸿蒙系统会卡吗,体验流畅... 最近手机圈可是热闹非凡呢!不少安卓用户都在议论纷纷,说鸿蒙系统要来啦!那么,安卓手机换上鸿蒙系统后,...