我在 UIPath 中从 Excel 中提取和操作数据时遇到一些问题

问题描述 投票:0回答:1

我正在 UIPath 中开发一个自动化项目,我需要:

  1. 从 Excel 工作表中提取数据。
  2. 对数据执行一些操作(例如,计算总和或根据条件过滤某些行)。
  3. 将结果写回新的 Excel 工作表。

但是,我遇到了一些问题。这是我正在尝试做的事情的细分:

问题详情:

1. 从 Excel 中提取数据

我正在从 Excel 文件中读取数据,如下所示:

ID  Name    Amount
-------------------
1   Alice     100
2   Bob       200
3   Charlie   150
4   David     250

2. 操纵

我想要:

  • 过滤金额大于 150 的行。
  • 对剩余行的“金额”列求和。

3.写入数据

过滤并计算总和后,我想:

  • 将过滤后的数据写入新的 Excel 工作表。
  • 将计算出的总和写入同一工作表的单独单元格中。

当前问题:

  • 从 Excel 中提取数据工作正常,但过滤逻辑似乎返回错误的结果
  • 我不确定如何将计算出的总和写回 Excel 中的特定单元格

我面临的问题:

1. 过滤错误:尝试使用

.Where()
过滤行并将列数据转换为
Int32
时,出现运行时错误。有没有更好的方法来处理 UIPath 中的此类过滤?
2. 将总和写入特定单元格:我不确定使用写入单元格将总和写回 Excel 的方法是否正确。有没有更简单的方法来实现这一目标?

任何有关解决这些问题的帮助或建议将不胜感激!

  1. 从 Excel 读取数据:我尝试从包含 ID、名称和金额的 Excel 工作表中提取数据。
  2. 过滤数据:我尝试使用 LINQ 过滤提取的金额大于 150 的数据。
  3. 总金额:我计算了筛选行的“金额”列的总和。
  4. 写入过滤后的数据:我尝试将过滤后的数据写回新的 Excel 工作表。
  5. 将总和写入特定单元格:我尝试将计算出的总和写入新 Excel 工作表中的特定单元格。

您的期望:

  1. 成功的数据提取:我希望能够正确地从原始 Excel 文件中读取数据,没有任何错误。
  2. 准确过滤:我希望过滤结果仅包含 Amount 值大于 150 的行。
  3. 正确的总和计算:我预计过滤后的金额列的总和将被正确计算。
  4. 成功的数据写入:我希望过滤后的数据能够准确地写入到
    your text
    新的Excel表格中,没有任何问题。
  5. 正确的总和放置:我预计计算出的总和将毫无错误地写入新 Excel 工作表中的指定单元格。
excel linq automation datatable rpa
1个回答
0
投票

您将需要

excel application scope
(经典类型)内的序列。按照这个顺序,您将需要:

1.) 一个 Uipath

ExcelReadRange
活动,将目标表读入数据表
dt

2.) 创建一个名为

sumValue
的双变量,并在
assign
活动中,将其值设置为
dt.AsEnumerable().Where(Function(row) Double.TryParse(row("Amount").ToString(),Nothing) AndAlso CDbl(row("Amount").ToString()) > 150).Sum(Function(x) CDbl(x("Amount").ToString()))
。此代码过滤行以仅保留“金额”大于 150 的行并对这些值求和。

3.) 使用 Uipath

sumVale
活动将
ExcelWriteCell
的值写入同一 Excel 中另一个工作表的目标单元格中。

注意:您可能需要将步骤 2 中的

assign
放置在
try catch
内,因为当没有与过滤条件匹配的行时,代码可能会中断。 a
try catch
将有助于忽略这一点并继续
sumVal
为零

请参阅下面的屏幕截图了解更多详细信息

Screenshot from Studio

© www.soinside.com 2019 - 2024. All rights reserved.