使用excellibrary以共享模式打开文件

使用excellibrary以共享模式打开文件,excel,file,fileshare,excellibrary,Excel,File,Fileshare,Excellibrary,我正在使用excellibrary处理excel文件。 现在打开我正在使用的文件 ef = Workbook.Load(file) 但当我尝试访问该文件时,如果该文件在另一个应用程序中的其他位置打开,则会收到以下消息: 进程无法访问文件“\OFFICE\MyDocumentsWD\VB2010\Projects\Excel文件检查器\Excel文件检查器\Test1.xls”,因为其他进程正在使用该文件 我知道在使用streamreader时,您可以使用fileshare选项,我想知道在使用e

我正在使用excellibrary处理excel文件。 现在打开我正在使用的文件

ef = Workbook.Load(file)
但当我尝试访问该文件时,如果该文件在另一个应用程序中的其他位置打开,则会收到以下消息:

进程无法访问文件“\OFFICE\MyDocumentsWD\VB2010\Projects\Excel文件检查器\Excel文件检查器\Test1.xls”,因为其他进程正在使用该文件


我知道在使用streamreader时,您可以使用fileshare选项,我想知道在使用excellibrary时是否有类似的选项?或者是否有解决方法来实现同样的功能?

工作簿支持流,因此您有两个选项

我认为您应该将文件打开到内存流中,然后使用如下内容从该内存流加载:

MemoryStream memory = new MemoryStream(file);
ef = Workbook.Load(memory);
FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read);
ef = Workbook.Load(fileStream);
或者,您应该能够使用如下文件流加载文件:

MemoryStream memory = new MemoryStream(file);
ef = Workbook.Load(memory);
FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read);
ef = Workbook.Load(fileStream);