限制对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执行此操作。