У меня есть рабочий скрипт IronPython для загрузки файла Excel и добавления его содержимого в существующий источник данных. При загрузке файла Excel я использую DataFlowBuilder с ExpressionTransformation для выполнения некоторых преобразований данных, например. преобразование столбцов из Int в Real.Как избежать "System.ArgumentException: Недействительное выражение" при использовании имени colum с квадратными скобками в SDK Spotfire?
Это работает, если имя столбца не содержит квадратных скобок - всякий раз, когда я пытаюсь использовать имя, содержащее квадратные скобки, я получаю «System.ArgumentException: Недействительное выражение: Cast ([Process Time [h]] as Real) " исключение (где" Время процесса [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 по этому поводу?
Вы пытались избежать квадратных скобок квадратными скобками? например 'Cast ([Время процесса [[h]]] как Real)'. Не зная Spotfire: вы пытались посмотреть, что делает SDK, когда он выдает исключение? –
Хорошая догадка (не думал использовать квадратные скобки для избежания квадратных скобок) - это избавляется от сообщения об ошибке, но тогда имя столбца не совпадает (преобразование не выполняется). Из любопытства я добавил столбец «Process Time [[h]]» и сразу получил другое (совершенно другое) сообщение об ошибке. –