Json 到 excel 使用电源查询
Json to excel using power query
我想使用 power query
选项 from web
将网站上的一些 json
转换为 excel
。但是我运行陷入了一个小问题。我的 json
看起来像这样:
[
{
"id" : 1,
"visitors" : 26,
"some_number" : 1,
"value" : 3500
},
{
"id" : 2,
"visitors" : 21,
"some_number" : 5,
"value" : 2000
}
]
但是当我使用 from web
我得到这个:
我可以向下钻取记录,将其转换为 table,t运行spose 并将第一行用作 header,但随后我只得到一行。我怎样才能将我的所有数据都添加到 table 而不仅仅是一行?
您需要先将列表转换为 table,然后您可以展开记录列并从那里继续。如果运气不好,那么你可以看看我最近为类似问题创建的this video。
首先,我会使用“列表工具”/“转换”菜单(应该会自动选中)并单击 至 Table 按钮。这将为您提供一个包含 2 行的 single-column table。然后我会单击小的展开按钮 - 它会出现在列标题中,就在 "Column1" 的右侧。取消选中 Use original column name ... 选项,您将获得 4 列 2 行的 table。
这是我生成的完整脚本:
let
Source = Json.Document(File.Contents("C:\Users\Mike.Honey\Downloads\json2.json")),
#"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column2" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"id", "visitors", "some_number", "value"}, {"id", "visitors", "some_number", "value"})
in
#"Expanded Column2"
Table.FromRecords()
function适用于该样本数据:
let
Source = Json.Document("[{""id"": 1, ""visitors"": 26, ""some_number"": 1, ""value"": 3500}, {""id"": 2, ""visitors"": 21, ""some_number"": 5, ""value"": 2000}]"),
AsTable = Table.FromRecords(Source)
in
AsTable
我有 Excel Professional 2016,但我没有看到 JSON 选项,但我可以通过“其他来源”查询选项找到它。以下是将 JSON 数组转换为 table.
的所有步骤
- 数据 > 新查询 > 来自其他来源 > 来自 Web
- 输入URL:“file:///C:/temp/document.json”,(或http web url)按确定
- 一行显示为“项目”属性 和列表类型,
- 点击“列表”,显示列表中的项目
- 点击左上角的“到Table”按钮,下一步点击确定
对话框
- 显示一个 table,其中有一列名为“Column1”
- 按列名称旁边的按钮(有左右箭头
在上面)
- 行对象中的属性被选中
- 取消选中“User Original column name as prefix”,按“OK”
- 点击左上角的“关闭并加载”按钮
我的文件看起来像
{
"items": [{
"code": "1",
"name": "first"
}, {
"code": "2",
"name": "second"
}, {
"code": "3",
"name": "third"
},
]
}
我想使用 power query
选项 from web
将网站上的一些 json
转换为 excel
。但是我运行陷入了一个小问题。我的 json
看起来像这样:
[
{
"id" : 1,
"visitors" : 26,
"some_number" : 1,
"value" : 3500
},
{
"id" : 2,
"visitors" : 21,
"some_number" : 5,
"value" : 2000
}
]
但是当我使用 from web
我得到这个:
我可以向下钻取记录,将其转换为 table,t运行spose 并将第一行用作 header,但随后我只得到一行。我怎样才能将我的所有数据都添加到 table 而不仅仅是一行?
您需要先将列表转换为 table,然后您可以展开记录列并从那里继续。如果运气不好,那么你可以看看我最近为类似问题创建的this video。
首先,我会使用“列表工具”/“转换”菜单(应该会自动选中)并单击 至 Table 按钮。这将为您提供一个包含 2 行的 single-column table。然后我会单击小的展开按钮 - 它会出现在列标题中,就在 "Column1" 的右侧。取消选中 Use original column name ... 选项,您将获得 4 列 2 行的 table。
这是我生成的完整脚本:
let
Source = Json.Document(File.Contents("C:\Users\Mike.Honey\Downloads\json2.json")),
#"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column2" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"id", "visitors", "some_number", "value"}, {"id", "visitors", "some_number", "value"})
in
#"Expanded Column2"
Table.FromRecords()
function适用于该样本数据:
let
Source = Json.Document("[{""id"": 1, ""visitors"": 26, ""some_number"": 1, ""value"": 3500}, {""id"": 2, ""visitors"": 21, ""some_number"": 5, ""value"": 2000}]"),
AsTable = Table.FromRecords(Source)
in
AsTable
我有 Excel Professional 2016,但我没有看到 JSON 选项,但我可以通过“其他来源”查询选项找到它。以下是将 JSON 数组转换为 table.
的所有步骤- 数据 > 新查询 > 来自其他来源 > 来自 Web
- 输入URL:“file:///C:/temp/document.json”,(或http web url)按确定
- 一行显示为“项目”属性 和列表类型,
- 点击“列表”,显示列表中的项目
- 点击左上角的“到Table”按钮,下一步点击确定 对话框
- 显示一个 table,其中有一列名为“Column1”
- 按列名称旁边的按钮(有左右箭头 在上面)
- 行对象中的属性被选中
- 取消选中“User Original column name as prefix”,按“OK”
- 点击左上角的“关闭并加载”按钮
我的文件看起来像
{
"items": [{
"code": "1",
"name": "first"
}, {
"code": "2",
"name": "second"
}, {
"code": "3",
"name": "third"
},
]
}