如何使用 IronPython 从 Spotfire table 的所有列中获取值
How to get values from all the columns of the table in Spotfire using IronPython
我找到了一个 IronPython 代码来检索特定列或多列(明确定义)的所有数据,但我需要在分析中迭代真正的所有数据,我希望使用可以让我这样做的代码在不定义所有列的情况下,只处理所有 tables.
的所有行
编辑:
看来我必须澄清一下。有一个table对象的方法:
https://docs.tibco.com/pub/doc_remote/sfire-analyst/7.7.0/TIB_sfire-analyst_7.7.0_api/html/M_Spotfire_Dxp_Data_DataTable_GetRows.htm
数据表。 GetRows 方法 (DataValueCursor[] )
我需要的是能够传递 'list/array/whatever' 个游标,而无需事先知道每个 table 有多少列。
您可以使用下面的代码遍历所有 table 行和列。
from Spotfire.Dxp.Data import *
for eDataTable in Document.Data.Tables:
for eColumn in eDataTable.Columns:
for eTableRows in range(0,eDataTable.RowCount):
print "Table: " + eDataTable.Name + "\tColumn: " + eColumn.Name +"\tRow: " + str(eTableRows) + "\tValue: " +eDataTable.Columns[eColumn.Name].RowValues.GetFormattedValue(eTableRows)
编辑
它有点麻烦,但看起来你可以传递一个游标数组......像这样,打印出一个table结构
from Spotfire.Dxp.Data import *
from System.Collections.Generic import List
import System
from System import Array
for eTable in Document.Data.Tables:
print "~~~~~~~~~~ " +eTable.Name+" ~~~~~~~~~~\n",
CursList=[]
ColList=[]
for eColumn in eTable.Columns:
CursList.append(DataValueCursor.Create(eTable.Columns[eColumn.Name]))
ColList.append(eTable.Columns[eColumn.Name])
CursArray = Array[DataValueCursor](CursList)
for cName in range(ColList.Count):
print str(ColList[cName])+"\t",
print "\n",
for row in eTable.GetRows(CursArray):
for curs in range(CursList.Count):
print str(CursList[curs].CurrentValue) + "\t",
print "\n",
我找到了一个 IronPython 代码来检索特定列或多列(明确定义)的所有数据,但我需要在分析中迭代真正的所有数据,我希望使用可以让我这样做的代码在不定义所有列的情况下,只处理所有 tables.
的所有行编辑: 看来我必须澄清一下。有一个table对象的方法: https://docs.tibco.com/pub/doc_remote/sfire-analyst/7.7.0/TIB_sfire-analyst_7.7.0_api/html/M_Spotfire_Dxp_Data_DataTable_GetRows.htm
数据表。 GetRows 方法 (DataValueCursor[] )
我需要的是能够传递 'list/array/whatever' 个游标,而无需事先知道每个 table 有多少列。
您可以使用下面的代码遍历所有 table 行和列。
from Spotfire.Dxp.Data import *
for eDataTable in Document.Data.Tables:
for eColumn in eDataTable.Columns:
for eTableRows in range(0,eDataTable.RowCount):
print "Table: " + eDataTable.Name + "\tColumn: " + eColumn.Name +"\tRow: " + str(eTableRows) + "\tValue: " +eDataTable.Columns[eColumn.Name].RowValues.GetFormattedValue(eTableRows)
编辑
它有点麻烦,但看起来你可以传递一个游标数组......像这样,打印出一个table结构
from Spotfire.Dxp.Data import *
from System.Collections.Generic import List
import System
from System import Array
for eTable in Document.Data.Tables:
print "~~~~~~~~~~ " +eTable.Name+" ~~~~~~~~~~\n",
CursList=[]
ColList=[]
for eColumn in eTable.Columns:
CursList.append(DataValueCursor.Create(eTable.Columns[eColumn.Name]))
ColList.append(eTable.Columns[eColumn.Name])
CursArray = Array[DataValueCursor](CursList)
for cName in range(ColList.Count):
print str(ColList[cName])+"\t",
print "\n",
for row in eTable.GetRows(CursArray):
for curs in range(CursList.Count):
print str(CursList[curs].CurrentValue) + "\t",
print "\n",