Power Automate: 使用SharePoint列表填充Word模板

在许多组织中,创建包含最新数据的标准化文档既费时又容易出错。通过利用 Power Automate 从 SharePoint 列表中直接提取信息并将其注入到 Word 模板中,您可以省去手动复制粘贴的步骤,确保一致性,并加速文档生成流程。本文将演示如何构建一个流程,该流程检索列表项,将字段映射到 Word 模板中的占位符,并输出一份完整格式的文档------无缝衔接 SharePoint 数据与专业的 Word 报告。

前提:

为了演示的目的, 我仅在word模板里添加了一个文本类和一个图片类.

  1. Name=Title, Type= Plain Text Content Control, Title=mytitle.
  2. Name=Image, Type=Picture Content Control, Title=mypic.

在SharePoint, 如果列表包含多个图片列, 则需要多一层的循环来实现. 在此我只添加了一个图片列.

基本上有两种主要的方法来把列表的内容写入word模板.

  1. 使用 'Send an HTTP request to SharePoint'.
  2. 使用 'Get Item'.

我仅在此文中探索第一种.

1. 添加一个 'Manually trigger a flow'.

也可以添加别的触发器,比如当新纪录添加后触发.

2. 初始化变量来保存站点地址 (可选)

初始化变量来保存站点或者直接从列表中选择.

3. 添加 'Send an HTTP request to SharePoint'.

Site Address=mySite variable, use your own site.

Method: Get

Uri:

bash 复制代码
_api/web/lists/getbytitle('test/t')/items?$select=ID,Title,AttachmentFiles&$expand=AttachmentFiles

拆解下这个Uri:

_api/web/lists/getbytitle('test/t')/items
  • 这是针对 SharePoint REST 端点.
  • getbytitle('test/t') 意思是 "找到标题为test/t的列表."
  • /items 意思是 "返回列表中的所有项"
$select=ID,Title,AttachmentFiles
  • 默认情况下SharePoint会返回列表的所有列.
  • 使用 $select 你可以限制响应只返回你需要的列---此例为:
    • ID (列表项的唯一标识符),
    • Title (该列中存储的文本),
    • AttachmentFiles (指向每项的附件导航属性).
$expand=AttachmentFiles
  • 在SharePoint's REST API中, 像 AttachmentFiles 这样的字段不是简单的文本或数字 ,它们是导航属性(collection类).

  • 如果只使用 <math xmlns="http://www.w3.org/1998/Math/MathML"> s e l e c t = A t t a c h m e n t F i l e s ∗ 而不加 ∗ select=AttachmentFiles* 而不加 * </math>select=AttachmentFiles∗而不加∗expand, 你只会得到URI的引用或者附件的原数据而非文件的实际信息.

  • 添加 $expand=AttachmentFiles, 是告诉SharePoint:

    "当返回每个列表项时,获取完整的 AttachmentFiles 集合,这样我就可以在同一个 JSON 响应中看到文件名、URL 等."

4. 添加 'Apply to Each'

点击 fx , 添加公式并点击Add.

less 复制代码
body('Send_an_HTTP_request_to_SharePoint')?['d']?['results']

5. 添加 'Get file content using path'

这主要是针对Image列。

Site Address: mySite variable.

File Path:

ruby 复制代码
replace(
  first(items('Apply_to_each')?['AttachmentFiles']?['results'])?['ServerRelativeUrl'],
  '/sites/MySite',''
        )

简单说明一下:

获取当前项的第一个附件 (因为我只添加了一个image列),

读取完整的 ServerRelativeUrl (其包含 /sites/MySite ), 并且删除 /sites/MySite 前缀, 只保留相对路径,比如: /Lists/MyList/Attachments/123/Plan.docx.

如图:

6. 添加 'Populate a Microsoft Word template'.

Location: OneDrive for Business , 你也可以使用SharePoint的library.

Document Library: OneDrive

File: /PolulatedDocument.docx. 你可以手动选择word模板,也可以使用变量.

Mytitle: items('Apply_to_each')?['Title']. 点击 fx, 填写公式并点击Add.

Mypic: body('Get_file_content_using_path'). 点击 ⚡ 并选择 (如下图).

注:此处是我自己的模板.

7. 添加 'Create file'.

Site: mySite from the variable.

Folder Path: /Shared Documents. 我使用的是默认的文档集,我的站点:'MySite'.

File Name: {items('Apply_to_each')?['ID']}.docx. 我使用的是列表项的ID来作为文件名. 也可以使用时间戳或别的值(人员).

File Content: body('Populate_a_Microsoft_Word_template'), 点击 ⚡。

如下图:

你可以添加更多的步骤,比如把每个文档作为附件发送给不同的收件人.

最后,使用 Power Automate 自动从 SharePoint 列表填充 Word 模板不仅可以节省时间,还能确保您的文档始终使用最新数据,从而减少错误。设置完成后,该流程无需人工干预,让您专注于更具战略性的工作。不妨在下一个项目中尝试一下,简化文档生成流程,保持团队协作。

相关推荐
feasibility.8 小时前
在OpenCode使用skills搭建基于LLM的dify工作流
人工智能·低代码·docker·ollama·skills·opencode·智能体/工作流
IT研究所14 小时前
信创浪潮下 ITSM 的价值重构与实践赋能
大数据·运维·人工智能·安全·低代码·重构·自动化
希艾席帝恩1 天前
智慧城市建设中,数字孪生的价值在哪里?
人工智能·低代码·私有化部署·数字孪生·数字化转型
小W与影刀RPA1 天前
【影刀 RPA】 :文档敏感词批量替换,省时省力又高效
人工智能·python·低代码·自动化·rpa·影刀rpa
esmap2 天前
技术解构:ESMAP AI数字孪生赋能传统行业转型的全链路技术方案
人工智能·低代码·ai·架构·编辑器·智慧城市
小W与影刀RPA2 天前
【影刀RPA】:智能过滤敏感词,高效输出表格
大数据·人工智能·python·低代码·自动化·rpa·影刀rpa
葡萄城技术团队2 天前
低代码技术如何重构钣金工厂的数字化生产链路
低代码·重构
低代码布道师2 天前
教培管家第14讲:家长端——打造合规且顺畅的登录门户
低代码·小程序·云开发
中间件XL3 天前
接口(集成)平台设计(一)-服务,接口,数据集和数据源
低代码·集成平台·接口平台
摩尔元数4 天前
2026年汽车仪表工厂选MES,厂商推荐
低代码·汽车·制造·mes