能否通过Power Automate从SharePoint列表取值自动创建快速链接?
前提准备
- 你的SharePoint列表需包含至少两个字段:
标题(存储链接显示名称)、链接地址(单行文本类型,填写目标URL),可选新增是否显示(是/否类型)用来过滤要展示的链接。 - 在目标SharePoint页面添加「快速链接」Web部件,完成初始配置(比如选好布局),后续流会基于这个Web部件的结构更新内容。
步骤1:创建Power Automate云流
选择触发器
根据需求选:
- 实时更新:选「当项目创建、修改或删除时」(针对你的链接列表)
- 定期同步:选「定期安排的触发器」(比如每天凌晨同步一次)
核心操作流程
获取列表有效数据
添加「获取项目」操作,选择你的站点和链接列表,在「筛选查询」里可添加条件(比如是否显示 eq true),只拉取需要展示的链接。转换数据格式(适配快速链接)
添加「选择」操作,把列表字段映射成快速链接Web部件需要的格式:- 映射键
title→ 选择列表的「标题」字段 - 映射键
url→ 选择列表的「链接地址」字段
- 映射键
获取目标页面的现有内容
添加「获取项目」操作,选择站点的「Site Pages」列表,在「筛选查询」里填FileLeafRef eq '你的页面名称.aspx'(比如FileLeafRef eq 'Home.aspx'),拿到页面的CanvasContent1字段(这是页面的结构化JSON内容)。替换快速链接Web部件数据
添加「Compose」操作,用表达式把转换后的链接数据替换到CanvasContent1的对应位置。示例表达式(假设快速链接Web部件的id是wp123,你可以从之前获取的CanvasContent1里找到):replace(body('获取项目_页面内容')?['value'][0]?['CanvasContent1'], '"id":"wp123","webPartData":{"properties":{"items":[]}', concat('"id":"wp123","webPartData":{"properties":{"items":', body('选择'), '}'))注:如果找不到Web部件的id,可以手动编辑页面后,用「获取项目」拉取页面内容,搜索
"title":"快速链接"附近的id值。更新页面内容
添加「发送HTTP请求到SharePoint」操作:- 站点地址:选目标站点
- 请求类型:
POST - 请求URI:
_api/web/lists/getbytitle('Site Pages')/items(<页面ID>),把<页面ID>换成从「获取项目_页面内容」里拿到的ID值 - 请求头:添加三个键值对
Content-Type:application/json;odata=verboseX-HTTP-Method:MERGEIF-MATCH:*
- 请求体:
{"CanvasContent1": @{outputs('Compose')}}
步骤2:测试与排错
- 手动在链接列表添加一条测试数据,触发流后刷新页面,查看快速链接是否更新。
- 若流报错,优先检查:
- 操作账号是否有页面编辑和列表读取权限
- JSON格式是否正确(可把Compose的输出复制到JSON校验工具里检查)
- 页面ID、Web部件ID是否匹配
内容的提问来源于stack exchange,提问作者allwin
相关产品推荐
相关产品推荐

