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

Excel Power Query获取SharePoint文档库时如何显示托管元数据

Excel Power Query获取SharePoint文档库时如何显示托管元数据

我太懂这种烦恼了——用Power Query拉SharePoint文档库的数据,结果那些托管元数据列全显示成[Record],点进去看全是陌生的字段和ID,完全不是SharePoint界面里那串友好的文本对吧?别慌,这个问题在Power Query里特别常见,我来给你拆解两种解决办法,不管你习惯用界面操作还是写M代码都能搞定。

先搞懂为什么会显示成[Record]

SharePoint的托管元数据本质是个复杂对象,里面存了术语的ID、语言版本、显示文本等一堆信息,Power Query拉取的时候会把整个对象当成「Record」类型,所以直接显示成[Record]——我们要做的就是从这个Record里把显示文本提取出来。

方法一:用Power Query界面可视化操作(零代码)

  • 打开Power Query编辑器,找到那个显示[Record]的列,点一下列标题右边的双向箭头按钮(就是用来扩展嵌套数据的那个小图标)
  • 在弹出的选项框里,别全选!只找包含显示文本的字段——通常是Label(通用显示标签),或者带语言代码的比如Term1033(对应英文)、Term2052(对应中文),勾选这个字段后点确定
  • 这时候列就会自动转换成SharePoint里显示的文本啦,要是扩展后列名变了,右键重命名回原来的列名就好

方法二:直接修改M代码(适合高效处理多列)

如果你习惯写代码,或者要批量处理多个托管元数据列,用Table.TransformColumns函数就很方便:
假设你的托管元数据列名叫部门分类,就在现有查询的合适位置插入这行代码:

= Table.TransformColumns(上一步的表名称, {{"部门分类", each [Label], type text}})
  • 简单说下逻辑:each [Label]就是告诉Power Query,把这个列里的每个Record,都提取它的Label字段值;type text是指定结果为文本类型
  • 要是你发现显示文本存在其他字段(比如Term2052),把[Label]换成对应的字段名就行

额外情况:处理允许多选的托管元数据

要是你的SharePoint列设置了允许多选,那Power Query里显示的会是[List]而不是[Record],这时候可以用下面的代码把多个值合并成逗号分隔的文本:

= Table.TransformColumns(上一步的表名称, {{"多选项分类", each Text.Combine(List.Transform(_, (x) => x[Label]), ", "), type text}})
  • 逻辑是:先遍历List里的每个Record,提取Label文本,再用逗号把所有值连起来,变成一串友好的字符串

备注:内容来源于stack exchange,提问作者Steven Suranie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 13:50:29