为什么要把 Excel 转成 INSERT
测试环境初始化、配置表导入、从业务导出补数据——这些场景都离不开批量 INSERT。手工写脚本慢、易漏引号,几百行数据就能耗掉一下午。
ComTools 提供免费的 Excel 转 SQL 在线工具:上传 .xlsx 或 .csv,勾选列映射,一键生成 INSERT 脚本,支持复制或下载 .sql 文件。
准备 Excel / CSV 文件
| 要求 | 说明 |
|---|---|
| 第一行 | 列名(表头),如 UserId、Email、Age |
| 数据行 | 从第二行起,每行对应一条 INSERT |
| 列名 | 尽量与数据库字段名一致,可在工具里改映射 |
| 格式 | .xlsx、.xlsm、.csv |
示例:
| UserId | Age | |
|---|---|---|
| 1001 | alice@example.com | 28 |
| 1002 | bob@example.com | 32 |
使用步骤(INSERT)
- 打开 Excel 转 SQL。
- 上传 Excel 或 CSV 文件;多 Sheet 时选择目标工作表。
- 语句类型 选 Insert。
- 填写 表名,如
dbo.Users或users。 - 数据库类型 选择 SQL Server、MySQL、PostgreSQL、SQLite 或 Oracle。
- 在列矩阵中勾选要导入的列,可修改目标字段名。
- 可选:批量 INSERT(默认开启,每批约 500 行合并为一条语句,执行更快)。
- 可选:附带 CREATE TABLE(根据列生成建表语句,适合新表或临时表)。
- 点击 生成,复制或下载 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 指南。