为什么表头比数据更容易拖垮导入
脚本报错常常不是某一行数据,而是:
- 表头带空格:
User Namevs 库字段UserName - 中英文混用、同义多列:
手机/Mobile/电话 - 重复列名导致 JSON/XML/SQL 映射混乱
- 第一行不是表头(标题行、合并单元格)
先把 表头规范化,再 转 SQL 或 转 JSON,能少改很多遍。
理想表头约定
| 规则 | 好例子 | 坏例子 |
|---|---|---|
| 与库字段一致 | UserId, Email |
用户编号, 邮箱地址 |
| 无首尾空格 | OrderId |
OrderId |
| 唯一列名 | Amount, AmountTax |
两个 Amount |
| 只用字母数字下划线 | CreatedAt |
创建时间(必填) |
| 第一行即表头 | 行 1 = 列名 | 行 1 = 报表标题 |
XML 场景下,特殊字符会被清洗成 _(见 Excel 转 XML);不如一开始就用合法名。
在 Excel 里快速清洗(手工)
- 删除最上方面包屑/标题行,保证 第 1 行是列名。
- 取消合并单元格,拆成正常表头。
- 查找替换:空格、全角符号、换行。
- 统一大小写风格(如全部
PascalCase或snake_case)。 - 「另存为」干净的
.xlsx或 UTF-8 CSV。
用 ComTools 辅助
1. 格式化看清结构
Excel 格式化 上传后预览表头与前几行,确认没有空列名、错位列。可顺带统一日期显示,再导出。
2. 转 SQL 时改映射
Excel 转 SQL 列矩阵里可把 Excel 列映射到目标字段名(工具也会去掉列名中的空格)。适合「表头略脏、库字段已定」的情况。
3. 文本工具处理表头行
若只有一行表头文本,可用 文本格式化 按分隔符拆开、去空格、再拼回。
4. HTML 网页表
网页复制来的表先走 HTML 转 Excel,再检查第一行是否真是列名。
导入前对照检查
| 检查项 | 方法 |
|---|---|
| 列是否都能对上库表 | 列出 Excel 表头 ↔ 字段清单 |
| 主键列是否存在且唯一 | 去重 预览 |
| 类型是否可转换 | 日期/数字列抽样;见 导入注意事项 |
| 空表头列 | 删除或改名 ColumnN |
推荐工作流
原始导出
→ 表头规范化(本篇)
→(可选)去重
→ Excel 转 SQL INSERT / UPDATE
→ 测试库验证
常见问题
Q:必须和数据库字段完全同名吗?
A:不必,可在转 SQL 映射里改;同名能少点错。
Q:中文表头可以转 SQL 吗?
A:可以,但建议映射成英文/拼音字段名,避免各环境排序规则差异。
Q:CSV 打开后表头乱码?
A:用 UTF-8;或 CSV 转 Excel 检查后再改表头。
Q:多行表头(两行标题)?
A:在线工具按 第一行 作表头。请先合并成单行表头,或删除多余标题行。