在 Blueprism 中获取命名范围作为集合

Posted

技术标签:

【中文标题】在 Blueprism 中获取命名范围作为集合【英文标题】:Get a Named Range as a Collection in Blueprism 【发布时间】:2018-04-18 08:16:04 【问题描述】:

BluePrism Excel VBO 具有Get Worsheet As CollectionGet Worksheet Range as Collection 操作,但作为经验丰富的 VBA 开发人员,我知道引用命名范围会更好。 (它使您不太容易受到 Excel 重新排列的影响)

不过,我没有找到将命名范围的内容作为集合获取的操作。如果存在,如何称呼它,如果不存在,可以通过简单的方式实现相同的功能吗?

(或者更好,我可以用 C# 创建它并与我的同事分享吗?)

【问题讨论】:

要使用 C#,您必须在 C# 中至少重写 VBO 的“全局代码”部分。否则,一些内部的东西将无法正常工作。 此评论是否适用于 Andrzey Kaczor 的回答? 它适用于任何 VBO - 您不能在同一个 VBO 中拥有不同语言的代码阶段。 GetWorksheet 是内部 VBO 函数,因此您必须重写它(和其他函数)。 Andrzej 正在谈论在 VB.net 中扩展原始 VBO。 【参考方案1】:

当我使用命名范围时,我会使用两个操作:

    获取命名范围地址 以集合形式获取工作表范围

第二个是标准的 blueprism 实用程序,因此您可以随时使用。 “获取命名范围地址”的代码并不复杂,只有一行代码:

Address = GetWorksheet(handle,sWB,sWS).Range(sRange).Address

结果是一个字符串,表示格式为 $A$1:$B$2 的范围。 “获取工作表范围作为集合”需要一个输入用于“起始单元格”,一个用于“结束单元格”,因此要组合这些功能,您需要将其拆分并将一部分地址作为“起始单元格”发送,另一个作为“结束单元格”。

事实上,您还可以改进标准“将工作表作为集合”以接受该格式的范围,因为这样做非常简单。

【讨论】:

【参考方案2】:

你可以把excel当作数据库,你可以用OLEDB在Excel工作表上查询。 到 excel 的连接字符串是:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=[FilePath];Extended Properties="Excel 12.0;HDR=YES";

在excel表格上查询时,只需给出格式或顺序的列名,您就会得到它。

select [column1],[column2],... from [SheetName$]

select [column2], [column1], .... from [SheetName$]

这将返回一个集合,其标题名称与 excel 标题中的名称相同。

【讨论】:

以上是关于在 Blueprism 中获取命名范围作为集合的主要内容,如果未能解决你的问题,请参考以下文章

无法将多个页面中的表格写入blueprism中的集合

Blueprism 将集合写入 Excel 文件问题

如何使用blueprism中的invoke js从javascript函数返回输出

数据项当前值未更新:内部工作队列获取下一项:blueprism

blue prism优缺点

如何使用命名范围作为验证参考