Откройте файл в режиме общего доступа, используя excellibrary

Я использую excellibrary для обработки файлов Excel. Прямо сейчас, чтобы открыть файл, который я использую

ef = Workbook.Load(file)

Но если этот файл открыт где-то еще в другом приложении, когда я пытаюсь получить к нему доступ, я получаю сообщение:

Процесс не может получить доступ к файлу «\OFFICE\MyDocumentsWD\VB2010\Projects\Excel File Checker\Excel File Checker\Test1.xls», так как он используется другим процессом.

Я знаю, что при использовании streamreader вы можете использовать опцию общего доступа к файлам, и мне интересно, есть ли аналогичная опция при работе с excellibrary? Или есть обходной путь для достижения того же?


person user2824519    schedule 11.05.2014    source источник


Ответы (1)


Workbook поддерживает потоки, поэтому у вас есть несколько вариантов.

Я думаю, вы должны открыть файл в потоке памяти, а затем загрузить из этого потока памяти что-то вроде этого:

MemoryStream memory = new MemoryStream(file);
ef = Workbook.Load(memory);

В качестве альтернативы вы должны иметь возможность загрузить файл, используя файловый поток следующим образом:

FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read);
ef = Workbook.Load(fileStream);
person Graymatter    schedule 11.05.2014