public ExcelDoc TryOpenDoc(string path, bool readOnly) { Workbook doc = null; try { if (App == null) { throw new Exception($"Не удалось открыть документ {path} приложение не запущено"); } if (!readOnly && IsDocumentOpen(path)) { throw new Exception($"Документ уже редактируется {path}"); } TryPath = path; doc = App.Workbooks.Open(path, Type.Missing, readOnly); ExcelDoc d = new ExcelDoc(path, this, doc, readOnly); Docs.Add(d); TryPath = null; return(d); } catch (Exception e) { doc?.Close(false); TryPath = null; return(null); } }
public ExcelDoc CreateDoc(string path, bool overwrite) { try { if (App == null) { throw new Exception($"Не удалось создать документ {path} приложение не запущено"); } if (IsDocumentOpen(path)) { throw new Exception($"Документ уже редактируется {path}"); } if (File.Exists(path)) { if (overwrite) { File.Delete(path); } else { throw new Exception($"Документ уже существует {path}"); } } TryPath = path; object opath = path; Workbook doc = App.Workbooks.Add(); if (Templates.Static.GetDoubleInString(App.Version, false) > 13) { doc.SaveAs(opath, XlFileFormat.xlOpenXMLWorkbook, Missing.Value, Missing.Value, false, false, XlSaveAsAccessMode.xlNoChange, XlSaveConflictResolution.xlUserResolution, true, Missing.Value, Missing.Value, Missing.Value); } else { doc.SaveAs(opath, XlFileFormat.xlExcel8, Missing.Value, Missing.Value, false, false, XlSaveAsAccessMode.xlNoChange, XlSaveConflictResolution.xlUserResolution, true, Missing.Value, Missing.Value, Missing.Value); } ExcelDoc d = new ExcelDoc(path, this, doc, false); Docs.Add(d); TryPath = null; return(d); } catch (Exception e) { Close(); throw new Exception($"Не удалось создать документ {path} ", e); } }