如何使用列名而不是提供单元格编号范围来在 excel sheet 中添加两列来定位 Uipath 中的列

How can I add two columns in an excel sheet using the column name instead of giving cell number range to locate the columns in Uipath

我基本上想执行两列相加并将结果存储在第三列。

但挑战是我无法使用单元格列数来定位列。相反,我必须使用 name/header 列,当我找到 header 时,我必须在这些列的值之间执行加法运算,并且还要存储结果列。

我必须使用第 3 列的名称而不是它的位置。

出于测试目的,我创建了一个如下所示的 Excel:

现在我为您创建了这个工作流程,它处理 firstsecond 列的添加,在哪一个并不重要他们是专栏。

列的获取非常简单。困难的部分是确定目标列,正如您所说,该列将来可能会切换列,不应由列号确定。

Step-by-step:

第 1 步:

所以在开始时您阅读了 Excel 文件。将结果写入DataTableDT1。然后用内容 DT1.Columns.IndexOf("result (1+2)").

创建变量 result_index

第 2 步:

现在越来越复杂了。首先,我们遍历我们的 DataTable DT1。这里我们确定列的字母。这是由我们之前创建的 result_index 变量完成的。然后在 Switch 中,我们将该索引转换为一个字母。我认为这很简单:

  • 2 -> C
  • 3 -> D
  • 等等...

现在我们有了那个字母,我们可以用它来填充 result 列。因此,为了生成单元格编号,我们只需取 letter.ToString + row_index.ToString。在我们的情况下,这代表“D2”。如果您查看 Excel 文件,您会看到这是结果数据的第一个单元格。

添加非常简单,因为它只是将已知的列加起来 (CInt(row("first")) + CInt(row("second"))).ToString

最后,当它有 运行 时,您会找到那个结果。


改进意见:

  1. 这不是一个完美的解决方案。一个巨大的改进是不使用 Write Cell activity。相反,您需要创建另一个 DataTable。填写结果数据。并将 Write Cell 替换为 Write Range activity.

他把数据表设置为输入。

这将加快填充行的速度,因此填充一个巨大的 Excel 文件要快得多。

  1. 您也可以将 Switch 替换为字符转换。您可以在 this snippet.
  2. 上找到这个想法