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

如何用Python将Excel文件导入SQL数据库?

用Python将Excel文件转换为SQL数据库的方法

下面是两种实用的实现方式,适合新手快速上手:

方法1:Pandas + SQLAlchemy(通用所有SQL数据库)

这是最常用的方案,支持SQLite、MySQL、PostgreSQL等多种数据库,操作简单高效。

步骤1:安装依赖

首先安装所需的Python库:

pip install pandas sqlalchemy openpyxl
  • openpyxl用于读取.xlsx格式的Excel文件,如果是.xls,需要安装xlrd。

步骤2:读取Excel文件

用Pandas加载Excel数据,可以读取单个sheet或所有sheet:

import pandas as pd

# 读取单个sheet
df = pd.read_excel("your_excel_file.xlsx", sheet_name="Sheet1")

# 读取所有sheet(返回字典,key是sheet名,value是DataFrame)
all_sheets = pd.read_excel("your_excel_file.xlsx", sheet_name=None)

步骤3:连接SQL数据库

用SQLAlchemy创建数据库连接引擎,不同数据库的连接字符串示例:

from sqlalchemy import create_engine

# SQLite(无需额外服务,文件型数据库)
engine = create_engine("sqlite:///your_database.db")

# MySQL(需要先安装pymysql:pip install pymysql)
# engine = create_engine("mysql+pymysql://username:password@localhost:3306/your_db_name")

# PostgreSQL(需要先安装psycopg2:pip install psycopg2-binary)
# engine = create_engine("postgresql://username:password@localhost:5432/your_db_name")

步骤4:将数据写入SQL数据库

用to_sql方法将DataFrame写入数据库表:

# 写入单个sheet的数据到名为"excel_data"的表
df.to_sql(
    name="excel_data",  # 目标表名
    con=engine,         # 数据库连接引擎
    if_exists="replace",# 如果表存在则替换,可选"append"追加数据
    index=False,        # 不写入Pandas的索引列
    chunksize=1000      # 大文件时分批写入,避免内存不足
)

# 如果读取了所有sheet,循环写入每个sheet为单独的表
for sheet_name, sheet_df in all_sheets.items():
    sheet_df.to_sql(
        name=sheet_name.lower().replace(" ", "_"),  # 表名转为小写、替换空格为下划线
        con=engine,
        if_exists="replace",
        index=False
    )

方法2:直接使用sqlite3(仅SQLite)

如果只需要操作SQLite数据库,也可以用Python内置的sqlite3库配合Pandas:

import sqlite3
import pandas as pd

# 连接SQLite数据库
conn = sqlite3.connect("your_database.db")

# 读取Excel并写入
df = pd.read_excel("your_excel_file.xlsx")
df.to_sql("excel_data", conn, if_exists="replace", index=False)

# 关闭连接
conn.close()

关键注意事项

  • 数据类型匹配:Pandas会自动推断数据类型,但如果需要自定义(比如指定某列为TEXT或INT),可以在to_sql中添加dtype参数,例如dtype={"column_name": sqlalchemy.types.VARCHAR(255)}。
  • 权限问题:连接MySQL/PostgreSQL时,确保数据库用户有创建表、写入数据的权限。
  • 大文件优化:对于超大Excel文件,优先使用chunksize分批写入,或者先清理无关数据再处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 01:01:12