You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Power Query批量转置TXT文件后合并为单个CSV文件

Power Query批量转置TXT文件并合并为CSV解决方案

错误原因

报错是因为Folder.Files返回的Content列存储的是文件的二进制原始数据,并非已解析的表格结构,直接对二进制值调用Table.Transpose会触发类型不匹配错误。

样例文件格式

text file format

修复后完整代码

let
    // 替换为你的TXT文件所在文件夹路径
    Source = Folder.Files("你的文件夹完整路径"),
    // 筛选后缀为.TXT的文件
    #"Filtered Rows" = Table.SelectRows(Source, each ([Extension] = ".TXT")),
    // 保留需要的列:文件内容、文件名
    #"Removed Other Columns" = Table.SelectColumns(#"Filtered Rows",{"Content", "Name"}),
    // 核心步骤:对每个文件二进制先解析为表格,再转置、提升表头
    #"Process Each File" = Table.AddColumn(#"Removed Other Columns", "FileData", each let
        // 解析TXT为表格,此处默认分隔符为制表符,如你的文件是逗号/空格可修改Delimiter参数
        LoadTxt = Csv.Document([Content], [Delimiter="#(tab)", Encoding=65001, QuoteStyle=QuoteStyle.None]),
        // 转置表格:原第一列(探针名)变为表头行,原第二列(数值)变为数据行
        Transposed = Table.Transpose(LoadTxt),
        // 提升第一行作为表头
        PromotedHeaders = Table.PromoteHeaders(Transposed, [PromoteAllScalars=true])
    in
        PromotedHeaders),
    // 合并所有文件的处理结果
    #"Combine Results" = Table.ExpandTableColumn(#"Process Each File", "FileData", Table.ColumnNames(#"Process Each File"{0}[FileData])),
    // 可选:将文件名作为第一列,方便区分每行数据来源
    #"Reordered Columns" = Table.ReorderColumns(#"Combine Results",{"Name"} & List.RemoveItems(Table.ColumnNames(#"Combine Results"), {"Name"}))
in
    #"Reordered Columns"

注意事项

  • 如果你的TXT文件分隔符不是制表符,修改Csv.Document的Delimiter参数即可:逗号填",",空格填" "
  • 如果文件编码不是UTF-8,修改Encoding参数:GBK编码填936,ANSI编码填1252
  • 运行完成后可直接通过Power Query界面导出为CSV文件

内容的提问来源于stack exchange,提问作者Naja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 20:36:03