2014-09-26 54 views
0

我有一個可用於加載Excel文件並將其內容添加到現有數據源的IronPython腳本。當加載Excel文件時,我正在使用DataFlowBuilderExpressionTransformation來執行一些數據轉換,例如,將列從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支持部門?

+1

您是否試過用方括號將方括號轉義出來?例如'Cast([處理時間[[h]]]爲真)'。不知道Spotfire:您是否嘗試過在發生異常時查看SDK的功能? – 2014-09-29 11:34:38

+0

好的猜測(沒有想過用方括號來轉義方括號) - 這樣可以擺脫錯誤信息,但是那麼列名稱不匹配(轉換不會執行)。出於好奇,我添加了一個名爲「Process Time [[h]]」的列,並立即得到另一個(完全不同的)錯誤消息。 – 2014-09-29 13:18:06

回答

2

Cast([Process Time [h]]] as Real)應該工作。請注意0​​和]的不平衡數量。

相關問題