我的数据映射器中有一个类型为double的元素,名为capital。值来自excel电子表格。但是当没有资本时,价值就是" N / A"在excel中。然后我在mapper中得到以下错误:
引起:com.opensys.cloveretl.component.spreadsheet.exception.SpreadsheetException:无法从记录1中的M3中的String类型的单元格获取数字值,字段13(&#34; Capital&#34;),元数据< / p>
如果string类型的值通过,我如何编写映射器脚本以返回null或0?
答案 0 :(得分:1)
使用脚本时,可以使用数据类型上可用的任何Java方法。看起来这里的问题是您不知道输入值是字符串(“N / A”)还是十进制值。要解决这个问题,您可以采用将其转换为字符串进行测试的方法,然后采取适当的措施。我目前没有设置excel数据映射器所以我没有尝试过,但我认为这样的事情应该有用。
output.Captial = ((""+input.Capital).equals("N/A") ? 0 : input.cellValue);
通过添加(“”+ input.Capital),您将它转换为String,就像在Java中一样。