2013-03-04 45 views
0

這看起來應該很簡單。在Spoon CSV文本輸入中將貨幣解析爲數字

我有一個帶有多種貨幣值的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」可以產生一個數字可以推入數據庫成功?我所做的任何事情都是文本輸入中的「Unparsable」或插入時的「截斷字段」錯誤...

回答

0

當我在文本輸入步驟中使用示例編號獲取字段時,它設置Currency, Decimal和Group分別設置爲'$','。',',',並且它讀取您的號碼就好了。它還設置'$#,## 0.00;($#,## 0.00)'的格式字符串,它似乎是關鍵部分。文本文件輸入步驟將檢查您從CSV中指定的行數,並猜測每列的格式。

這裏是PDI的數字格式表:

Number Formatting Table

如果你有不同的貨幣格式在同一列混合時,我會用一個UDJE一步,這樣的回答:

Parsing a Currency string in Java

或JavaScript步驟和此答案:

Convert Currency string with JavaScript

刪除所有非數字和非小數點字符,然後通過選擇值步驟傳遞它。請注意,如果您在輸入列中混合使用小數點分隔符,這將非常棘手。