将 Excel 中的行政区域数据快速导入 MySQL
将 Excel 中的行政区域数据快速导入 MySQL关键在于利用现成的工具链和标准化数据源避免手动拼接 SQL 的繁琐过程。这里提供从“极速上手”到“专业批量”的完整方案。最佳方案SQLyog/Navicat 直接导入推荐这是最直接、最稳定、最高效的方法尤其适合处理成千上万行的行政区域数据。表结构如下CREATE TABLE IF NOT EXISTS area(id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 自增主键,code VARCHAR(12) NOT NULL COMMENT 行政区划代码,name VARCHAR(50) NOT NULL COMMENT 名称,full_name VARCHAR(100) COMMENT 全称,parent_code VARCHAR(12) COMMENT 父级代码,level TINYINT NOT NULL COMMENT 层级: 1-省, 2-市, 3-区县, 4-乡镇,5-村,longitude DECIMAL(10, 6) COMMENT 经度,latitude DECIMAL(10, 6) COMMENT 纬度,is_active TINYINT(1) DEFAULT 1 COMMENT 是否启用: 1-是, 0-否,PRIMARY KEY (id),UNIQUE KEY uk_code (code)) ENGINEINNODB COMMENT行政区划表;准备 Excel 文件确保第一行是字段名如 id,code,name,name,parent_code,level。数据规范行政区划代码应为文本格式如 110101而非数字防止开头的 0 被 Excel 自动过滤。数据举例下载地址http://www.zrscsoft.com/sitepic/12174.html在 SQLyog 中操作右键目标数据库 -导入 -导入外部数据。在向导中选择Excel 文件 格式并上传你的文件。设置字段映射确保 Excel 列与数据库表的字段一一对应并将“区划代码”列的格式映射为 TEXT或 VARCHAR。点击执行数据将直接物理导入无需生成中间 SQL。在 Navicat 中类似操作右键目标表 -导入向导 - 选择 Excel 文件。设置映射后在最后一步选择“导入模式”为“追加”。方案二使用 Python 脚本自动化、可复用如果你的 Excel 结构复杂或有清洗、校验的需求几行 Python 代码是最灵活的解决方案。import pandas as pdimport pymysqlfrom sqlalchemy import create_engine# 1. 读取 Exceldf pd.read_excel(行政区域.xlsx, dtype{区划代码: str}) # 强制代码为文本# 2. 数据清洗按需df[区划代码] df[区划代码].str.zfill(6) # 补全6位代码df[上级代码] df[上级代码].str.zfill(6)# 3. 连接并写入 MySQL# 使用 sqlalchemy 引擎engine create_engine(mysqlpymysql://用户名:密码localhost:3306/数据库名?charsetutf8mb4)# 写入数据库如果表存在则追加df.to_sql(area_info, conengine, if_existsappend, indexFalse)print(导入完成)优势可处理任意大小的 Excel 文件并可加入自动化的清洗逻辑如代码补零、去重、格式转换。方案三导出 CSV 并用 MySQL 命令导入极速大批量当 Excel 文件超过 50 万行时这是最快的方案利用 MySQL 的 LOAD DATA命令。Excel 另存为 CSV在 Excel 中点击“文件” - “另存为”选择格式为CSV UTF-8。使用 MySQL 命令行导入-- 登录 MySQLmysql -u root -p-- 使用你的数据库USE your_database;-- 执行导入命令LOAD DATA LOCAL INFILE /path/to/你的文件.csvINTO TABLE area_infoCHARACTER SET utf8mb4FIELDS TERMINATED BY ,OPTIONALLY ENCLOSED BY LINES TERMINATED BY \nIGNORE 1 ROWS -- 忽略 CSV 标题行(code, name, parent_code, level); -- 对应表中的字段注意如果遇到 LOCAL权限问题可去掉 LOCAL并将文件放在 MySQL 服务器可访问的路径。方案四生成 SQL 文件再导入传统、通用如果你必须生成 SQL 文件可使用在线工具或 Power Query 批量生成 INSERT语句然后用 SQLyog 运行该 .sql文件。快速生成 SQL访问如magickit.ai 的“Excel 转 SQL”功能粘贴 Excel 数据选择“插入模式”即可得到完整的 INSERT语句文本。在 SQLyog 中执行打开该 .sql文件按 F9或点击执行图标。关键注意事项字符集确保 MySQL 表、连接、文件的字符集为 utf8mb4以支持所有汉字和特殊字符。代码补零Excel 中的代码如 110101必须以文本格式存储防止开头的 0 丢失。在导入前可先在 Excel 中将该列格式设置为“文本”。数据去重导入前建议在 MySQL 表上为“区划代码”字段设置 UNIQUE约束或在导入脚本中加入去重逻辑。决策指南数据规模推荐方案原因 10 万行SQLyog/Navicat 直导图形化操作最省心10 万 ~ 100 万行Python 脚本可控性强支持清洗逻辑 100 万行CSV LOAD DATA原生命令性能极致需生成可分享的脚本在线工具转 SQL 文件通用格式便于交接获取标准行政区域数据如果你没有现成的 Excel可直接从国家统计局官网获取结构化的 SQL 或 CSV 文件这比从 Excel 处理更高效。常见问题解决方法导入csv时提示Invalid utf8mb4 character【解决方法】导入csv文件编码设置为utf-8详细下载地址http://www.zrscsoft.com/sitepic/12174.html