当前位置: 首页 > news >正文

将 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)

) ENGINE=INNODB 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 pd

import pymysql

from sqlalchemy import create_engine

# 1. 读取 Excel

df = pd.read_excel('行政区域.xlsx', dtype={'区划代码': str}) # 强制代码为文本

# 2. 数据清洗(按需)

df['区划代码'] = df['区划代码'].str.zfill(6) # 补全6位代码

df['上级代码'] = df['上级代码'].str.zfill(6)

# 3. 连接并写入 MySQL

# 使用 sqlalchemy 引擎

engine = create_engine('mysql+pymysql://用户名:密码@localhost:3306/数据库名?charset=utf8mb4')

# 写入数据库,如果表存在则追加

df.to_sql('area_info', con=engine, if_exists='append', index=False)

print("导入完成!")

优势:可处理任意大小的 Excel 文件,并可加入自动化的清洗逻辑(如代码补零、去重、格式转换)。

方案三:导出 CSV 并用 MySQL 命令导入(极速大批量)

当 Excel 文件超过 50 万行时,这是最快的方案,利用 MySQL 的 LOAD DATA命令。

Excel 另存为 CSV:在 Excel 中点击“文件” -> “另存为”,选择格式为CSV UTF-8

使用 MySQL 命令行导入

-- 登录 MySQL

mysql -u root -p

-- 使用你的数据库

USE your_database;

-- 执行导入命令

LOAD DATA LOCAL INFILE '/path/to/你的文件.csv'

INTO TABLE area_info

CHARACTER SET utf8mb4

FIELDS TERMINATED BY ','

OPTIONALLY ENCLOSED BY '"'

LINES TERMINATED BY '\n'

IGNORE 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

http://www.jsqmd.com/news/668031/

相关文章:

  • 保姆级教程:用Cesium.js 1.107+ 加载ArcGIS Server发布的WMTS地图(附完整代码)
  • 【Allegro 17.4实战指南】布线完成后的DRC检查与丝印优化
  • STM32CubeMX实战:SDIO驱动SD卡与FATFS文件系统移植全解析
  • MySQL存储过程运行出错怎么排查_使用DECLARE HANDLER捕获错误
  • 网络工程师-实战配置篇(二):精通 ACL 与策略路由,实现智能流量管控
  • 别再只调包了!手把手带你用PyTorch从零实现BiLSTM+CRF医学NER模型(附完整代码)
  • Ollama离线安装避坑指南:从下载加速、权限配置到彻底卸载的完整闭环
  • 手把手教你用ST7789V驱动点亮ST7735S屏幕(Linux 5.10内核,附完整设备树配置)
  • 如何用嘎嘎降AI同时处理多篇论文:批量操作效率提升教程
  • 保姆级教程:在ARM服务器上配置GICv3虚拟中断,手把手教你玩转List寄存器
  • 如何创建包含ROWID的物化视图日志_WITH ROWID参数支持复杂关联视图的刷新
  • FPGA--Verilog 实现乒乓操作:从原理到工程实践(附完整代码)
  • WPF—Style样式
  • CREST:分子构象采样的终极指南,快速探索化学空间
  • STM32 FSMC驱动TFTLCD:从点阵到任意尺寸字体的高效显示方案
  • Windows 10专业版用户必看:用组策略彻底关掉Defender的保姆级教程(附防篡改设置)
  • mysql数据量过亿时索引如何优化_mysql分库分表索引设计
  • 联想小新Air14 AMD版装Ubuntu 20.04,升级内核到5.11解决触控板和亮度问题(附详细步骤)
  • Bootstrap Gutters间距用法 Bootstrap 5中g-,gx-,gy--如何使用
  • 2026届最火的五大降重复率助手推荐
  • Nacos2.x核心源码深度剖析:从通信到业务
  • 股票行情核心指标与形态解析
  • winodws下cpolar 公网穿透保姆级安装使用教程
  • 2026电压力锅哪个牌子质量好?高口碑品牌推荐 - 品牌排行榜
  • 告别虚拟机!在Win11的WSL2里从源码编译安装Madagascar(保姆级避坑指南)
  • Nexys A7 实战入门:从流水灯到硬件描述语言
  • Chrome DevTools MCP:让 AI 编码助手拥有浏览器调试超能力
  • 2026最权威的十大降重复率助手推荐
  • 从共享单车需求预测看ST-Norm:为什么你的时序模型总忽略局部特征?
  • 告别Three.js!用3Dmol.js在Web端5分钟搞定分子3D可视化(附完整代码)