如何将JSON字符串数组转换为Excel带表头的列?
问题
我有如下JSON数据:
{ "data":[ ["File1","loaded","somedate"], ["File2","skipped","somedate"], ["File3","cancelled","somedate"], ["File4","loaded","somedate"], ["File5","loaded","somedate"], ["File6","cancelled","somedate"], ["File7","loaded","somedate"] ] }
我希望将其导入Excel工作表,使字符串数组中的每个元素作为带表头(FileName、Status、Date)的列。
我尝试通过Excel的Power Query导入JSON文件,初始显示为:
data List
右键点击list并选择Into Table,生成如下列表:
Name Value ---------------- data List
随后点击Value表头的双向箭头按钮,选择Expand to New Rows,生成:
Name Value ------------------------ data List data List data List data List data List
接着再次点击Value列的箭头选择Expand to Rows,结果将所有字符串数组元素拆分为行:
Name Value --------------------------- data File1 data Loaded data somedate data File2 data Skipped data somedate ..... ...
这与我的预期完全不符,我需要的结果是:
FileName Status Date --------------------------------------------- File1 Loaded somedate File2 Skipped somedate ..... ... ..
请问该如何实现?
解决步骤
- 导入JSON文件后,看到初始的
data List,右键点击List选择Into Table,得到带Name和Value的表。 - 不要选择Expand to New Rows,直接点击Value列的双向箭头按钮,在弹出窗口里选Expand to Columns。
- 此时会生成3列默认名为Column1、Column2、Column3的表,选中这三列右键选择Rename,分别改为
FileName、Status、Date。 - 点击Close & Load,即可得到目标结构化表格。
如果习惯用M代码直接操作,可替换Power Query自动生成的代码:
let Source = Json.Document(File.Contents("你的JSON文件实际路径")), data = Source[data], #"Converted to Table" = Table.FromList(data, Splitter.SplitByNothing(), null, null, ExtraValues.Error), #"Expanded Column1" = Table.ExpandListColumn(#"Converted to Table", "Column1"), #"Split Column by Position" = Table.SplitColumn(#"Expanded Column1", "Column1", Splitter.SplitTextByRepeatedLengths(1), {"FileName", "Status", "Date"}) in #"Split Column by Position"
注意替换代码中的文件路径为实际路径。
内容的提问来源于stack exchange,提问作者Sandeep Thomas
相关产品推荐
相关产品推荐

