You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UiPath如何获取GenericValue实际类型 解决Excel数值分隔符异常

问题背景

现有Excel表格中的数值采用.作为千位分隔符、,作为浮点分隔符;当数值小于1000时,仅存在,浮点分隔符。在UiPath中使用Read Range活动读取数据并存入DataTable时,小于1000的数值会被UiPath识别为浮点型,自动将分隔符,替换为.;大于等于1000的数值则被识别为字符串类型,原有分隔符保持不变。

读取效果示例

+───────────+───────────────+─────────+
| Input     | UiPath Value  | Type    |
+───────────+───────────────+─────────+
| 4.381,14  | 4.381,14      | String  |
| 5.677,50  | 5.677,50      | String  |
| 605,27    | 605.27        | Double  |
+───────────+───────────────+─────────+
问题描述

需要遍历DataTable对每个值执行业务逻辑处理,由于单元格值存在不同数据类型,因此将值赋值给GenericValue类型变量存储。但分隔符,被自动替换为.会导致数值含义完全错误,因此需要先判断GenericValue中存储值的实际数据类型,以便还原正确的数值分隔符。

已尝试方案

尝试调用GetType().ToString()方法获取变量类型,但返回结果仅为UiPath.Core.GenericValue,无法获取变量实际存储的底层数据类型(如String、Double)。


解决方案

核心原因

GenericValue是UiPath封装的兼容类型,直接对变量调用GetType()返回的是封装类本身的类型,而非内部存储的实际值类型。要获取底层类型,需要访问其Value属性后再做判断。

方案1:针对现有逻辑补全类型判断

如果不想调整现有读取流程,直接通过以下逻辑判断GenericValue的实际存储类型即可,假设存储单元格值的GenericValue变量名为cellVal:

  1. 先做空值校验:若cellVal Is Nothing或cellVal.Value Is Nothing,按空值规则处理
  2. 底层类型判断:调用cellVal.Value.GetType()即可拿到真实存储类型,对应处理逻辑参考:
If cellVal.Value.GetType() Is GetType(String) Then
    ' 字符串类型为≥1000的原始格式数值,按欧洲数字格式解析为数值即可
    Dim parseResult As Double = Double.Parse(cellVal.ToString(), New Globalization.CultureInfo("de-DE"))
ElseIf cellVal.Value.GetType() Is GetType(Double) Then
    ' Double类型为<1000被UiPath自动转换的数值,分隔符已经适配系统数值规则,可直接使用
    Dim parseResult As Double = CDbl(cellVal)
End If

注意:不要通过ToString()后判断是否包含./,来区分类型,遇到整数类边界值时会出现判断错误,直接取Value属性判断类型稳定性最高。

方案2:从读取环节规避类型不一致(推荐)

不需要后续遍历做类型判断,修改Read Range活动配置即可从源头解决分隔符识别混乱问题,开启配置后所有单元格值会按Excel中显示的原始文本格式存入DataTable,不会自动做数值类型转换,所有数值都会保留原有的.千分位、,小数位分隔符,后续统一用德国区域格式解析为数值即可,完全避免类型不一致问题。
不同版本活动的配置路径:

  • 现代版Read Range:找到属性面板的Format Options,将Preserve Format设为启用状态
  • 经典版Read Range:勾选属性面板的PreserveFormat选项

统一解析代码如下:

' 所有值均为原始字符串格式,无需分类型判断
Dim finalValue As Double = Double.Parse(currentRow("目标列名").ToString(), New Globalization.CultureInfo("de-DE"))

内容的提问来源于stack exchange,提问作者toffler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 12:09:18