我一直在寻找一种方法来删除 SPOTFIRE 上数据表中的行,而我找不到合适的方法。
我尝试编写脚本来执行此操作,但它太慢了,我有更多的20k行要删除。
有人知道为什么它太慢而且还有另一种方法(更快的方式)
from Spotfire.Dxp.Data import RowSelection
table=Document.Data.Tables["my Table name"]
i=0
for row in table.GetRows():
i+=1
rowToDelete=Document.Data.Tables["my Table name"].Select("[index]="+`i`).AsIndexSet()
Document.Data.Tables["my Table name"].RemoveRows(RowSelection(rowToDelete))
答案 0 :(得分:8)
我找到了一种更简单的方法。
from Spotfire.Dxp.Data import RowSelection, IndexSet
dtTarget = Document.Data.Tables["my Table name"]
dtTarget.RemoveRows(RowSelection(IndexSet(dtTarget.RowCount,True)))
答案 1 :(得分:1)
这是从表中删除选定(标记)行的代码。
from Spotfire.Dxp.Data import RowSelection
DataTable = Document.Data.Tables['NodeCollection']
# selectedNodes - Name of the marking given in spotfire.
SelectedRows = Document.Data.Markings['selectedNodes'].GetSelection(DataTable)
CollectionTable.RemoveRows(SelectedRows)