如何从导航器窗格中获取表格并合并

How to get Tables from Navigator Pane and Combine

这是在 Alexis 的指导下更正后的代码。我的 PDF returns 每个输出页有两 table(和 1 页 Table)。 Table001 被扔掉了。我只需要偶数 Tables 所以我使用 List.Select 删除页面 Table 和 List.Alternate 跳过奇数 tables.

let
    Source = Pdf.Tables(File.Contents("State_Fico.pdf"), [Implementation="1.3"]),
    TableNames = List.Alternate(List.Select(Table.Column(Source, "Id"),each Text.Contains(_,"Table")),1,1),
    TableList = List.Transform(TableNames, each Source{[Id=_]}[Data]),
    CombineTables = Table.Combine(TableList)
in
    CombineTables

无论 pdf 有多少页,我都可以生成 1 table。

虽然这并不能真正回答您标题中的问题,但我认为最好的方法是完全不使用 Expression.Evaluate,而是使用列表转换( s).

例如,如果要附加 Table002Table004,可以在表列表中使用 Table.Combine{Table002, Table004}

代码可能如下所示:

let
    Source = Pdf.Tables(File.Contents("State_Fico.pdf"), [Implementation="1.3"]),
    #"Transposed Table" = Table.Transpose(Source),
    #"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Page001", type any}, {"Table001", type any}, {"Page002", type any}, {"Table002", type any}, {"Table003", type any}, {"Table004", type any}}),
    ColumnNames = Table.ColumnNames(#"Changed Type"),
    TableNames = List.Alternate(List.Select(ColumnNames, each Text.Contains(_ ,"Table")),1,1),
    //--New Steps Below--//
    TableList = List.Transform(TableNames, each Source{[ID=_]}[Data]),
    CombineTables = Table.Combine(TableList)
in
    CombineTables