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类).

  • 如果只使用 s e l e c t = A t t a c h m e n t F i l e s ∗ 而不加 ∗ select=AttachmentFiles* 而不加 * 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 模板不仅可以节省时间,还能确保您的文档始终使用最新数据,从而减少错误。设置完成后,该流程无需人工干预,让您专注于更具战略性的工作。不妨在下一个项目中尝试一下,简化文档生成流程,保持团队协作。

相关推荐
canonical-entropy7 小时前
下一代低代码渲染框架 nop-chaos-flux 的设计原则
低代码·ddd·函数式编程·可逆计算·nop平台
SL-staff9 小时前
(二十一)「JVS-Rules规则引擎 V2.5」— 决策流的在线调试
低代码·规则引擎·jvs-rules·jvs·模拟测试
SL-staff12 小时前
企业文档系统私有化部署方案技术对比:JVS企业文档 vs 语雀 vs 飞书
低代码·私有化部署·飞书·jvs·企业文档·jvs企业文档·生态集成
ZGi.ai1 天前
ZGI工作流引擎:把AI应用的执行过程从黑盒变成流程图
人工智能·低代码·流程图·ai应用·ai工作流·zgi
快乐非自愿2 天前
AI低代码破局:数字化降本增效的核心逻辑与商业落地
人工智能·低代码
SL-staff2 天前
(十九)「JVS-Rules规则引擎 V2.5」— 简单评分卡节点
人工智能·低代码·规则引擎·jvs-rules·决策流·信用评分卡·简单评分卡节点
工业甲酰苯胺3 天前
AI×JNPF实战:3个案例拆解企业数智转型核心逻辑
大数据·数据库·人工智能·低代码
SL_staff3 天前
JVS低代码完整源码解析:如何二次开发自己的表单组件?
java·低代码·vuex
Jeking2175 天前
低代码平台 Docker一键部署实战:工程项目立项&竣工验收一体化管理系统
低代码·流程引擎·表单设计·流程设计·表单引擎·unione clouod
液态不合群5 天前
卡死在生产流程?AI破解制造业数字化落地顽疾
网络·人工智能·低代码·重构