EXCEL 使用的 CSV 结构检查指南
Excel CSV 列错位和列数不一致的安全检查方法
如果 Excel 打开 CSV 时只有部分行列错位,或导入系统时出错,文件中可能存在列数不一致、空行或引号问题。LocaCSV 的“修复 CSV 问题”在浏览器内检查,不把文件发送到外部,不修改原始 CSV,只把你选择的修改写入另一份 CSV。
在 Excel 查看前快速确认 CSV 问题
不必先逐行查找,“修复 CSV 问题”会显示问题类型、修改前内容、修复建议和检查原因。输入对象是 CSV 文件,不是 Excel 工作簿。
- 选择 CSV:先把 Excel 数据保存为 CSV,再选择文件。
- 检查问题:查找空行、列数不一致和完全一致的重复候选。
- 确认修改:比较修改前后和相邻记录,选择要应用的项目。
- 保存:确认已选择与未处理数量,生成不覆盖原文件的另一份 CSV。
Excel 中 CSV 列错位的主要原因
列错位通常与分隔符、引号、每行列数或 Excel 导入设置有关。先根据屏幕上的现象缩小范围,再检查问题行的原始内容。
小文件可以通过 Excel 导入,并在预览中确认分隔符和编码。数据较多时可用检查结果定位问题行,不必人工查看整份文件。
| Excel 中的现象 | 主要原因 | 检查位置 |
|---|---|---|
| 只有部分行向右错位 | 逗号、引号、列数不一致 | 问题行的逗号和引号 |
| 整个 CSV 显示为一列 | 分隔符判断错误 | 逗号、分号、制表符 |
| 文字出现乱码 | 字符编码 | UTF-8 或地区常用编码 |
| 部分值发生变化 | Excel 自动转换 | 前导零、日期、长数字 |
只有部分行向右错位
- 主要原因
- 逗号、引号、列数不一致
- 检查位置
- 问题行的逗号和引号
整个 CSV 显示为一列
- 主要原因
- 分隔符判断错误
- 检查位置
- 逗号、分号、制表符
文字出现乱码
- 主要原因
- 字符编码
- 检查位置
- UTF-8 或地区常用编码
部分值发生变化
- 主要原因
- Excel 自动转换
- 检查位置
- 前导零、日期、长数字
为什么不能直接删除行尾逗号
CSV 行尾的逗号可能表示最后一个字段有意留空。下面的标题行和数据行都是 3 列。
商品名称,金额,备注
商品A,100,LocaCSV 可以检查的问题和修复方式
“修复 CSV 问题”把可信的第一行作为表头,将每行列数与第一行比较,并在界面显示原因;不会根据多数行或数据含义猜测。
它会检查完全空行、列数比表头多或少的行、明确多出的空白单元格,以及列数和所有单元格值完全相同的重复行。你可以比较原内容和修复建议,并查看问题行前后各最多 2 行。
单个 CSV 最大 50MiB,支持 UTF-8、GB18030 等主要编码,以及逗号、分号、制表符和竖线分隔。
- 商品A,100,与表头同为 3 列,因此不是问题。
- 商品B行有 4 列,需要人工确认,初始状态未选中。
- 完全没有字符的空行会成为预先选中的修复建议,也可以取消。
- 第二个商品C行是重复候选,只有用户选择后才会排除。
商品名称,金额,备注
商品A,100,
商品B,200,说明,多余值
商品C,300,
商品C,300,自动修复与需要确认的问题有何不同
完全空行会预先选中;如果某行比第一行多出的单元格全为空白,也会预先选中。短行、包含值的多余列和完全重复行都不会。
| 类型 | 示例 | 初始状态 |
|---|---|---|
| 可自动修复 | 完全空行、明确多余的空白单元格 | 已选中,可取消 |
| 需要确认 | 列数不一致、完全相同的重复行 | 未选中 |
可自动修复
- 示例
- 完全空行、明确多余的空白单元格
- 初始状态
- 已选中,可取消
需要确认
- 示例
- 列数不一致、完全相同的重复行
- 初始状态
- 未选中
在 Excel 中确认修复后的 CSV
输出是 Excel 通常可以识别的带 BOM 的 UTF-8 CSV。Excel 打开时仍可能自动转换值,因此导入其他系统前请检查以下项目。
- 确认表头与每行的列对应。
- 检查前导零、日期、电话号码和长编号是否被自动转换。
- 先用少量数据测试业务系统导入。
- 完成确认前保留原始文件。
使用修复后的 CSV 前,请再检查
LocaCSV 会检查列数、空行和内容完全相同的行,但不会判断值本身是否正确,也不会判断第一行是否放了正确的列名。
- 值是否正确。
- 是否符合导入系统的规则。
- 重复候选是否可以删除。