API分页强制Odata削减结果

时间:2019-03-22 14:43:28

标签: excel api odata powerquery worksheet

所以我从API的页面大小是500,所以我的查询只会给我500个结果。

问题是,结果略大于500,我很想找到一个有效的解决方案,如何在一个工作表中显示所有结果。
我的代码看起来像这样(替换了网址):

let
    GetData = (page as number) as table =>
    let
    Source = OData.Feed("https://api.myDummy.com/odata/v3/ReportResults?page=" & Number.ToText(page)),
    #"Replaced Errors" = Table.ReplaceErrorValues(Source, {{"AirPress", null}}),
    #"Filtered Rows" = Table.SelectRows(#"Replaced Errors", each [Name] = "Till"),
    #"Filtered Rows1" = Table.SelectRows(#"Filtered Rows", each Date.IsInPreviousYear([TimeStampUtc])),
    RemoveBottom = Table.RemoveLastN(#"Filtered Rows1" ,3)

in
    RemoveBottom,
    PageRange = {1..2},
    Source = List.Transform(PageRange, each try {_, GetData(_)} otherwise null),
    First = List.FirstN(Source, each _ <> null),
    Table = Table.FromRows(First, {"Page", "Column1"}),
    Expanded = Table.ExpandTableColumn(Table, "Column1", {"Id", "ReportId","TimeStampUtc", "TimeStampLocal"}),
    #"Sorted Rows" = Table.Sort(Expanded,{{"TimeStampUtc", Order.Ascending}})
in
        #"Sorted Rows"

我的结果工作表显示994行: enter image description here

但是您可以看到它两次加载结果,一次加载为第1页,一次加载为第2页。 我是新来的,并试图找出解决方法,自几天以来。我想我已经解决了,但是我会很感激我得到的每一个提示/帮助。

我希望另一种解决方案是在第二侧加载结果并跳过前500行,但是随着数据的增长,我想这将是一个大麻烦,并且我需要每隔几个月添加一次查询...

0 个答案:

没有答案