Laravel中如何实现Excel数据导入MySQL数据库的分步操作指导
窗帘价格Excel数据导入MySQL分步操作指引
前置字段说明:本次导入涉及的业务字段定义如下
- x轴对应字段:窗帘宽度
- y轴对应字段:窗帘高度
- 价格字段:取值为55、65、75、85,计价单位为美元($)
步骤1:预处理Excel源文件
- 打开待导入的Excel文件,统一修改表头为无特殊字符的规范命名(避免中文乱码,比如宽度命名为
curtain_width、高度命名为curtain_height、价格命名为price_usd),删除所有合并单元格、空行、公式计算项、无关图例/备注行,将价格列的单元格格式统一设置为纯数字格式。 - 处理完成后将文件另存为
CSV(逗号分隔)(*.csv)格式,存储到本地无中文、无特殊字符的路径下,比如D:/data/curtain_price.csv,弹出格式兼容提示直接点击确认即可。
步骤2:MySQL端创建对应存储表
- 打开MySQL操作端(可视化客户端、命令行均可),选定目标存储数据库,执行以下建表语句,字段类型和Excel数据匹配:
CREATE TABLE `curtain_price` ( `id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', `curtain_width` decimal(10,2) NOT NULL COMMENT '窗帘宽度(对应原x轴字段)', `curtain_height` decimal(10,2) NOT NULL COMMENT '窗帘高度(对应原y轴字段)', `price_usd` decimal(10,2) NOT NULL COMMENT '窗帘价格(单位:美元,对应55/65/75/85价格档位)', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='窗帘尺寸对应价格表';
- 语句执行完成后刷新表列表,确认表创建无报错。
步骤3:执行数据导入(两种方式二选一即可)
方式A:可视化客户端导入(新手推荐)
- 右键点击刚创建的
curtain_price表,选择「导入向导」,文件类型选择「CSV文件」,下一步选中之前保存好的CSV文件路径。 - 编码选择
utf8mb4,分隔符选择逗号,勾选「首行为表头」选项,下一步将CSV列和数据库表字段一一对应映射,避免字段错位。 - 导入模式选择「追加记录到目标表」,点击开始执行,等待导入完成后,核对提示的导入成功条数和Excel内的有效数据行数是否一致。
方式B:命令行LOAD DATA导入(适合万级以上大批量数据)
- 先开启本地文件导入权限,执行SQL:
SET GLOBAL local_infile = 1;
- 退出当前MySQL会话,重新带本地文件权限参数登录:
mysql -u你的数据库用户名 -p --local-infile=1 目标数据库名
- 登录后执行导入语句,文件路径替换为你本地的CSV实际存储路径:
LOAD DATA LOCAL INFILE 'D:/data/curtain_price.csv' INTO TABLE `curtain_price` CHARACTER SET utf8mb4 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 ROWS (`curtain_width`,`curtain_height`,`price_usd`);
步骤4:导入后数据校验
- 依次执行以下SQL核对数据正确性:
-- 查询总条数,和Excel去掉表头后的有效行数对比 SELECT COUNT(*) FROM curtain_price; -- 抽取10条样本,检查宽度、高度、价格是否错位、乱码 SELECT * FROM curtain_price LIMIT 10; -- 校验价格值是否仅包含约定的55、65、75、85四个档位 SELECT DISTINCT price_usd FROM curtain_price;
- 如果存在导入错误,执行
TRUNCATE TABLE curtain_price;清空表后,回头检查CSV格式、字段映射关系,修正后重新导入即可。
内容的提问来源于stack exchange,提问作者nithin PM
相关产品推荐
相关产品推荐

