Excel 数据处理工作流:合并 → 去重 → 转 SQL 入库

2026-07-17

为什么要串成一条工作流

实际导入很少是「一个干净文件直接 INSERT」:

  1. 市场、销售、客服各导出一份 Excel
  2. 合并后同一客户邮箱、订单号可能重复
  3. 不去重就灌库会主键冲突或重复统计

ComTools 可在浏览器里走完:合并去重转 SQL,再在测试库执行脚本。

多文件 xlsx
    ↓  Excel 合并(多 Sheet 进一个工作簿)
总表(按 Sheet 或挑主表)
    ↓  Excel 重复删除
干净表
    ↓  Excel 转 SQL(INSERT)
.sql 脚本 → 测试库 → 生产库

第 1 步:合并多个 Excel

打开 Excel 合并

  1. 一次选择多个 .xlsx / .xlsm(可「添加更多」)。
  2. 用 ↑↓ 调整文件顺序(先选的在前)。
  3. 点击 开始合并,下载 merged.xlsx

要点:合并是把各文件的 Sheet 都保留进一个工作簿,不会把多表行自动堆到同一张表。若各部门表结构相同、需要「行追加成一张表」,合并后请在 Excel 中复制粘贴到同一 Sheet,或对每个源文件分别转 SQL 后在库里多次 INSERT。

详见:Excel 合并指南

第 2 步:按列去重

打开 Excel 重复删除

  1. 上传合并后的文件,选择要处理的 Sheet。
  2. 勾选去重键(如 EmailOrderId);全不选则按整行比较。
  3. 保留「第一条」或「最后一条」。
  4. 可选:去除首尾空格、忽略大小写。
  5. 预览去重 → 确认重复组 → 下载 干净的 xlsx/csv。
场景 建议
客户邮箱列表 键 = Email,保留第一条
订单号唯一 键 = OrderId
先看重复再删 输出模式选「标记重复行」
只要唯一 ID 做 IN 查询 「仅唯一值」→ 文本转 SQL

详见:Excel 去重指南

第 3 步:生成 INSERT 脚本

打开 Excel 转 SQL

  1. 上传去重后的文件,选 Sheet。
  2. 语句类型选 Insert,填写表名(如 dbo.Customers)。
  3. 选数据库类型(SQL Server / MySQL / PostgreSQL 等)。
  4. 勾选要导入的列;建议开启 批量 INSERT
  5. 生成后复制或下载 .sql,先在测试库执行。

若目标是改已有数据或按 ID 删除,改用 UPDATE / DELETE。编码与分批见 CSV 导入注意事项

详见:Excel 生成 INSERT

可选中间步骤

步骤 何时用
CSV 转 Excel 源文件是 CSV
Excel 格式化 给领导看的中间表要美化
Excel 对比 去重前后各存一版,核对删了什么
Excel 拆分 合并后只处理某一个业务 Sheet

执行检查清单

[ ] 合并文件顺序正确,Sheet 名称可读
[ ] 去重键与业务主键一致,预览行数合理
[ ] INSERT 列映射与库表字段一致
[ ] 测试库试跑,ROWCOUNT / COUNT(*) 与 Excel 一致
[ ] 生产库已备份,脚本分批执行

相关文章(本工作流)

常见问题

Q:合并后只有一个 Sheet,去重报错?
A:确认上传的是合并结果,且该 Sheet 有表头;空表或无数据行会失败。

Q:必须三步都做吗?
A:单文件可跳过合并;已无重复可跳过去重;只导出给前端可走 转 JSON 而不是 SQL。

Q:行级合并多文件成一张表?
A:当前合并工具按 Sheet 聚合。结构相同的多文件可:各自去重 → 各自 INSERT,或在 Excel 中手工追加行后再转 SQL。


English version