Я пытаюсь выяснить, можно ли программно вызвать пункт меню " Экспорт таблицы ", который появляется, когда пользователь щелкает правой кнопкой мыши визуализацию таблицы в WebPlayer.
Причина, по которой я пытаюсь это сделать, заключается в том, что я пытаюсь разработать расширение CustomTool C # для загрузки данных, которые в настоящее время отображаются на карте . Для этого текущая реализация преобразует диаграмму Map в таблицу, чтобы я мог вызвать ее метод ExportData. Однако этот метод требует FileStream, который требует путь. Если я использую текущую реализацию, логика пытается сохранить полученный файл на сервере WebPlayer, а не передавать его в браузер пользователя.
Так что я думаю, есть ли способ выполнить пункт контекстного меню «Экспорт таблицы», который уже встроен в Spotfire WebPlayer из кода. Этот метод загружает полученный файл Excel для пользователя (т. Е. Обычное поведение загрузки из браузера)
Текущий фрагмент кода в моем CustomTool:
protected override void ExecuteCore(VisualContent map)
{
map.Transactions.BeginAggregatedTransaction();
var doc = map.Context.GetAncestor<Document>();
AggregatedTransactionHandle transaction = doc.Transactions.BeginAggregatedTransaction();
doc.Transactions.ExecuteTransaction(delegate
{
var visual = map.Visual;
visual.TypeId = VisualTypeIdentifiers.Table;
var table = visual.As<TablePlot>();
var dm = doc.Data.Markings.DefaultMarkingReference;
table.Data.Filterings.Add(dm);
var pathWithEnv = @"%UserProfile%\Desktop\ExportData.xls";
var filePath = Environment.ExpandEnvironmentVariables(pathWithEnv);
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
using (FileStream stream = File.Open(filePath, FileMode.Create))
{
table.ExportData(DataWriterTypeIdentifiers.ExcelXlsDataWriter, stream);
}
});
transaction.Rollback();
}