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

Pentaho Xlsx Input字符串转数字报错及解决需求

解决Pentaho Xlsx Input转数字报错的方案

问题根源

报错Unexpected conversion error while converting value [v String] to a Number是因为目标列存在混合格式:大部分行是纯数值,第245行是带USD 前缀的字符串,直接转数字会触发格式不兼容错误。

分步解决方法

1. 先以字符串类型读取目标列

在Xlsx Input步骤的字段配置中,将目标列的数据类型设置为String,避免提前触发转换报错。

2. 清理字符串中的前缀

推荐两种预处理方式:

方式A:用Replace in String步骤快速清理固定前缀

  • 添加Replace in String步骤到Xlsx Input之后
  • 配置项:
    • 目标字段:选择需要处理的列
    • 要替换的内容:^USD (正则表达式,精准匹配开头的USD )
    • 替换为:留空
    • 勾选「正则表达式」选项
  • 执行后,所有带USD 前缀的内容会被清理为纯数字字符串

方式B:用Calculator步骤处理可变前缀

如果后续可能出现其他类似字母前缀,用正则提取更通用:

  • 添加Calculator步骤
  • 新建输出字段(例如cleaned_amount)
  • 计算类型选「字符串运算」
  • 公式输入:REGEX_REPLACE([目标字段列名], "^[A-Za-z]+ ", "")
    • 该正则会匹配开头的任意字母组合+空格,替换为空,适配更多前缀场景

3. 转换为数字类型

完成字符串清理后,添加Select Values步骤:

  • 切换到「元数据」标签页
  • 找到清理后的字段,将其数据类型修改为Number(根据实际需求选择整数或浮点数类型)
  • 确认配置后运行作业即可

验证建议

可以添加Filter Rows步骤,筛选出ISNUMERIC(cleaned_amount) = N的行,检查是否还有未清理干净的异常格式,确保转换前所有内容都是合法的数字字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 14:17:14