如何用Excel PowerQuery加载JSON完整490行数据集?当前仅返回100行
解决Excel PowerQuery加载JSON仅显示100行的问题
这是因为你的JSON接口采用了分页机制,默认只返回第1页的100条数据,TotalRecordCount是总记录数,需要通过PowerQuery的循环逻辑批量获取所有页的数据,具体步骤如下:
步骤1:确认分页关键信息
按你已有的流程导入JSON后,确认三个核心信息:
- 每页返回条数:这里是100
- 总记录数:即
TotalRecordCount对应的490 - 接口分页参数:通常是
page(页码)或offset(偏移量),需根据接口实际规则调整
步骤2:修改PowerQuery代码批量拉取数据
- 进入PowerQuery编辑器,点击顶部的【高级编辑器】
- 替换原有代码为以下逻辑(根据你的实际接口替换占位符内容):
let PageSize = 100, // 每页固定条数 // 先获取初始页数据,提取总记录数 InitialSource = Json.Document(Web.Contents("你的JSON接口地址")), TotalRecords = InitialSource[TotalRecordCount], // 生成需要请求的页码列表 PageNumbers = List.Generate( () => 1, each _ <= Number.RoundUp(TotalRecords / PageSize), each _ + 1 ), // 定义函数:根据页码获取单页数据 GetPageData = (pageNum as number) => let // 拼接带分页参数的请求地址,若接口用offset则改为?offset=(pageNum-1)*PageSize&limit=PageSize RequestUrl = "你的JSON接口地址?page=" & Text.From(pageNum) & "&pageSize=" & Text.From(PageSize), PageSource = Json.Document(Web.Contents(RequestUrl)), PageData = PageSource[你的列表字段名] // 替换为JSON中存储数据的列表字段名,比如"Data" in PageData, // 获取所有页数据并合并为一个列表 AllPagesData = List.Transform(PageNumbers, GetPageData), CombinedData = List.Combine(AllPagesData), // 转换为表格并展开字段 ToTable = Table.FromList(CombinedData, Splitter.SplitByNothing()), ExpandColumns = Table.ExpandRecordColumn(ToTable, "Column1", {"字段1", "字段2", "字段3"}, {"字段1", "字段2", "字段3"}) // 替换为你的实际字段名 in ExpandColumns
步骤3:验证并加载完整数据
运行代码后,查看PowerQuery中的表格行数,确认是490行后,点击【关闭并上载】即可将完整数据集加载到Excel中。
内容的提问来源于stack exchange,提问作者PeterX
相关产品推荐
相关产品推荐

