【UiPath2022+C#】UiPathExcel 和数据表

【UiPath2022+C#】UiPath Excel和数据表

写在前面

本博客涵盖最常用的业务工具之一 - Excel。我们将使用 UiPath 特别提供和 RPA 一般提供的特定方法和工具,详细介绍使用 Excel 和类似文件(.xlsx、.xls、.csv)的不同方法。我们还将介绍一种用于处理 Excel 文件和数据库的变量 - 数据表 (System.Data.DataTable)。

环境

UiPath Studio Community 2022.4.3

Windows

C#

定义

数据表是一种变量类型,它可以将数据存储为一个简单的电子表格,其中包含行和列,这样就可以根据数据段唯一的列和行坐标来识别每一个数据段。可以将其视为 Excel 工作表的内存表示形式。

在数据表中,应用了标识列和行的常规约定 - 列通过大写字母标识,行通过数字标识。

创建数据表

构建数据库表

通过使用这个活动,您可以选择列的数量和每个列的数据类型。此外,您还可以使用特定的选项来配置每一列,这些选项包括允许 null 值、唯一值、自动增量(适用于数字)、默认值和长度(适用于字符串)。

读取范围

此活动获取工作表的内容(或从该工作表中选择的内容)并将其存储在数据表变量中,该变量可以使用 Ctrl+K 从“属性”面板创建。

读取CSV

此活动捕获 CSV 文件的内容并将其存储在数据表变量中。尽管不再常用,但仍有一些传统的或内部构建的应用程序处理此类文档。

数据抓取

UiPath Studio 的此功能使您能够将结构化数据从浏览器、应用程序或文档提取到数据表中。

数据表活动

业务场景

联接数据表提供了将两个源中的数据放在一个位置的最简单方法之一:

  • 将从 2 个应用程序中提取的 2 个员工数据库合并在一起
  • 检查在营销活动(数据库 2)中联系了哪些客户(数据库 1)
  • 检查公司的哪些供应商(内部数据库)申请了公共援助(公共数据库)

联接数据表

实现思路
  1. 必须指定的 3 个数据表变量 - 2 个输入数据表以及 1 个输出数据表。请注意,前 2 个的顺序非常重要,因为有一个选项可以保留数据表 1 中的值,并且不能更改。

  2. 必须选择联接类型 - 有 3 个选项:

  • 内部:保留符合联接规则的来自两个表的所有行。将从所得表格删除不符合规则的任何行。
  • 左侧:保留来自数据表的所有行以及仅符合联接规则的来自数据表 2 的值。Null 值将插入来自数据表 1 的行的列,这些行在数据表 2 行中没有匹配项。
  • 完整:保留来自数据表 1 和数据表 2 的所有行,而不考虑是否符合联接条件。Null 值将添加至没有匹配项的两个表格中的行。
  1. 必须配置联接规则(可以存在一个或多个规则):
  • 必须指定来自每个数据表的一个列,具体是按其名称(字符串)、按其索引 (Int32) 或按 Excel 列变量来指定
  • 必须选择运算符:=(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于或等于)、<=(小于或等于)
实践
步骤

创建两个数据表,将它们联接成第三个数据表,从后者中删除不必要的列并对条目进行排序。

  • 我们以序列的形式启动了项目,并且使用了 2 个构建数据表活动来创建 2 个表并将它们存储在2 个数据表变量中(“users” 和 “overdueBooks”)。它们中的每个包含字符串的列以及 Int32 数据类型;
  • 我们使用了联接数据表活动来查找每本图书的借阅者的姓名。我们为联接活动选择内部类型,指定了 “overdueBooks” 数据表作为第一个变量,因为同一人可能借阅多本图书。我们写下了 2 个列名称来用作联接条件,并创建了新数据表变量来存储输出 (“borrowedBooks”);
  • 使用了 2 个删除数据列活动来删除一个重复的列 (“ID”),具体方法是指定它的索引以及“部门”列,这个列通过指定其名称来指定,是不相关的;
  • 使用了数据表排序活动来根据用户 ID 对数据表排序;
  • 使用了输出数据表活动来将数据表的内容打印至新创建的字符串变量
  • 使用了写入行来打印演示的输出。
流程总览

在这里插入图片描述

变量

在这里插入图片描述

users表

在这里插入图片描述

overdueBooks表

在这里插入图片描述

联接

在这里插入图片描述

Remove

在这里插入图片描述

排序和输出

在这里插入图片描述

结果

在这里插入图片描述

工作簿和常见活动

在许多业务场景中,数据库存储在工作簿(通常称为 Excel 文件或电子表格)中。在这里,可以将它们输入到数据表中,并使用上一章介绍的方法以及其他可用的方法和工具进行进一步处理。现在来看看 RPA 如何处理工作簿。

UiPath 提供了两种不同的访问和操作工作簿的方法,每种方法都有其优点和局限性:

文件访问级别
  • 将在后台执行所有工作簿活动。
  • (+) 不需要安装 Microsoft Excel,由于不用打开文件,对于一些操作更快并且更可靠;
  • (!) 仅适用于 .xlsx 文件。

Excel应用程序集成

  • UiPath 将如同人类一样,将 Excel 打开。
  • (+) 对 .xls 和 .xlsm 有效,并且有一些具体的活动可用于 .csv。所有活动均可设置为对用户可见或在后台运行;
  • (!) 即使未选中“可见”框,也必须安装 Microsoft Excel。 如果该文件未打开,则将为每个活动打开、保存和关闭该文件。

工作簿活动(文件访问级别)

Excel 活动(Excel 应用程序集成)

Excel 应用程序集成特定活动
CSV

这些活动可以使用数据表变量读取和写入 CSV 文件。尽管可以在 Excel 应用程序集成下找到,但即使它们未放置在 Excel 应用程序作用域容器中,也可以使用。

  • 附加至 CSV:将数据表中的信息添加到 CSV 文件,如果不存在 CSV 文件则创建一个。该活动不会覆盖现有数据

  • 读取 CSV:从 CSV 文件读取所有条目并将它们存储在数据表中

  • 写入 CSV:用数据表中的信息覆盖 CSV

范围

这些活动可以读取数据,插入和删除行和列,甚至可以复制/粘贴整个范围。它们类似于数据表下的相应活动,但它们直接用在 Excel 文件中。

  • 删除列:根据名称从 Excel 文件中删除列。
  • 插入列:在 Excel 文件中的特定位置插入空白列。
  • 插入/删除列:基于指定的更改类型,添加空白列或删除现有列。
  • 插入/删除行:根据指定的更改类型,添加空白行或删除现有行。
  • 选择范围:在 Excel 文件中选择特定范围。通常,它与对选定数据执行某种操作的另一个活动配对使用。
  • 获取选定范围:将给定范围输出为字符串。
  • 删除范围:从 Excel 文件删除指定范围。
  • 自动填充范围:在 Excel 文件的给定范围上应用给定公式。
  • 复制并粘贴范围:从源工作表复制和粘贴整个范围(值、公式和格式设定)到目标工作表。
  • 查找范围:在给定范围内的所有单元格中搜索值。
  • 删除重复范围:从给定范围中删除所有重复行。
表格

这些活动直接在 Excel 文件中创建、筛选和排序表格。

  • 筛选表格:对 Excel 文件内表格中某列的所有值应用筛选器。保存文件后,将仅显示符合筛选器的行。请注意,此活动不会删除不符合条件的行,而是直接隐藏它们。这个方法的一个不错用法是在这个活动之后使用一个“读取范围”活动,并选中“使用筛选器”框。输出将是一个数据表,其中只包含满足给定条件的条目。
  • 排序表格:根据给定列中的值对 Excel 文件中的表进行排序。
  • 创建表格:在“属性”面板中指定的范围内创建一个表格(具有名称)。
文件

这些活动通过保存或关闭 Excel 文件来直接处理这些文件。

  • 关闭 Workbook
  • 保存 Workbook
单元格颜色

这些活动能够捕获和修改 Excel 文件中单元格的背景色。

  • 获取单元格颜色:读取 Excel 文件中的背景色或给定单元格,并将其存储为颜色变量输出。
  • 设置范围颜色:更改给定范围内所有单元格的背景色。输入是一个颜色变量。
工作表

这些活动可在 Excel 文件中的工作表上执行各种操作。

  • 获取 Workbook 工作表:通过工作表的索引读取其名称。
  • 获取 Workbook 工作表:提取工作表名称,并且按索引的顺序将它们存储。
  • 复制工作表:复制 Excel 文件中的工作表并在同一 Excel 文件或指定的不同 Excel 文件中粘贴。
透视表

这些活动有助于处理 Excel 文件中的透视表。

  • 刷新透视表:刷新 Excel 文件中的透视表。这在透视表源数据变化时有用,因为刷新不是自动进行的。
  • 创建透视表:使用指定的工作表以及给定的参数创建透视表。

这些活动可以执行 Excel 文件中已定义的宏,也可以从其他文件调用宏。请注意,这些活动使用 .xslm 文件。

  • 执行宏
  • 调用 VBA:来自另一文件的宏
实践1
步骤

从具有不同扩展名的两个文件中读取数据,筛选数据表并将数据合并在一起,然后将数据写入不同的文件。

  • 我们使用了活动的 Workbook 类别中的读取范围活动来从 .xlsx 文件读取数据,并将其存储在新创建的数据表变量中。
  • 通过放置在Excel 应用程序作用域容器中的Excel类别的“读取范围”活动从.xls文件读取数据。读取的数据存储在另一新建的数据表变量中。
  • 我们使用了 2 个筛选数据表活动来仅保留符合所设条件的行:包含成立年份的列(两个变量中的每个名称均具有不同名称)中的值小于 (“<”) 2005.00。必须选择保留两位小数,然后在“输出”选项卡中更改了列的顺序。
  • 我们创建了新的数据表变量,将读取范围阶段创建的两个数据表变量的值合并在一起。使用了构建数据表活动来定义每个列的数据类型、名称,并配置了其他选项。
  • 为了将值带入新的数据表变量中,我们使用了 2 个“遍历每一行”活动遍历两个初始数据表变量中的每一个。在 2 个活动的主体中,我们添加了“添加数据行”活动,以使用数组行下的 row.ItemArray 方法在新数据表中添加每一行。
  • 我们使用了 Excel 应用程序作用域容器中的写入范围活动,将来自数据表变量的数据写入输出 .xlsx 文档。写入范围覆盖指定工作表中所有之前的数据。
流程总览

在这里插入图片描述

获取Excel数据

在这里插入图片描述

过滤数据

在这里插入图片描述

在这里插入图片描述

调整数据列

在这里插入图片描述

在这里插入图片描述

创建数据表

在这里插入图片描述

遍历数据

在这里插入图片描述

输出数据到Excel

在这里插入图片描述

结果

在这里插入图片描述

实践2
步骤

从数据库中筛选数据并将结果导出到新文件中。

  • 我们使用了 Workbook 读取范围 活动来从 .xlsx 文件读取数据并将其存储在新建的数据表变量中。
  • 我们使用了筛选数据表活动,仅保留年龄小于 30 并且收入高于 10 万的员工。为此,我们选中了保留选项,并使用输入文件中列的名称以及数据表“Age” < 30.00“Income” > 100000.00 添加了两个条件。运算符必须为 “And”。我们没有在输出选项卡中进行任何更改,保留了来自初始文件的所有数据。
  • 使用了构建数据表新建数据表变量,在其中仅存储筛选的数据表中感兴趣的信息 - 姓名、年龄和收入。为此,我们在构建数据表向导中定义了 3 列字符串类型,都具有所选的名称。
  • 我们使用了遍历每一行活动来遍历初始数据表变量中的所有行,在主体框中有以下活动:
    1. 获取行项目,用于提取姓名和年龄,具体操作方法为,在“属性”面板的列名称下指定列名称,在下指定行名称。还在“输出”字段创建了 2 个变量分别名为 “name” 和 “age”。
    2. 使用了分配活动来提取收入,具体方法为:创建新变量 (“income”) 并使用 row.ItemArray 方法,后接感兴趣的列的索引以及 .toString
    3. 通过在“属性”面板的数组行下使用大括号之间的 3 个变量的名称,以及新数据表变量的名称,使用了添加数据行活动在新数据表中添加 3 个变量的内容;
  • 为了将数据写入输出 Excel 文件中,使用了 Excel 应用程序作用域容器以及写入范围活动,并且选中了添加标题选项。
流程总览

在这里插入图片描述

过滤数据

在这里插入图片描述

创建数据

在这里插入图片描述

获取name,age,income

在这里插入图片描述

添加数据

在这里插入图片描述

结果

在这里插入图片描述

文档

数据表活动

工作簿活动(文件访问级别)

Excel 活动(Excel 应用程序集成)

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会敲键盘的肘子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值