public static IWorkbook OpenWorkbookWithRetry(string path, bool closeThenReopen = false, bool readOnly = true) { var workbook = GetAlreadyOpenedWorkbook(path); if (workbook != null && !closeThenReopen) { return(workbook); } PerformOperationWithRecovery.PerformOperation(() => { workbook?.Close(); try { var xlWorkbook = ExcelApplication.Workbooks.Open(path, readOnly); workbook = new WorkbookProxy(xlWorkbook); } catch (Exception) { throw new ApplicationException($"Failed to open workbook=\"{path}\""); } }); return(workbook); }
public static IWorkbook GetWorkbook(string workbookName, string path) { IWorkbook workbook = null; PerformOperationWithRecovery.PerformOperation(() => { ExcelApplication.Workbooks.Open(path, ReadOnly: true); try { workbook = new WorkbookProxy(ExcelApplication.Workbooks.Open(path, ReadOnly: true)); } catch (Exception) { throw new ApplicationException($"Failed to open workbook={workbookName} path=\"{path}\""); } }); return(workbook); }