簡體   English   中英

如何使用IronPython從Spotfire中的表的所有列中獲取值

[英]How to get values from all the columns of the table in Spotfire using IronPython

我找到了IronPython代碼來檢索特定列或多列(明確定義)的所有數據,但我需要迭代分析中的所有數據,並且希望使用一個代碼,無需定義所有列,但只處理所有表的所有行。

編輯:看來我必須澄清。 有一個表對象的方法: 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 [])

我需要的是能夠傳遞游標的“列表/數組/任何對象”而無需事先知道每個表有多少列。

您可以使用以下代碼遍歷所有表,行和列。

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)

編輯

它有點麻煩,但是看起來您可以傳遞游標數組...類似這樣的東西,它會打印一個表結構

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",

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM