如何打开Excel文件而不locking它?
我有一个构buildExcel报表的stream程,然后为用户打开。 问题是,如果有人将文件打开,它将保持locking状态,并且只有第一个人退出Excel文件时,其他人才能构build报表。
有没有办法打开一个Excel文件而不locking它,使用Process.Start
或Microsoft的Interop.Excel
库?
每次运行报表时,我都使用Interop库来构build文件,并将其作为静态文件名保存在运行此应用程序的共享networking文件夹中
using Excel = Microsoft.Office.Interop.Excel; ... xlsBook.SaveAs(newFileName, Excel.XlFileFormat.xlWorkbookNormal);
然后使用Process.Start
打开文件
Process.Start(newFileName);
您可以尝试以只读模式打开文件:
var app = new Microsoft.Office.Interop.Excel.Application(); var workbook = app.Workbooks.Open(filename, ReadOnly: true);
或者您可以尝试将其保存为共享模式:
workbook.SaveAs(filename, AccessMode: XlSaveAsAccessMode.xlShared);
如果最终用户只需要读取文件而不是修改文件,则可以创build卷影副本,然后打开该副本。
只需将原始文件复制到临时位置,然后从那里打开。 原始文件保持不变,因此可以被其他人打开。