# Script that exports a file from client (not webplayer)
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
# GETS THE FILE PATH FROM THE USER THROUGH A FILE DIALOG
SaveFile = SaveFileDialog()
SaveFile.Filter = "Spotfire Text Data Format (*.xlsx)|*.xls"
SaveFile.ShowDialog()
for vis in Application.Document.ActivePageReference.Visuals:
if vis.Title == "ExportKPI" :
vizTable = vis.As[TablePlot]()
if SaveFile.FileName=="":
# user does not select a file (cancel button)
saveFilename = ""
else:
saveFilename = SaveFile.FileName
print "saveFilename=", saveFilename
# Export Table data to the file
try:
stream = FileStream(saveFilename, FileMode.Create)
vizTable.ExportData(DataWriterTypeIdentifiers.ExcelXlsxDataWriter, stream)
#vizTable.As[TablePlot]().ExportData(DataWriterTypeIdentifiers.StdfDataWriter, stream)
print "stream.Length = ", stream.Length
finally:
stream.Dispose()
ConversionConversion EmoticonEmoticon