You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python新手求助:编写脚本对比Excel列与SQL表中的用户名

实现Excel用户名与SQL数据库比对的Python脚本

Hey there! 作为Python新手想自动化日常重复工作,这个需求完全可以轻松实现,我给你一步步拆解方案,代码里会加详细注释,方便你理解:

首先,咱们得先准备好需要用到的Python库,都是新手友好、文档完善的工具:

  • pandas:用来快速读取Excel工作表内容
  • pyodbc:适配大多数SQL数据库(比如SQL Server;如果是MySQL/PostgreSQL,换pymysql/psycopg2就行)

先打开终端安装这些库:

pip install pandas pyodbc

1. 完整脚本(带注释)

把所有步骤整合起来,你只需要替换脚本里的占位信息(比如文件路径、数据库连接信息)就能直接用:

import pandas as pd
import pyodbc

def main():
    # --------------------------
    # 第一步:读取Excel中的用户名列表
    # --------------------------
    excel_path = "你的Excel文件路径.xlsx"  # 替换成你的实际文件路径
    try:
        # 只读取"new_it_users"工作表的A列,避免加载多余数据
        df = pd.read_excel(excel_path, sheet_name="new_it_users", usecols="A")
        # 提取A列数据,去掉空值后转成列表
        username_list = df.iloc[:, 0].dropna().tolist()
        
        if not username_list:
            print("Excel的A列里没有找到有效的用户名哦")
            return
    except Exception as e:
        print(f"读取Excel时出错了:{e}")
        return

    # --------------------------
    # 第二步:连接SQL数据库,获取已存在的用户名
    # --------------------------
    # 替换成你的数据库连接信息(这里以SQL Server为例)
    conn_str = (
        r"DRIVER={SQL Server};"
        r"SERVER=你的数据库服务器地址;"
        r"DATABASE=你的数据库名称;"
        r"UID=你的数据库用户名;"
        r"PWD=你的数据库密码;"
    )
    existing_usernames = []
    try:
        # 用with语句自动管理连接,避免忘记关闭
        with pyodbc.connect(conn_str) as conn:
            cursor = conn.cursor()
            # 查询ituserlist表的所有用户名
            cursor.execute("SELECT username FROM ituserlist")
            # 把查询结果提取成列表
            existing_usernames = [row[0] for row in cursor.fetchall()]
    except pyodbc.Error as e:
        print(f"数据库连接或查询出错了:{e}")
        return

    # --------------------------
    # 第三步:比对用户名,输出结果
    # --------------------------
    print("=== 用户名比对结果 ===")
    for username in username_list:
        if username in existing_usernames:
            print(f"✅ *{username}* 已存在于数据库中")
        else:
            print(f"❌ *{username}* 不存在于数据库中")

if __name__ == "__main__":
    main()

新手适配提示

  • 如果用的是MySQL:把pyodbc换成pymysql,连接代码改成下面这样:
    import pymysql
    conn = pymysql.connect(
        host='你的服务器地址',
        user='你的数据库用户名',
        password='你的数据库密码',
        database='你的数据库名'
    )
    
  • 记得处理Excel里的空值:脚本里已经用dropna()过滤了A列的空单元格,避免报错
  • 测试前确认:数据库服务是开启的,你有对应数据库的访问权限

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:04:10