Excel数据写入数据库的完整指南

1. 准备工作

在将Excel数据写入数据库前,需确保数据库连接正常,Excel文件格式正确(建议保存为.xlsx或.csv)。检查数据中是否有合并单元格、空行、特殊字符等,这些可能导致导入失败。

2. 数据清洗

使用Excel的筛选、替换功能或Python的pandas库处理数据:
- 删除空行和空列
- 统一日期格式(如YYYY-MM-DD)
- 去除前后空格
- 处理重复数据
- 转换数据类型(如将文本数字转为数值型)

3. 字段映射

对比Excel列名与数据库表字段,建立映射关系。注意字段名大小写、长度限制、是否允许NULL等。可使用Excel的Power Query或Python脚本自动化映射。

4. 写入方法

4.1 使用Python + pandas

import pandas as pd
from sqlalchemy import create_engine

df = pd.read_excel('data.xlsx')
engine = create_engine('mysql+pymysql://user:pass@host/db')
df.to_sql('table_name', con=engine, if_exists='append', index=False)

4.2 使用SQL Server导入导出向导

在SQL Server Management Studio中,右键数据库 -> 任务 -> 导入数据,选择Excel源,配置映射。

4.3 使用MySQL LOAD DATA

先导出Excel为CSV,然后执行LOAD DATA INFILE 'file.csv' INTO TABLE table_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

5. 错误处理

常见错误及解决:
- 数据类型不匹配:确保Excel数据格式与数据库字段类型一致。
- 主键冲突:使用if_exists='replace'或先删除重复数据。
- 编码问题:使用UTF-8编码保存CSV或设置pandasencoding='utf-8'。
- 大数据量超时:分批写入,如每1000条提交一次。

6. 总结

将Excel写入数据库是常见的数据迁移任务,根据数据量、频率和业务逻辑选择合适的方法。对于一次性小数据,可用GUI工具;对于定期自动化任务,推荐Python脚本。始终备份原始Excel并验证写入结果。