将表中的多个 csv 加载到 PowerQuery

时间:2021-03-12 13:07:09

标签: excel powerquery

我有一个带有表格的 Excel 表格,其中包含指向几个 CSV 文件的 URL 列表。

这些 CSV 都具有相同的结构,但包含各种不同的数据。

我想用 PowerQuery 函数加载这些 CSV,但我似乎在这里错过了一些东西,因为我尝试的两个选项都返回错误。

let
    #"CSVPaths" = Excel.CurrentWorkbook(){[Name="CSVPaths"]}[Content][Column1],
    #"FromCSVDocs" = Csv.Document(each #"CSVPaths",[Delimiter=";", Columns=3, Encoding=1252, QuoteStyle=QuoteStyle.None]),
    #"FromFileContents" = Files.Contents(each #"CSVPaths")
in
    #"FromFileContents"

我希望得到一个表格列表,我可以在之后对其进行转换和扩展。

1 个答案:

答案 0 :(得分:1)

我通过 List.Generate-loop 解决了这个问题:

    let
        #"CSVPaths" = Excel.CurrentWorkbook(){[Name="CSVPaths"]}[Content][Column1],
        #"PathCount" = List.Count(#"CSVPaths"),

        #"CSVList" = List.Generate
        (
            ()=>0,
            each _<#"PathCount",
            each _+1,
            each Table.PromoteHeaders
            (
                Csv.Document(File.Contents(#"CSVPaths"{_}),[Delimiter=";", Columns=2, Encoding=1252, QuoteStyle=QuoteStyle.None])
            )
        ),
        #"CSVTables" = Table.FromColumns({#"CSVList"},{"CSVTables"}),
        #"Expanded CSVTables" = Table.ExpandTableColumn(#"CSVTables", "CSVTables", {"Col1", "Col2"}, {"Col1", "Col2"})
    in
        #"Expanded CSVTables"