Открыть файл в режиме общего доступа, используя отлично
Я использую Excellibrary для обработки файлов Excel. Прямо сейчас, чтобы открыть файл, который я использую
ef = Workbook.Load(file)
Но если этот файл открывается где-то еще в другом приложении, когда я пытаюсь получить к нему доступ, я получаю сообщение:
Процесс не может получить доступ к файлу '\OFFICE\MyDocumentsWD\VB2010\Projects\Excel File Checker\Excel File Checker\Test1.xls', так как он используется другим процессом.
Я знаю, что при использовании Streamreader вы можете использовать опцию fileshare, и мне интересно, есть ли подобная опция при работе с Excellibrary? Или есть обходной путь для достижения того же?
1 ответ
Рабочая книга поддерживает потоки, поэтому у вас есть несколько вариантов.
Я думаю, что вы должны открыть файл в поток памяти, а затем загрузить из этого потока памяти что-то вроде этого:
MemoryStream memory = new MemoryStream(file);
ef = Workbook.Load(memory);
В качестве альтернативы вы можете загрузить файл, используя поток файлов, например так:
FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read);
ef = Workbook.Load(fileStream);