IronPython脚本帮助 - 在SPotfire中将交叉表导出到Excel

时间:2016-10-10 16:16:19

标签: export-to-excel ironpython spotfire

我是IronPython的新手并尝试使用以下代码将我的交叉表从Spotfire导出到excel。

如何修改此脚本以包含定义vizTable?

import System
from System.IO import FileStream, FileMode
from Spotfire.Dxp.Application.Visuals import TablePlot
from  Spotfire.Dxp.Data.Export import DataWriterTypeIdentifiers
import clr
clr.AddReference("System.Windows.Forms")
from System.Windows.Forms import SaveFileDialog  
SaveFile = SaveFileDialog()   #GETS THE FILE PATH FROM THE USER THROUGH A FILEDIALOG
SaveFile.Filter = "xls Format (*.xls)|*.xlsx|*.xls|*.xlsx"
SaveFile.ShowDialog()
saveFilename = SaveFile.FileName
print "saveFilename=", saveFilename
stream = FileStream(saveFilename, FileMode.Create) #Export Table data to the file
vizTable.As[exportWellHeader]().ExportData(DataWriterTypeIdentifiers.ExcelXlsxDataWriter, stream)
stream.Dispose()

我一直收到以下错误。我设置了一个脚本参数,但不知道在哪里加入脚本。

错误讯息:

  

saveFilename = C:\ Users \ D565046 \ Desktop \ test 3.xlsx
  追溯(最近的呼叫最后):
  文件" Spotfire.Dxp.Application.ScriptSupport",行未知,在ExecuteForDebugging中   文件"< string>",第14行,在< module>中   NameError:name' vizTable'未定义

     

Microsoft.Scripting.Runtime.UnboundNameException:name' vizTable'未定义
     at IronPython.Runtime.PythonContext.MissingName(SymbolId name)
     在Microsoft.Scripting.Runtime.LanguageContext.LookupName(CodeContext上下文,SymbolId名称)
     $ 456 ## 456(关闭,范围,语言上下文)
     at Spotfire.Dxp.Application.ScriptSupport.IronPythonScriptEngine.ExecuteForDebugging(String scriptCode,Dictionary`2 scope,Stream outputStream)

enter image description here

1 个答案:

答案 0 :(得分:1)

我相信这里发生了两件事。 1)vizTable应该在"脚本参数中定义"脚本下方的区域,与exportWellHeader完全相同,并引用要导出的可视化(交叉表)。 2)我认为第14行不正确,你不应该有exportWellHeader之类的东西。我认为它应该更像是: vizTable.As[CrossTablePlot]().ExportText(DataWriterTypeIdentifiers.ExcelXlsxDataWriter, stream)

来源:http://easyspotfire.blogspot.com/2014/11/export-cross-table-visualization-to-file.html

请注意,在引用的链接中,脚本作者将数据导出到文本文件,而不是Excel文件。