activities
latest
false
重要 :
请注意此内容已使用机器翻译进行了部分本地化。
UiPath logo, featuring letters U and I in white
生产力活动
Last updated 2024年11月15日

对 Excel 文件中的数据进行排序

以下示例将说明如何处理 .xlsx 表格,以按升序显示所有行中的数据,而不出现任何重复项。

该示例将展示删除数据行读取范围表格排序等活动。您可以在UiPath.Excel.Activities包中找到这些活动。

下面的示例使用的表格包含五列 -ID电子邮件邮件。表格中的条目按降序排列。某些行会在电子表格中多次出现。使用自动化流程,数据将按升序排序,并删除所有重复项。

此自动化流程的构建方法如下:

  1. 打开 Studio,并新建一个默认命名为“主要”的“流程”。

    注意:请务必在项目文件夹中添加要使用的 .xlsx 文件。您也可以通过下载本页面底部的示例来使用我们提供的文件。
  2. 在“工作流设计器”中拖动“流程图”

    • 创建以下变量:

      变量名称

      变量类型

      默认值

      existingColumns

      workbook 应用程序

      不适用
  3. 将“Excel 应用程序作用域”活动拖动到“流程图”中,并将其连接到“开始节点”

    • 双击“Excel 应用程序作用域”活动将其打开。
    • 属性面板中,向显示名称字段添加名称 Sorting rows ascending
    • workbook 路径字段中添加 .xlsx 文件的路径,在本示例中,该文件为 Book.xlsx
    • 选中“自动保存”、“新建文件”和“可见”选项的复选框。现在,允许机器人创建新的 Excel 工作簿,自动保存对其所做的所有更改,以及在对其执行操作时在前台打开 Excel 文件。
    • 在“workbook”字段中添加“existingColumns”变量。
  4. 在“Excel 应用程序作用域”活动中选择“执行”序列,并创建以下变量:

    变量名称

    变量类型

    默认值

    descendingOrder

    System.Data.DataTable

    不适用
  5. 将适用于 Excel 的“读取范围”活动拖动到“执行”序列中。

    • 属性面板中,向工作表名称字段添加名称 "Sheet1"
    • 选中“添加标头”复选框,以便让系统认为第一行为标头。
    • 在“数据表”字段中添加“descendingOrder”变量。
  6. 在“读取范围”活动下方放置“表格排序”活动。

    • 属性面板中,向列名称字段添加名称"id"
    • 在“有序”列表中选择“Ascending”。
    • 在“工作表名称”字段中添加名称“"Sheet1"”。
    • 在“表格名称”字段中添加名称“"Table1"”。
  7. 返回到“流程图”工作流。
  8. 拖动“Excel 应用程序作用域”活动并将其连接到上一个“Excel 应用程序作用域”活动。

    • 双击“Excel 应用程序作用域”活动将其打开。
    • 属性面板中,向显示名称字段添加名称 Deleting duplicates
    • 选中“自动保存”、“新建文件”和“可见”选项的复选框。现在,允许机器人创建新的 Excel 工作簿,自动保存对其所做的所有更改,以及在对其执行操作时在前台打开 Excel 文件。
    • 在“workbook”字段中添加“existingColumns”变量。
  9. 将适用于 Excel 的“读取范围”活动拖动到“执行”序列中。

    • 属性面板中,向工作表名称字段添加名称 "Sheet1"
    • 选中“添加标头”复选框,以便让系统认为第一行为标头。
    • 在“数据表”字段中添加“descendingOrder”变量。
  10. 在“读取范围”活动下方放置“先条件循环”活动。

    • 创建以下变量:

      变量名称

      变量类型

      默认值

      rowIndex

      Int32

      0

    • 条件字段中添加表达式rowIndex+1 < descendingOrder.Rows.Count。此表达式将处理整个表格,并使您能够执行先条件循环,直到row index +1小于总行数。
  11. 在“先条件循环”活动主体中添加“序列”容器。

    • 创建以下变量:

      变量名称

      变量类型

      默认值

      row

      System.Data.DataRow

      不适用

      rowNext

      System.Data.DataRow

      不适用
  12. 将“分配”活动放置在先前创建的“序列”容器中。

    • 目标字段中添加 row 变量,并在字段中添加 descendingOrder.Rows(rowIndex) 表达式。该操作使您能够根据行的索引将行中包含的信息分配给行变量。
  13. 拖动另一个“分配”活动,并将其置于上一个“分配”活动下方。

    • 目标字段中添加 rowNext 变量,并在字段中添加 descendingOrder.Rows(rowIndex+1) 表达式。该操作会将以下行的值分配给 rowNext 变量,从而帮助您遍历所有表格。
  14. 在“分配”活动下添加“If 条件”活动。

    • 条件字段中添加表达式 row(0).ToString=rowNext(0).Tostring。此条件用于检查 row 变量中包含的数据是否与 rowNext 变量中的数据相同。
  15. 将“删除数据行”活动拖动至“If 条件”活动的“Then”字段。

    • 数据表字段中添加变量 descendingOrder,并在字段中添加变量 rowNext
  16. 将“分配”活动放置在“If 条件”活动的“Else”字段中。

    • 目标字段中添加 rowIndex 变量,并在字段中添加 rowIndex+1 表达式。
  17. 在“先条件循环”活动下方添加“写入范围”活动。

    • 工作表名称字段中添加名称"Sheet2",在起始单元格字段中添加值"A1",并在数据表字段中添加变量descendingOrder
    • 选中“添加标头”复选框,以便让系统认为第一行为标头。
  18. 运行流程。自动化流程将创建一个新工作表,该工作表按升序显示数据,没有任何重复项。


此页面有帮助吗?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath Logo White
信任与安全
© 2005-2024 UiPath。保留所有权利。