0

这似乎应该很简单。

我有一个包含多个货币值的 CSV 文件(所以如果可以避免的话,我想避免编写一堆字符串操作步骤),我很高兴看到 CSV 文件输入步骤具有货币分隔符等字段,十进制符号、分组符号(我的分别是默认的“$”、“.”和“,”)。

该文档将这些描述为:

  • 货币 用于解释像 $10,000.00 或 E5.000,00 这样的数字
  • 小数点 小数点可以是“.”。(10;000.00) 或 "," (5.000,00)
  • 分组 分组可以是点“、”(10;000.00) 或“.”。(5.000,00)

( http://wiki.pentaho.com/display/EAI/Text+File+Input )

但截至目前的生产版本(4.4)......这些设置似乎没有效果。

有没有人成功使用数字掩码或类似的字符串,例如“$10,000,238.48”这样的字符串可以产生一个可以推入数据库的数字?我所做的任何事情要么是文本输入中的“不可解析”,要么是插入时的“截断字段”错误......

4

1 回答 1

1

当我在文本输入步骤中使用您的示例编号执行获取字段时,它将货币、十进制和组分别设置为“$”、“.”、“,”,并且它可以很好地读取您的数字。它还设置了 '$#,##0.00;($#,##0.00)' 的格式字符串,这似乎是关键部分。文本文件输入步骤将检查您从 CSV 指定的尽可能多的行,并猜测每列的格式。

这是 PDI 的数字格式表:

数字格式表

如果您在同一列中混合了不同的货币格式,我会使用 UDJE 步骤和这个答案:

在 Java 中解析货币字符串

或者一个 JavaScript 步骤和这个答案:

使用 JavaScript 转换货币字符串

去除所有非数字和非小数点字符,然后通过选择值步骤。请注意,如果您在输入列中混合使用小数分隔符,这将非常棘手。

于 2013-05-17T20:22:52.410 回答