我有一个可用的 IronPython 脚本,用于加载 Excel 文件并将其内容添加到现有数据源。加载 Excel 文件时,我使用带有ExpressionTransformation的DataFlowBuilder来执行一些数据转换,例如将列从 Int 转换为 Real。
除非列名包含方括号,否则此方法有效 - 每当我尝试使用包含方括号的名称时,我都会收到“System.ArgumentException: Not a valid expression: Cast([Process Time [h]] as Real)”异常(其中“ Process Time [h] ”(不带引号)是 Excel 列的名称)。
代码
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)"
- 转义方括号
\
"Cast([Process Time \[h\]] as Real)"
- 转义方括号
\\
"Cast([Process Time \\[h\\]] as Real)"
有任何想法吗?或者我应该就此联系 Tibco Spotfire 支持吗?