在 Blueprism 中获取命名范围作为集合
Posted
技术标签:
【中文标题】在 Blueprism 中获取命名范围作为集合【英文标题】:Get a Named Range as a Collection in Blueprism 【发布时间】:2018-04-18 08:16:04 【问题描述】:BluePrism Excel VBO 具有Get Worsheet As Collection
和Get 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中的invoke js从javascript函数返回输出