写在前面本博客涵盖最常用的业务工具之一 - 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)
- 检查公司的哪些供应商(内部数据库)申请了公共援助(公共数据库)
联接数据表
实现思路
- 必须指定的 3 个数据表变量 - 2 个输入数据表以及 1 个输出数据表。请注意,前 2 个的顺序非常重要,因为有一个选项可以保留数据表 1 中的值,并且不能更改。
必须选择联接类型 - 有 3 个选项:
- 内部:保留符合联接规则的来自两个表的所有行。将从所得表格删除不符合规则的任何行。
- 左侧:保留来自数据表的所有行以及仅符合联接规则的来自数据表 2 的值。Null 值将插入来自数据表 1 的行的列,这些行在数据表 2 行中没有匹配项。
- 完整:保留来自数据表 1 和数据表 2 的所有行,而不考虑是否符合联接条件。Null 值将添加至没有匹配项的两个表格中的行。
必须配置联接规则(可以存在一个或多个规则):
- 必须指定来自每个数据表的一个列,具体是按其名称(字符串)、按其索引 (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 应用程序集成特定活动
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:来自另一文件的宏