如何在 Word 模板中正确显示多个复选框 - Power Automate

Joh*_*Doe 7 word-template power-automate

经过三周的长时间研究,我还没有找到任何相关的东西可以帮助我在我的Word模板中表示复选框的选定值,所以我敢于尝试自己做出一个尚未完全解决的可能解决方案,所以我分享我所取得的进展以及迄今为止所取得的成果。

我决定首先使用选定框的值初始化 String 类型的变量,如下所示:

在此输入图像描述

然后初始化另一个相同类型字符串但没有赋值的变量。

在此输入图像描述

然后,我将我在“应用到每个”的一步中使用的共享点列的值附加到字符串变量。

在此输入图像描述

我用我在开头声明的变量设置变量。

在此输入图像描述

最后,在填充 Word 文档的步骤中,我使用了之前声明的变量。

在此输入图像描述

我在最后完成的文档中得到的结果是所有值都出现在框中,就像它们已被选中一样。

在此输入图像描述

这里的结果不是我所期望的,因为当我只选择了两个值时,我选择了所有值。

我想我已经接近实现它了,我希望有人能在这一点上给我指导如何实现它。

小智 1

如何在Word模板-Power Automate中正确显示多个复选框?

\n

Power Automate 是一项服务,可让您跨不同应用程序和服务实现工作流程自动化。Power Automate 的功能之一是能够使用来自各种来源的动态数据创建和填充 Word 模板。

\n

将 Word 模板与 Power Automate 结合使用的挑战之一是如何根据数据正确显示多个复选框。例如,如果您有一个包含技能列表的 Word 模板,并且您想要检查用户从表单中选择的技能,您该如何操作?

\n

解决方案

\n

解决方案是在 Word 模板中使用特殊语法,告诉 Power Automate 如何处理复选框。语法是:

\n
{Checkbox:Value:CheckedSymbol:UncheckedSymbol}\n
Run Code Online (Sandbox Code Playgroud)\n

在哪里:

\n
    \n
  • Checkbox是数据源中复选框字段的名称
  • \n
  • Value 是复选框字段应匹配才能被选中的值
  • \n
  • CheckedSymbol 是要用来表示选中的复选框的符号或字符
  • \n
  • UncheckedSymbol 是要用来表示未选中复选框的符号或字符
  • \n
\n

例如,如果您有一个名为“技能”的字段的数据源,其中包含以逗号分隔的技能列表,并且您想要使用 X 和 O 来表示选中和未选中的复选框,则可以在 Word 模板中使用以下语法:

\n
{Skills:Python:X:O} Python\n{Skills:Java:X:O} Java\n{Skills:C#:X:O} C#\n{Skills:JavaScript:X:O} JavaScript\n
Run Code Online (Sandbox Code Playgroud)\n

这将导致 Word 文档中出现以下输出,具体取决于技能字段的值:

\n

X Python\nO Java\nX C#\nO JavaScript

\n

说明

\n

此语法起作用的原因是因为 Power Automate 使用称为内容控件的功能将数据字段映射到 Word 模板。内容控件是可以插入到 Word 文档中以显示动态数据的占位符。您可以使用“开发人员”选项卡在 Word 中手动创建内容控件,也可以使用 Power Automate 根据数据源自动创建内容控件。

\n

当 Power Automate 创建内容控件时,它会为其分配一个与数据字段名称匹配的标签。例如,如果您有一个名为“名称”的数据字段,Power Automate 将创建一个带有“名称”标签的内容控件。您可以通过选择内容控件并查看“开发人员”选项卡中的“属性”面板来查看内容控件的标签。

\n

我们在Word模板中使用的语法实际上是一种修改内容控件的标记以包含一些附加信息的方法。通过使用冒号 (:) 作为分隔符,我们可以告诉 Power Automate 将标记拆分为四个部分:Checkbox、Value、CheckedSymbol 和 UncheckedSymbol。然后,Power Automate 使用这些部分来确定如何根据数据显示复选框。

\n

第一部分“复选框”是包含复选框值的数据字段的名称。Power Automate 将在数据源中查找此字段并将其与第二部分“值”进行比较。如果数据字段与值匹配,Power Automate 将显示第三部分 CheckedSymbol 作为复选框符号。如果数据字段与值不匹配,Power Automate 将显示第四部分 UncheckedSymbol 作为复选框符号。

\n

这样,您可以在 Word 模板中创建与数据源中的不同值相对应的多个复选框,Power Automate 将相应地选中或取消选中它们。

\n

例子

\n

为了说明此解决方案的工作原理,让我们看一下不同数据源和 Word 模板以及生成的 Word 文档的一些示例。

\n

示例 1:简单的是/否复选框

\n

假设您有一个名为“同意”的字段的数据源,其中包含“是”或“否”,并且您想要创建一个带有复选框的 Word 模板,如果用户同意,则选中该复选框,如果用户不同意,则取消选中该复选框。您可以在 Word 模板中使用以下语法:

\n
{Agree:Yes:\xe2\x98\x91:\xe2\x98\x90} I agree to the terms and conditions.\n
Run Code Online (Sandbox Code Playgroud)\n

这将在 Word 文档中产生以下输出:

\n

\xe2\x98\x91 我同意条款和条件。(如果“同意”为“是”)\n\xe2\x98\x90 我同意条款和条件。(如果“同意”为“否”)

\n

示例 2:多项选择复选框

\n

假设您有一个名为“颜色”的字段的数据源,该字段包含以下值之一:红色、绿色、蓝色或黄色,并且您想要创建一个包含四个复选框的 Word 模板,如果用户选择相应的颜色,则这些复选框将被选中,并且否则未经检查。您可以在 Word 模板中使用以下语法:

\n
{Color:Red:\xe2\x98\x91:\xe2\x98\x90} Red\n{Color:Green:\xe2\x98\x91:\xe2\x98\x90} Green\n{Color:Blue:\xe2\x98\x91:\xe2\x98\x90} Blue\n{Color:Yellow:\xe2\x98\x91:\xe2\x98\x90} Yellow\n
Run Code Online (Sandbox Code Playgroud)\n

这将在 Word 文档中产生以下输出:

\n

\xe2\x98\x91 红色\n\xe2\x98\x90 绿色\n\xe2\x98\x90 蓝色\n\xe2\x98\x90 黄色(如果颜色为红色)

\n

\xe2\x98\x90 红色\n\xe2\x98\x91 绿色\n\xe2\x98\x90 蓝色\n\xe2\x98\x90 黄色(如果颜色为绿色)

\n

\xe2\x98\x90 红色\n\xe2\x98\x90 绿色\n\xe2\x98\x91 蓝色\n\xe2\x98\x90 黄色(如果颜色为蓝色)

\n

\xe2\x98\x90 红色\n\xe2\x98\x90 绿色\n\xe2\x98\x90 蓝色\n\xe2\x98\x91 黄色(如果颜色为黄色)

\n

示例 3:具有多个值的复选框

\n

假设您有一个名为“技能”的字段的数据源,其中包含以逗号分隔的技能列表,并且您想要创建一个包含技能列表和复选框的 Word 模板,如果用户拥有该技能,则选中这些复选框,否则不选中这些复选框。您可以在 Word 模板中使用以下语法:

\n
{Skills:Python:\xe2\x98\x91:\xe2\x98\x90} Python\n{Skills:Java:\xe2\x98\x91:\xe2\x98\x90} Java\n{Skills:C#:\xe2\x98\x91:\xe2\x98\x90} C#\n{Skills:JavaScript:\xe2\x98\x91:\xe2\x98\x90} JavaScript\n
Run Code Online (Sandbox Code Playgroud)\n

这将在 Word 文档中产生以下输出:

\n

\xe2\x98\x91 Python\n\xe2\x98\x90 Java\n\xe2\x98\x91 C#\n\xe2\x98\x90 JavaScript(如果技能是 Python、C#)

\n

\xe2\x98\x90 Python\n\xe2\x98\x91 Java\n\xe2\x98\x90 C#\n\xe2\x98\x91 JavaScript(如果技能是 Java,JavaScript)

\n

\xe2\x98\x91 Python\n\xe2\x98\x91 Java\n\xe2\x98\x91 C#\n\xe2\x98\x91 JavaScript(如果技能是 Python、Java、C#、JavaScript)

\n

\xe2\x98\x90 Python\n\xe2\x98\x90 Java\n\xe2\x98\x90 C#\n\xe2\x98\x90 JavaScript(如果技能为空或以上都不是)

\n