} // func RefreshTableAsync internal async Task RefreshTableAsync(Excel.ListObject _xlList, bool refreshLayout) { using (var progress = CreateProgress()) { var xlList = Globals.Factory.GetVstoObject(_xlList); progress.Report(String.Format("Aktualisiere {0}...", xlList.Name ?? "Tabelle")); if (PpsListObject.TryGet(FindEnvironment, xlList, out var ppsList)) { await ppsList.RefreshAsync(refreshLayout?PpsXlRefreshList.Style : PpsXlRefreshList.None, PpsMenu.IsSingleLineModeToggle(), null); } else { //if (refreshColumnLayout) // ; switch (xlList.SourceType) { case Excel.XlListObjectSourceType.xlSrcQuery: case Excel.XlListObjectSourceType.xlSrcXml: try { xlList.Refresh(); } catch (COMException) { } break; } } } } // func RefreshTableAsync
} // proc InsertReport private static void InsertTable() { if (PpsListObject.TryGetFromSelection(out var ppsList)) // edit the current selected table { ppsList.Edit(); } else // create a fresh table { var env = Globals.ThisAddIn.CurrentEnvironment; // get environment if (env != null) { PpsListObject.New(env, GetTopLeftCell()); } } } // proc InsertTable
} // func GetActiveXlObjects /// <summary>Create Table</summary> /// <param name="environment"></param> /// <param name="range"></param> /// <param name="reportId"></param> /// <param name="reportName"></param> internal async Task ImportTableAsync(PpsEnvironment environment, Excel.Range range, string reportId, string reportName) { GetActiveXlObjects(out var worksheet, out var workbook); // prepare target if (range == null) { range = Globals.ThisAddIn.Application.Selection; } if (range is null) { throw new ExcelException("Keine Tabellen-Ziel (Range) definiert."); } if (range.ListObject != null) { throw new ExcelException("Tabelle darf nicht innerhalb einer anderen Tabelle eingefügt werden."); } using (var progress = CreateProgress()) { progress.Report(String.Format("Importiere '{0}'...", reportName)); await PpsListObject.NewAsync(environment, range, reportId); } } // func ImportTableAsync