如何在不锁定的情况下打开Excel文件?

Rac*_*hel 3 c# excel interop

我有一个构建Excel报告的过程,然后为用户打开它.问题是如果有人将文件保持打开状态,它会保持锁定状态,并且在第一个人退出excel文件之前,没有其他人可以构建报告.

有没有办法打开Excel文件而不使用它Process.Start或Microsoft的Interop.Excel库锁定它?

我每次运行报表时都使用Interop库来构建文件,并将其作为静态文件名保存在运行此应用程序的共享网络文件夹中

using Excel = Microsoft.Office.Interop.Excel;

...

xlsBook.SaveAs(newFileName, Excel.XlFileFormat.xlWorkbookNormal);
Run Code Online (Sandbox Code Playgroud)

并使用打开文件 Process.Start

Process.Start(newFileName);
Run Code Online (Sandbox Code Playgroud)

Oli*_*ver 8

您可以尝试以只读模式打开文件:

var app = new Microsoft.Office.Interop.Excel.Application();
var workbook = app.Workbooks.Open(filename, ReadOnly: true);
Run Code Online (Sandbox Code Playgroud)

或者您可以尝试以共享模式保存它:

workbook.SaveAs(filename, AccessMode: XlSaveAsAccessMode.xlShared);
Run Code Online (Sandbox Code Playgroud)