通过Power Query在Excel中的Smartsheet数据

时间:2014-12-22 13:02:19

标签: json excel powerquery smartsheet-api

Smartsheet的API输出将行和列作为单独的对象返回,这些对象彼此独立。 这会导致列的单独记录(字段名称列表)和行的另一组记录(具有来自各个字段的单个值字段的记录)

有没有办法返回单个JSON列表(行和列会产生一个记录列表)?

这是我在查询编辑器中使用的代码,它返回单独的行和列

= Web.Contents(
    "https://api.smartsheet.com/1.1/sheet/[SHEET_ID]",
    [
        Headers = 
        [
            #"Authorization" = "Bearer YOUR_API_TOKEN"
        ]
    ]
)

1 个答案:

答案 0 :(得分:0)

我使用他们网站上的示例数据来提出这组转换:

let
    Source = Json.Document(File.Contents("D:\testdata\foo.json")),
    ColumnIds = List.Transform(Source[columns], each Text.From([id])),
    ColumnNames = List.Transform(Source[columns], each [title]),
    Table = Table.FromList(Source[rows], Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    Expanded = Table.ExpandRecordColumn(Table, "Column1", {"rowNumber", "cells"}, {"rowNumber", "cells"}),
    Mapped = Table.TransformColumns(Expanded, {"cells",
        each Record.Combine(List.Transform(_, each Record.AddField([], Text.From([columnId]), [value])))}),
    Result = Table.ExpandRecordColumn(Mapped, "cells", ColumnIds, ColumnNames)
in
    Result