#export-to-excel #ironpython #spotfire
#экспорт в Excel #ironpython #spotfire
Вопрос:
Я новичок в IronPython и пытаюсь использовать приведенный ниже код для экспорта моей перекрестной таблицы из Spotfire в Excel.
Как мне изменить этот скрипт, чтобы включить определение таблицы просмотра?
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:UsersD565046Desktoptest 3.xlsx
Трассировка (последний последний вызов):
Файл «Spotfire.Dxp.Application.ScriptSupport», строка неизвестна, в
файле ExecuteForDebugging «<string>», строка 14, в <module
> Ошибка имени: имя ‘vizTable’ не определеноMicrosoft.Scripting.Время выполнения.Исключение UnboundNameException: имя ‘vizTable’ не определено
в IronPython.Время выполнения.PythonContext.MissingName(SymbolId name)
в Microsoft.Scripting.Время выполнения.LanguageContext.Имя поиска (контекст CodeContext, имя SymbolId)
в $ 456 # # 456 (закрытие, область видимости, LanguageContext)
в Spotfire.Dxp.Application.Поддержка сценариев.IronPythonScriptEngine.ExecuteForDebugging(String scriptCode, Dictionary`2 scope, Stream OutputStream)
Ответ №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.
Комментарии:
1. Спасибо за помощь, но я все еще получаю сообщение об ошибке ниже, когда я заменил строку, она все равно выдала мне сообщение об ошибке ниже. Есть предложения? SaveFilename = C:UsersDesktoprf.xlsx Трассировка (последний последний вызов): Файл «Spotfire.Dxp.Application. ScriptSupport», строка неизвестна, в файле ExecuteForDebugging «<string>», строка 14, в <module> Ошибка имени: имя ‘vizTable’ не определено Microsoft.Scripting. Время выполнения. Исключение UnboundNameException: имя ‘vizTable’ равно
2. Привет, вы включили ‘vizTable’ в качестве параметра скрипта? Ошибка, похоже, говорит о том, что vizTable не определен. Можно ли обновить ваш пост новым скриншотом?