限制对C#程序打开的excel文件的访问

问题1:

我已经打开了一个excel文件

Excel.Application app = new Excel.ApplicationClass(); Excel.Workbook Wbook = app.Workbooks.Open("aaa.xlsx",...); 

现在,我想停止其他程序访问“aaa.xlsx”。 (想要限制像excel.exe等其他程序访问)

有没有我可以设置locking/阻止/限制文件打开的选项?

问题2:

自从我做了这个

 Excel.Application app = new Excel.ApplicationClass(); 

我创build了一个新的Excel实例。 我想隐藏它从外部使用。 (我不希望在系统上双击某个随机excel文件时popup。)

有什么我可以做,以防止它被自动调用?

任何帮助将非常感激。

这些应该是单独的问题,但我会尝试。

另外,警告emptor:我已经触摸了Office自动化已经有一段时间了,没有文档,所以我要离开内存。

Excel.Application对象应该有一个Visible属性。 将其设置为false以隐藏应用程序。

至于打开文档,检查文档,看是否有任何参数,如“FileAccess”。 我记不得手了,但我会继续寻找…

编辑:好的,我在MSDN上find了文档,但似乎没有任何方法可以指定Excel在文档打开时locking文档。 抱歉。

一个难看的解决scheme,但你可以做到这一点:

打开并locking文件。 将其复制到临时位置,将该临时文件加载到您的隐藏窗口中。 保存后将其复制回原始位置。 请注意,这两个副本将不得不在您的程序中执行,因为locking将阻止Windows执行此操作。