问题场景
编号 00123 导入后变成了 123,带逗号的名称又被拆成两列。怎样解析才能保留原来的内容?
排查与解法按顺序复现、定位和验证
编号不是数量
手机号、邮编、商品编号通常应保留为文本,特别是前导零与超过安全整数范围的值。若 Excel 保存前已经改写了编号,再转换为 JSON 也不能恢复原值。
不要用逗号直接切分
字段可能包含逗号、双引号和换行。使用 CSV 解析器;字段内的双引号通常写成两个连续双引号,包含分隔符或换行的字段用双引号包裹。
code,name,note
00123,"A, B","他说""你好"""先检查结构再赋类型
先查看分隔符、编码、BOM、标题是否重复和每行列数。先按字符串解析,再针对确定的金额、数量等列显式转换;空字段是否表示 null 也要另外约定。
用导出结果反向核对
用含逗号、引号、单元格换行、前导零、长编号的测试文件往返转换。核对行数、列数及每个原始值;不要把 CSV 文件行数直接当记录数,因为单元格内可能有换行。