0
我有一个可用于加载Excel文件并将其内容添加到现有数据源的IronPython脚本。当加载Excel文件时,我正在使用DataFlowBuilder和ExpressionTransformation来执行一些数据转换,例如,将列从Int转换为Real。如何避免在Spotfire SDK中使用包含方括号的colum名称时出现“System.ArgumentException:无效的表达式”?
这个工作,除非列名称包含方括号 - 每当我尝试使用包含方括号的名称,我得到一个“System.ArgumentException:不是一个有效的表达式:Cast([Process Time [h]] Real )“例外(其中”处理时间[h]“(不带引号)是Excel列的名称)。
CODE
transformation = ExpressionTransformation()
transformation.ColumnReplacements.Add(
"Process Time [h]",
"Cast([Process Time [h]] as Real)",
ColumnSelection([DataColumnSignature("Process Time [h]", DataType.Integer)])
)
事情我已经试过
- 用双引号
"Cast([\"Process Time [h]\"] as Real)"
- 用单引号
"Cast(['Process Time [h]'] as Real)"
- 逃逸引用的列名引用的列名方括号^ h
\
"Cast([Process Time \[h\]] as Real)"
- 与
\\
"Cast([Process Time \\[h\\]] as Real)"
任何想法逃脱方括号?还是应该联系Tibco Spotfire支持部门?
您是否试过用方括号将方括号转义出来?例如'Cast([处理时间[[h]]]为真)'。不知道Spotfire:您是否尝试过在发生异常时查看SDK的功能? – 2014-09-29 11:34:38
好的猜测(没有想过用方括号来转义方括号) - 这样可以摆脱错误信息,但是那么列名称不匹配(转换不会执行)。出于好奇,我添加了一个名为“Process Time [[h]]”的列,并立即得到另一个(完全不同的)错误消息。 – 2014-09-29 13:18:06