Excel 批量生成 INSERT 语句:从表格一键导出 SQL 脚本

2026-07-01

为什么要把 Excel 转成 INSERT

测试环境初始化、配置表导入、从业务导出补数据——这些场景都离不开批量 INSERT。手工写脚本慢、易漏引号,几百行数据就能耗掉一下午。

ComTools 提供免费的 Excel 转 SQL 在线工具:上传 .xlsx.csv,勾选列映射,一键生成 INSERT 脚本,支持复制或下载 .sql 文件。

准备 Excel / CSV 文件

要求 说明
第一行 列名(表头),如 UserIdEmailAge
数据行 从第二行起,每行对应一条 INSERT
列名 尽量与数据库字段名一致,可在工具里改映射
格式 .xlsx.xlsm.csv

示例:

UserId Email Age
1001 alice@example.com 28
1002 bob@example.com 32

使用步骤(INSERT)

  1. 打开 Excel 转 SQL
  2. 上传 Excel 或 CSV 文件;多 Sheet 时选择目标工作表。
  3. 语句类型Insert
  4. 填写 表名,如 dbo.Usersusers
  5. 数据库类型 选择 SQL Server、MySQL、PostgreSQL、SQLite 或 Oracle。
  6. 在列矩阵中勾选要导入的列,可修改目标字段名。
  7. 可选:批量 INSERT(默认开启,每批约 500 行合并为一条语句,执行更快)。
  8. 可选:附带 CREATE TABLE(根据列生成建表语句,适合新表或临时表)。
  9. 点击 生成,复制或下载 SQL。

单条 INSERT 示例

INSERT INTO dbo.Users (UserId, Email, Age) VALUES (1001, 'alice@example.com', 28);
INSERT INTO dbo.Users (UserId, Email, Age) VALUES (1002, 'bob@example.com', 32);

批量 INSERT 示例

INSERT INTO dbo.Users (UserId, Email, Age) VALUES
(1001, 'alice@example.com', 28),
(1002, 'bob@example.com', 32);

字符串中的单引号会自动转义;空单元格按 NULL 处理(取决于列类型推断)。

常见场景

场景 建议设置
新表首次灌数 勾选「附带 CREATE TABLE」+ Insert
大表快速导入 开启「批量 INSERT」,在库中分批执行
临时表预览 表名用 #Preview,工具自动建表、插入并 SELECT
数据来自网页表格 先用 HTML 转 Excel,再转 SQL
合并多文件后导入 Excel 合并去重 → 本工具

在数据库中执行

USE YourDatabase;
GO
-- 粘贴生成的 INSERT 语句

建议:

  • 先在测试库执行,核对 @@ROWCOUNT 或受影响行数。
  • 单脚本过大时按批执行(工具批量模式已合并,仍建议每批 500~1000 行提交)。
  • 生产环境导入前备份相关表。

与其他入口对比

数据来源 推荐工具
Excel / CSV 表格 Excel 转 SQL
JSON 数组(API 返回) JSON 转 SQL
少量 JSON 行粘贴 生成 INSERT

本系列(Excel 转 SQL)

常见问题

Q:最多支持多少行?
A:单次生成上限为 50,000 行;更大文件请拆分 Sheet 或分批上传。

Q:CSV 中文乱码怎么办?
A:尽量保存为 UTF-8;若已乱码,先用 CSV 转 Excel 检查再生成 SQL。

Q:数据会上传到哪里?
A:文件在服务端解析并生成 SQL,请勿上传含敏感生产数据的文件到不可信环境;测试数据优先。

Q:INSERT 和 UPDATE 有什么区别?
A:INSERT 新增行;UPDATE 按 WHERE 条件修改已有行。批量改邮箱、状态请用 UPDATE 指南


English version