合并文件夹中CSV文件:如何跳过/删除各文件首行
解决多CSV文件合并时表头重复报错的规范方法
核心问题根源
你遇到的报错是因为仅修改了样本文件的处理逻辑,其余24个文件的表头行仍被当作数据行读取,导致字段类型/内容冲突。以下是规范的批量处理方案:
步骤1:统一批量处理所有文件结构
放弃手动修改样本文件的操作,直接在「从文件夹获取数据」后的步骤中添加自定义列,一次性处理所有文件的格式:
- 点击「添加列」→「自定义列」,输入公式:
公式说明:Table.PromoteHeaders(Table.Skip(Csv.Document(File.Contents([Folder Path]&[Name]), [Delimiter=",", QuoteStyle=QuoteStyle.Csv]), 1), [PromoteAllScalars=true])Table.Skip(...,1):跳过每个文件的第一行(仅A列是文件名的行)Csv.Document(..., QuoteStyle=QuoteStyle.Csv):用标准CSV格式读取文件,避免解析异常Table.PromoteHeaders:将每个文件的第二行设为表头
步骤2:清理并合并数据
- 删除之前针对样本文件的「移除首行」「提升标题」等单独步骤
- 点击自定义列右侧的「展开」按钮,选择所有需要的字段
- (可选)添加数据校验步骤:筛选并删除可能残留的表头行,例如某列等于表头文本的行:
Table.SelectRows(上一步骤名称, each [目标列名] <> "目标列的表头文本")
关键说明
- 之前修改
QuoteStyle无效,是因为仅修改了样本文件的处理逻辑,没有应用到所有文件;上述自定义列的公式会统一作用于25个文件 - 你的谨慎是对的,忽略报错会导致表头行混入数据,造成数据污染,规范处理才能保证数据准确性
内容的提问来源于stack exchange,提问作者ErinF
相关产品推荐
相关产品推荐

