使用spotfire api重新加载数据
时间: 2023-05-31 19:05:49 浏览: 146
spotfire报表开发课程
5星 · 资源好评率100%
使用Spotfire API重新加载数据可以通过以下步骤完成:
1. 首先,需要连接到Spotfire服务器。这可以通过使用API提供的TSServerConnection类来实现。例如:
```python
from Spotfire.Dxp.Data import DataManager, DataColumnSignature
from Spotfire.Dxp.Data.Import import TextFileDataSource
from Spotfire.Dxp.Application import Application
from Spotfire.Dxp.Framework.ApplicationModel import ApplicationThread
from Spotfire.Dxp.Framework.Library import LibraryManager
from Spotfire.Dxp.Framework.ApplicationModel import ApplicationThread
from Spotfire.Dxp.Framework.DocumentModel import DocumentManager
from Spotfire.Dxp.Data.Import import DataSourcePromptMode
from Spotfire.Dxp.Data import DataFlowBuilder
from Spotfire.Dxp.Data.Import import TextFileDataSourceSettings
from Spotfire.Dxp.Data.Import import DataSourceTypeIdentifiers
from Spotfire.Dxp.Data import RowSelection
server = Application.GetServerConnection()
```
2. 然后,需要打开要重新加载数据的文档。这可以通过使用API提供的DocumentManager和LibraryManager类来实现。例如:
```python
libraryManager = LibraryManager(server)
documentManager = DocumentManager(server)
document = documentManager.OpenDocument("path/to/document")
```
3. 然后,需要获取要重新加载数据的数据表。这可以通过使用API提供的DataManager类来实现。例如:
```python
dataManager = document.Data
table = dataManager.Tables["table_name"]
```
4. 然后,需要创建一个新的数据源,以便重新加载数据。这可以通过使用API提供的DataFlowBuilder和TextFileDataSourceSettings类来实现。例如:
```python
dataSource = TextFileDataSourceSettings()
dataSource.ColumnNamesLineIndex = 0
dataSource.DataStartingLineIndex = 1
dataSource.FieldSeparator = '\t'
dataSource.HasHeaderRecord = True
dataSource.IncludeFileShareCredentials = False
dataSource.LocalFilePath = "path/to/file"
dataFlowBuilder = DataFlowBuilder()
dataFlowBuilder.AddImportDataSource("dataSourceName", DataSourceTypeIdentifiers.TextFile, dataSource)
dataFlow = dataFlowBuilder.Build()
newDataSource = dataFlow.DataSourceInfos["dataSourceName"].DataSource
```
5. 最后,需要使用新的数据源重新加载数据。这可以通过使用API提供的DataManager和TextFileDataSource类来实现。例如:
```python
textFileDataSource = TextFileDataSource(newDataSource, dataManager)
textFileDataSource.ReplaceData(table, DataSourcePromptMode.Never)
```
完成这些步骤后,数据表应该已经重新加载了新的数据。
阅读全文