先把标题和文件的对应关系还原成可核对的键值,再谈修复:如果导入时保留了原始文件名、唯一标识或时间戳,通常能用脚本或表格逐条比对;但如果导入过程只留下标题、且标题在写入时被截断或改写,这套核对方法就会失效,必须回到导入前的源文件或中间产物重建映射。
标题与文件错位,可能是三种不同的问题。第一种是映射错误:文件本身没错,只是标题字段和文件记录被配错了行。第二种是排序错位:列表按标题排序后,你看到的顺序和文件真实顺序不一致,实际对应关系没变。第三种是覆盖错位:同名或近似标题在导入时互相覆盖,导致一个标题下面挂着另一个文件的内容。
区分方法很直接。随机抽三到五条记录,把标题复制出来单独搜索,看能否定位到唯一文件。如果能定位,问题多半在排序或展示层;如果搜出来有多个候选,问题在映射;如果标题对应的文件内容明显属于另一条记录,且原记录已找不到,就是覆盖。三种原因的修复动作完全不同,先做这一步能避免把排序问题当成数据损坏来处理。
最可靠的核对依据是导入前就存在、且导入过程不会改写的字段。常见的有原始文件名、素材编号、创建时间、来源路径。把这些字段和导入后的标题、记录 ID 一起导出成一张对照表,按唯一标识排序,再逐列检查标题是否落在预期行上。
假设一个场景:某批内容导入时,标题取自文件正文的第一行,而文件名是系统生成的流水号。此时用文件名和标题做交叉比对,就能发现哪些标题被截断、哪些标题重复。这个例子的前提是导入工具没有丢弃文件名——如果导入时只保留了标题,这条路径走不通,需要改用导入日志或源目录清单。
实际操作上,可以先导出对照表,用条件格式标出标题重复项和空值项。标出的记录优先人工核对,未标出的抽样验证。这样做的好处是把核对范围从全量缩小到可疑集合,下一步的修复动作才有明确目标。
上面的方法有一个明确的反例:当导入流程对标题做了长度截断、去空格、繁简转换或自动补全,标题就不再是可靠的核对键。此时即使对照表看起来整齐,也可能出现两条不同文件的标题被截断成同一个字符串,核对表反而给出错误的确认。
判断是否落入这个反例,可以看标题长度是否集中在某个上限附近,以及是否存在大量只差尾部字符的标题。如果符合,就不能再用标题做主键,应改用导入时间加文件顺序号,或直接以文件内容中的稳定片段做指纹。这一步的判断结果决定后续是继续用表格核对,还是必须回到源文件重建映射。
确认对应关系后,不要一次性批量重命名或覆盖。先挑十条记录,按核对结果修正标题与文件的绑定,再重新导出一次对照表,确认修正后的映射稳定。如果这十条在二次导出后仍保持一致,说明核对逻辑成立,可以扩大范围;如果又出现新的错位,说明导入环节仍有改写行为,需要先处理导入规则而不是继续修数据。
整个过程里,判断依据是映射是否稳定,而不是某一次导出看起来是否正确。稳定性验证通过后,再考虑把核对脚本固化成导入后的例行检查,避免下一批内容重复出现同类问题。