Откройте файл Excel в эксклюзивном режиме с помощью взаимодействия в C # - PullRequest
3 голосов
/ 25 марта 2012

В моем приложении я хочу иметь возможность открыть файл Excel, который уже существует, и добавить информацию в этот файл. Я использую библиотеки Microsoft Interop. Я заметил, что если вы создаете новую электронную таблицу, используя Add, а затем Saveas, вы можете установить файл в эксклюзивный режим, пока не закроете приложение Excel.

Однако я не нашел способа сделать то же самое при открытии существующего файла. Причина, по которой я хочу это сделать, заключается в том, что, если я открою файл excel, когда мое приложение открыто, я получу исключение. Я предполагаю, что когда я открываю файл Excel с помощью Excel, он автоматически открывается в эксклюзивном режиме.

Я хотя бы открыл файл и затем использовал saveas, но это не сработало.

private object missing=Type.Missing;
workbook = workbooks.Open(excelfilename,missing, false, missing, missing, missing,missing,missing,missing,missing,false, missing,missing, missing, missing);
workbook.SaveAs((String)excelfilename, missing, missing, missing, missing, missing, Excel.XlSaveAsAccessMode.xlExclusive, Excel.XlSaveConflictResolution.xlLocalSessionChanges, missing, missing, missing, missing); 

Я получаю исключение позже в коде:

Excel.Range testrange = sheet.get_Range(rangetext);

Исключением, которое я получаю, является COMException, "Exception from HRESULT: 0x800401A8".

Ответы [ 2 ]

0 голосов
/ 28 марта 2012

Вы можете перейти к этой статье для полного примера того, как открыть файл Excel / добавить новый лист / получить диапазон и установить свойства использование библиотеки взаимодействия Microsoft

0 голосов
/ 25 марта 2012

Посмотрите на свойство ExclusiveAccess класса Workbook: http://msdn.microsoft.com/en-US/library/microsoft.office.tools.excel.workbook.exclusiveaccess(v=vs.80).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...