Power Query M语言:不解压直接汇总 Zip 文件中的 CSV 数据

使用 Power Query 的 M 语言,可以实现直接从 Zip 文件中读取多个 CSV 文件,并将其汇总,无需解压文件,简化数据处理流程。

实现步骤

  1. 在 Power Query 中选择“从其他源” -> “空白查询”。
  2. 在弹出的对话框中,输入以下代码:
let
    //定义zip文件路径
    zipPath = 'C:\example.zip',
    //建立Zip二进制文件连接
    binaryContent = Binary.Buffer(File.Contents(zipPath)),
    archive = Zip.Contents(binaryContent),
    //筛选csv文件
    csvFiles = Table.SelectRows(archive, each Text.EndsWith([Name], '.csv')),
    //声明一个空表格
    resultTable = #table(),
    //循环处理每个csv文件
    loopCsv = List.ForEach(csvFiles[Content], each
        let
            //转换csv文件的二进制内容为文本格式
            csvText = Text.FromBinary(_),
            //将csv文本转换为表格
            csvTable = Csv.Document(csvText),
            //将csv表格添加到结果表格中
            updatedResultTable = Table.Combine({resultTable, csvTable})
        in
            resultTable = updatedResultTable
    )
in
    resultTable
  1. 将代码中的 'C:\example.zip' 修改为你要使用的 zip 文件的路径。
  2. 点击“关闭和加载”按钮,将数据加载到 Power Query 中。
  3. 在 Power Query 中进行必要的数据清洗和转换,然后将数据导出或者重新加载到 Excel 中。

代码说明

  • zipPath:定义 zip 文件的路径。
  • binaryContent:读取 zip 文件的二进制内容。
  • archive:解析 zip 文件内容。
  • csvFiles:筛选出 zip 文件中所有以 .csv 结尾的文件。
  • resultTable:声明一个空表格,用于存储最终的汇总结果。
  • loopCsv:循环遍历每个 csv 文件,将其转换为表格并添加到 resultTable 中。

注意事项

  • 代码中的 zipPath 需要替换为你的实际 zip 文件路径。
  • 确保你的 zip 文件中包含多个 CSV 文件。
  • 如果你需要对最终结果进行进一步的处理,可以在代码中添加额外的操作。

希望这个方法对您有所帮助!

Power Query M语言:不解压直接汇总 Zip 文件中的 CSV 数据

原文地址: https://www.cveoy.top/t/topic/lhTr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录