Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }