# import部分 导入所需的库和模块。
import pyodbc # 用于数据库连接
import openpyxl # 用于操作Excel文件
import pandas as pd # 用于数据处理
import schedule # 用于定时任务调度
import time # 用于时间处理
import smtplib # 用于发送邮件
from email.mime.multipart import MIMEMultipart # 用于创建包含附件的邮件
from email.mime.base import MIMEBase # 用于邮件附件处理
from email.mime.text import MIMEText # 用于创建文本邮件内容
from email import encoders # 用于编码邮件附件
from email.header import Header # 用于处理邮件头
import logging # 用于日志记录
import os # 用于操作文件和路径
# 配置日志记录
# 在所运行的文件夹内生成log.txt文件并记录logging的内容。
logging.basicConfig(filename='log.txt', level=logging.DEBUG,
format='%(asctime)s - %(levelname)s - %(message)s')
# 将提取数据附加到Excel文件中。
def fetch_data_and_prepare_file():
try:
logging.info("Starting the fetch_data_and_prepare_file process") #记录日志
# 连接数据库
# 连接数据库
connection = pyodbc.connect(
'DRIVER={ODBC Driver 17 for SQL Server};'
'SERVER=192.168.60.215;' # 连接名
'DATABASE=live;' # 数据库名称
'UID=ck;' # 登录账号
'PWD=ck2024!' # 登录密码
)
logging.info("Database connection established") #记录日志
# 从视图中抓取数据
query = "SELECT * FROM [dbo].[V_SHHW_立库库位利用率]" #写入查询命令
df = pd.read_sql(query, connection)
#使用pandas库中的read_sql函数来执行一个SQL查询并将结果读取到一个DataFrame中。
logging.info("Data fetched from the database") #记录日志
# 指定要写入的 Excel 文件的绝对路径
file_path = r'D:\桌面\利用率.xlsx'
# 加载现有的 Excel 文件
wb = openpyxl.load_workbook(file_path)
# 选择要插入数据的工作表
ws =