在一些帮助下解决了这个问题.

你必须创建一个.Net DataSet和DataTable,在内存中添加行,处理表并从数据创建一个制表符分隔的字符串,然后使用Stream创建一个Spotfire TextDataSource …然后你可以在Spotfire中创建一个数据表使用内存中的文本数据源(而不是物理文本文件).

此代码中还有其他与我试图解决的问题相关的内容,但它可能对其他人有用.

import clr

clr.AddReference('System.Data')

import System

from System.Data import DataSet, DataTable, XmlReadMode

from Spotfire.Dxp.Data import DataType, DataTableSaveSettings

from System.IO import StringReader, StreamReader, StreamWriter, MemoryStream, SeekOrigin

from System.Threading import Thread

from Spotfire.Dxp.Data import IndexSet

from Spotfire.Dxp.Data import RowSelection

from Spotfire.Dxp.Data import DataValueCursor

from Spotfire.Dxp.Data import DataSelection

from Spotfire.Dxp.Data import DataPropertyClass

from Spotfire.Dxp.Data import Import

from System import DateTime

from System import DateTime, TimeSpan, DayOfWeek

from datetime import date

from System.Net import HttpWebRequest

import time

from Spotfire.Dxp.Data.Import import TextFileDataSource, TextDataReaderSettings

rowCount = Document.Data.Tables['Registrations'].RowCount

rowsToInclude = IndexSet(rowCount,True)

myList = []

#Get a cursor to the two columns we want to use. cursor1 is for the key column and cursor2 is for the column selected by the user input

registration = DataValueCursor.CreateFormatted(Document.Data.Tables['Registrations'].Columns["Registration ID"])

date1 = DataValueCursor.Create[DateTime](Document.Data.Tables['Registrations'].Columns["Date 1"])

date2 = DataValueCursor.Create[DateTime](Document.Data.Tables['Registrations'].Columns["Date 2"])

date3 = DataValueCursor.Create[DateTime](Document.Data.Tables['Registrations'].Columns["Date 3"])

date4 = DataValueCursor.Create[DateTime](Document.Data.Tables['Registrations'].Columns["Date 4"])

date5 = DataValueCursor.Create[DateTime](Document.Data.Tables['Registrations'].Columns["Date 5"])

#get users logon name not prid

#print Thread.CurrentPrincipal.Identity.Name

dataSet = DataSet()

dataTable = DataTable("pattern")

dataTable.Columns.Add("Registration ID", System.String)

dataTable.Columns.Add("Date 1", System.DateTime)

dataTable.Columns.Add("Date 2", System.DateTime)

dataTable.Columns.Add("Date 3", System.DateTime)

dataTable.Columns.Add("Date 4", System.DateTime)

dataTable.Columns.Add("Date 5", System.DateTime)

dataTable.Columns.Add("Sequence", System.String)

dataSet.Tables.Add(dataTable)

for row in Document.Data.Tables['Registrations'].GetRows(rowsToInclude,registration, date1,date2,date3, date4, date5):

dates=dict()

reg = registration.CurrentValue

value1 = date1.CurrentValue

value2 = date2.CurrentValue

value3 = date3.CurrentValue

value4 = date4.CurrentValue

value5 = date5.CurrentValue

dates['date1'] = value1

dates['date2'] = value2

dates['date3'] = value3

dates['date4'] = value4

dates['date5'] = value5

sortedDates = sorted(dates.values())

#print sorted(dates.values())

pattern = ""

for key, value in sorted(dates.iteritems(), key=lambda (k,v): (v,k)):

if str(value) <> '01/01/0001 00:00:00':

print 'Found a zero date'

if key == 'date1':

pattern = pattern + 'd1'

print 'Found a date 1'

if key == 'date2':

pattern = pattern + 'd2'

print 'Found a date 2'

if key == 'date3':

pattern = pattern + 'd3'

print 'Found a date 3'

if key == 'date4':

pattern = pattern + 'd4'

print 'Found a date 4'

if key == 'date5':

pattern = pattern + 'd5'

print 'Found a date 5'

dt = dataTable.NewRow()

dt["Registration ID"] = reg

dt["Date 1"] = value1

dt["Date 2"] = value2

dt["Date 3"] = value3

dt["Date 4"] = value4

dt["Date 5"] = value5

dt["Sequence"] = pattern

dataTable.Rows.Add(dt)

textData = "Registration ID\tDate 1\tDate 2\tDate 3\tDate 4\tDate 5\tSequence\r\n"

for row in dataTable.Rows:

textData += row["Registration ID"] + "\t" + str(row["Date 1"]) + "\t" + str(row["Date 2"]) + "\t" + str(row["Date 3"]) + "\t" + str(row["Date 4"]) + "\t" + str(row["Date 5"]) + "\t" + row["Sequence"] + "\r\n"

print textData

stream = MemoryStream()

writer = StreamWriter(stream)

writer.Write(textData)

writer.Flush()

stream.Seek(0, SeekOrigin.Begin)

readerSettings = TextDataReaderSettings()

readerSettings.Separator = "\t"

readerSettings.AddColumnNameRow(0)

readerSettings.SetDataType(0, DataType.String)

readerSettings.SetDataType(1, DataType.Date)

readerSettings.SetDataType(2, DataType.Date)

readerSettings.SetDataType(3, DataType.Date)

readerSettings.SetDataType(4, DataType.Date)

readerSettings.SetDataType(5, DataType.String)

dSource = TextFileDataSource(stream, readerSettings)

if Document.Data.Tables.Contains("Sequence"):

Document.Data.Tables["Sequence"].ReplaceData(dSource)

else:

newTable = Document.Data.Tables.Add("Sequence", dSource)

tableSettings = DataTableSaveSettings (newTable, False, False)

Document.Data.SaveSettings.DataTableSettings.Add(tableSettings)

python动态生成数据库表_ironpython – 如何通过python在Spotfire中动态创建数据表相关推荐

  1. php怎么创建表命令行,laravel使用命令行结合代码创建数据表的方法

    laravel使用命令行结合代码创建数据表的方法 发布时间:2021-01-19 10:12:17 来源:亿速云 阅读:91 作者:小新 这篇文章主要介绍laravel使用命令行结合代码创建数据表的方 ...

  2. mysql创建数据库schooldb_MySQL 创建数据表

    MySQL 创建数据表 创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段 语法 以下为创建MySQL数据表的SQL通用语法: CREATE TABLE table_name (col ...

  3. android手动创建数据表,Android开发—数据库应用—手动创建(SQLite)数据库--手动创建数据表(table)...

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:数据库应用-手 ...

  4. mysql创建数据表列子,MySQL 创建数据库及简单增删改查

    MySQL 创建数据库及简单增删改查 我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下: CREATE DATABASE 数据库名; 登入: Enter passwor ...

  5. 【sequoiadb|巨杉数据库】创建数据表

    [sequoiadb|巨杉数据库]创建数据库实例 用户可以使用CREATE TABLE <TABLE_NAME>(<COLUMN_NAME> <COLUMN_TYPE&g ...

  6. xampp mysql创建表_xampp怎样创建数据表和删除数据表 来学习吧

    xampp新建好数据库之后,怎样新建数据表呢?今天咪咪我就来讲解一下xampp中怎样创建数据表和删除数据表. 工具/材料 电脑 电脑 xampp 操作方法 01 如图,单击选中已经创建好的数据库. 0 ...

  7. MySQL(10)--- 创建数据表

    MySQL 创建数据表 创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段 语法 以下为创建MySQL数据表的SQL通用语法: CREATE TABLE table_name (col ...

  8. sql数据表改为自动递增显示与其他表关联_MySQL萌新第一季 第四话-数据表的基本操作...

    本话旨在完成以下内容: 在数据库中,数据表是数据库中最重要和基本的操作对象,是数据存储的基本单位.换句话说我们操作数据库其实重要的就是操作数据表.本章将详细介绍数据表的基本操作,主要内容包括:创建数据 ...

  9. mysql创建表设置数值范围,MySQL创建数据表时设定引擎MyISAM/InnoDB操作

    我在配置mysql时将配置文件中的默认存储引擎设定为了innodb.今天查看了myisam与innodb的区别,在该文中的第七条"myisam支持gis数据,innodb不支持.即myisa ...

  10. mysqlinnodb教程_MySQL创建数据表时设定引擎MyISAM/InnoDB操作

    我在配置mysql时将配置文件中的默认存储引擎设定为了InnoDB.今天查看了MyISAM与InnoDB的区别,在该文中的第七条"MyISAM支持GIS数据,InnoDB不支持.即MyISA ...

最新文章

  1. excel2007无法加载mysql_Excel2007中进行无法安装加载项的解决方法
  2. Vue route部分简单高级用法
  3. 业界 | 5个步骤开启你的数据科学职业生涯!(附链接)
  4. 最详细的创建虚拟机_创建_安装配置_配置启动向导
  5. linux使进程不依赖终端,Linux nohup命令应用简介--让Linux的进程不受终端影响
  6. Natasha 4.0 探索之路系列(四) 模板 API
  7. [UiAutomator] UiSelector中使用instance与index方法定位控件的区别
  8. 项目启动过后,停在了加载mapper xml文件过程中
  9. php 数组导出csv_php导出百万数据到csv
  10. pyqt5 界面切换
  11. Java多线程核心技术
  12. 数据重塑_人工智能能否重塑全球力量平衡?
  13. CSS基础及常用的一些标签
  14. mysql 查询附近店铺SQL写法 经度 纬度 范围 距离
  15. 2019上半年软件设计师考试体会
  16. 华为S5700交换机通过命令开启snmp功能
  17. 高等数学(第七版)同济大学 习题7-2 个人解答
  18. SpringBoot整合RabbitMQ之整合配置篇
  19. 解决浏览器加载缓存js文件不能及时获取服务器更新后js文件问题
  20. 全球及中国足病鞋垫行业销售情况及营销渠道策略报告(2022-2027年)

热门文章

  1. 三星mega2 android os,三星G7508Q (Galaxy Mega 2 双4G)一键救砖教程,轻松刷回官方系统...
  2. VMware Workstation 10.0.7 安装
  3. 如何选择好的健身房管理系统而且还不收费
  4. 品质qc工程图_QC工程图 (品管)
  5. C语言运算符使用错误【持续更新】
  6. 玩转树莓派——游戏主机模拟器
  7. vbs文件放在java工程中如何调用_VBS教程:在 VBScript 中使用对象
  8. 在Linux下实现一个使用键盘控制的虚拟鼠标
  9. ubuntu16 安装 teamview 步骤
  10. 【过关斩将般的一步步实现】windows本机通过xftp/xshell连接Ubuntu虚拟机服务器