Так что я думаю, что ваша проблема в Workbooks.Add ().Посмотрите, что Microsoft говорит по этому поводу:
[Workbooks.Add ()] Определяет, как создается новая книга.Если этот аргумент является строкой, указывающей имя существующего файла Microsoft Excel, новая книга создается с указанным файлом в качестве шаблона.
Я считаю, что создаваемая вами книга является копиейвсего, что имеет сервер sharepoint, включая разрешения.Тот факт, что он работает локально, является еще одним признаком того, что sharepoint может возиться с разрешениями.
Я предлагаю попробовать сохранить копию файла локально.Вы даже можете использовать объект SaveFileDialog
, чтобы предоставить пользователю графический интерфейс для сохранения его новой копии.
SaveFileDialog userSaveFileDialog = new SaveFileDialog();
userSaveFileDialog.Filter = "Excel 2007 and later | *.xlsx, Excel Macro Enabled Worksheet | *.xlsm, I'm guessing this is a 2007 template | *.xltx, Template Macro maybe | *.xltm, I almost definitely think this is a template file | *.xlt";
userSaveFileDialog.Title = "Save an Excel File";
userSaveFileDialog.ShowDialog();
this.Application.ActiveWorkbook.SaveCopyAs(@userSaveFileDialog.FileName);
Как только вы закончите, вы можете программно открыть вновь сохраненную книгу, используя userSaveFileDialog.FileName
в качестве пути к файлу.