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



这是Alexis指导下的更正代码。我的PDF每个输出页返回两个表(和一个页表)。表001是废弃的。我只需要偶数的表,所以我使用列表。选择此选项可删除页表和列表。可选择跳过奇数表。

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有多少页。

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

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

代码可能是这样的:

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

最新更新