如何通过 UiPath 读取 excel sheet 并将单元格值放在不同的文本字段中?
How to read an excel sheet and put the cell value within different text fields through UiPath?
如何通过 UiPath 读取 excel sheet 并将单元格值放在不同的文本字段中?
我有一个excelsheet如下:
我已经阅读了 excel 的内容并稍后遍历内容我将内容存储在 Output Data Table
中,如下所示:
读取范围 - 输出:
- 数据Table:CV数据表
输出数据Table
- 数据Table:CV数据表
- 文本:opCV数据表
截图:
最后,我想在迭代中读取 text
opCVdatatable 并将它们写入文本字段。因此,在所需的 Input 文件中,我根据需要提到了 opCVdatatable
或 opCVdatatable+ "[k(enter)]"
。
截图:
但每当我调用 opCVdatatable
.
时,UiPath 似乎从 输出数据 Table 的开头开始
简而言之,每个所需的 Input 字段都被存储在 Output Data Table[= 中的所有数据迭代填充70=].
有人可以帮我吗?
我的第一个建议是使用 Workbook: Read range activity
从 Excel 读取数据,因为它更快,在后台工作,并且不需要在系统上安装 excel .
像这样开始你的序列(注意添加 headers 属性 未被选中):
您不需要使用 Output Data Table
,因为此 activity 输出包含所有行项目的字符串。您要做的是访问数据 table 中的项目并将每个项目作为字符串输出到 type into
中,例如 CVDatatable.Rows(0).Item(0).ToString
,如下所示:
您提到您想在 迭代 中阅读文本 opCVdatatable
并将它们写入文本字段。这有点复杂,但我会给你一个例子。您可以使用 For Each Row
activity 并遍历 CVDatatable
中的每一行,如果需要,设置 index
属性。见下文:
挑战在于让选择器在此处正确并使其动态化,以便每次迭代都针对不同的文本字段。 type into
activity 的选择器将取决于您的目标系统,但这里有一个示例:
为此选择器:
此外,这里有一个工作 XAML 文件供您测试。
希望这对您有所帮助。
克里斯
这是一种不同的、更通用的方法。 Excel 将被修改为包含选择器的一部分,而不是在过程本身中包含目标:
请注意,B 列现在包含一个标识符,该 ID 取决于您将使用的应用程序。例如,这是我的示例应用程序的样子。如您所见,第一个文本框的 ID 为 585,第二个为 586,依此类推(请注意,如果暴露给 UiPath,您可以使用任何类型的标识符,包括控件的名称):
现在,无需向您的工作流程添加多个 Type Into
元素,您只需添加一个元素,遍历数据表的每一行,然后创建一个动态选择器:
在我的例子中,Type Into
activity 的选择器如下所示:
"<wnd cls='#32770' title='General' /><wnd ctrlid='" + row(1).ToString() + "' />"
这将允许您单独维护 Excel sheet 的流程 - 如果有需要映射的新字段,只需将其添加到您的 sheet。无需更改工作流程。
如何通过 UiPath 读取 excel sheet 并将单元格值放在不同的文本字段中?
我有一个excelsheet如下:
我已经阅读了 excel 的内容并稍后遍历内容我将内容存储在 Output Data Table
中,如下所示:
读取范围 - 输出:
- 数据Table:CV数据表
输出数据Table
- 数据Table:CV数据表
- 文本:opCV数据表
截图:
最后,我想在迭代中读取 text
opCVdatatable 并将它们写入文本字段。因此,在所需的 Input 文件中,我根据需要提到了 opCVdatatable
或 opCVdatatable+ "[k(enter)]"
。
截图:
但每当我调用 opCVdatatable
.
简而言之,每个所需的 Input 字段都被存储在 Output Data Table[= 中的所有数据迭代填充70=].
有人可以帮我吗?
我的第一个建议是使用 Workbook: Read range activity
从 Excel 读取数据,因为它更快,在后台工作,并且不需要在系统上安装 excel .
像这样开始你的序列(注意添加 headers 属性 未被选中):
您不需要使用 Output Data Table
,因为此 activity 输出包含所有行项目的字符串。您要做的是访问数据 table 中的项目并将每个项目作为字符串输出到 type into
中,例如 CVDatatable.Rows(0).Item(0).ToString
,如下所示:
您提到您想在 迭代 中阅读文本 opCVdatatable
并将它们写入文本字段。这有点复杂,但我会给你一个例子。您可以使用 For Each Row
activity 并遍历 CVDatatable
中的每一行,如果需要,设置 index
属性。见下文:
挑战在于让选择器在此处正确并使其动态化,以便每次迭代都针对不同的文本字段。 type into
activity 的选择器将取决于您的目标系统,但这里有一个示例:
为此选择器:
此外,这里有一个工作 XAML 文件供您测试。
希望这对您有所帮助。
克里斯
这是一种不同的、更通用的方法。 Excel 将被修改为包含选择器的一部分,而不是在过程本身中包含目标:
请注意,B 列现在包含一个标识符,该 ID 取决于您将使用的应用程序。例如,这是我的示例应用程序的样子。如您所见,第一个文本框的 ID 为 585,第二个为 586,依此类推(请注意,如果暴露给 UiPath,您可以使用任何类型的标识符,包括控件的名称):
现在,无需向您的工作流程添加多个 Type Into
元素,您只需添加一个元素,遍历数据表的每一行,然后创建一个动态选择器:
在我的例子中,Type Into
activity 的选择器如下所示:
"<wnd cls='#32770' title='General' /><wnd ctrlid='" + row(1).ToString() + "' />"
这将允许您单独维护 Excel sheet 的流程 - 如果有需要映射的新字段,只需将其添加到您的 sheet。无需更改工作流程。