You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerQuery导入XML数据:将嵌套表列合并至单个单元格

PowerQuery将XML导入后的Table列转为字符串数组单元格

导入XML数据后,表中guid和toExpand两列是Table类型,需求是把这两个Table列转换成包含字符串数组的单元格(格式如[str, str,..]),而非展开成多行记录。

修改后的完整查询代码

let
    Source = Xml.Tables(Web.Contents("https://patentscope.wipo.int/search/en/92ec30a9-24ed-4383-b1aa-7b76748f6266/rss.xml")),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Attribute:version", Int64.Type}}),
    channel = #"Changed Type"{0}[channel],
    #"Changed Type1" = Table.TransformColumnTypes(channel,{{"title", type text}, {"link", type text}, {"description", type text}, {"language", type text}, {"pubDate", type datetime}, {"lastBuildDate", type datetime}}),
    item = #"Changed Type1"{0}[item],
    #"Changed Type2" = Table.TransformColumnTypes(item,{{"title", type text}, {"link", type text}, {"description", type text}, {"pubDate", type datetime}}),
    // 将guid列的Table转为字符串数组
    #"Transform guid to Array" = Table.AddColumn(#"Changed Type2", "guid_Array", each List.Transform([guid], (t) => Table.Column(t, "text")){0}),
    // 将toExpand列的Table转为字符串数组
    #"Transform toExpand to Array" = Table.AddColumn(#"Transform guid to Array", "toExpand_Array", each List.Transform([toExpand], (t) => Table.Column(t, "text")){0}),
    // 删除原Table类型的列(可选,根据需求保留)
    #"Remove Original Table Columns" = Table.RemoveColumns(#"Transform toExpand to Array", {"guid", "toExpand"})
in
    #"Remove Original Table Columns"

关键逻辑说明

  1. 提取Table中的字符串列表:
    List.Transform([guid], (t) => Table.Column(t, "text")) 会遍历单元格内的Table,提取其中的text字段(XML解析后的Table通常用text存储实际内容,若你的Table字段名不同,替换成对应名称即可),最终通过{0}取出内层的字符串数组。
  2. 替换或保留原列:
    代码中通过新增列存储数组,你也可以直接用Table.ReplaceValue覆盖原guid/toExpand列;最后删除原Table列是可选操作,按需保留即可。

内容的提问来源于stack exchange,提问作者seaxe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 18:40:32