В моем приложении я хочу иметь возможность открыть файл 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".