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

时间:2010-07-28 03:23:23

标签: c# excel

问题1:

我用

打开了一个excel文件
Excel.Application app = new Excel.ApplicationClass();
Excel.Workbook Wbook = app.Workbooks.Open("aaa.xlsx",...);

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

我可以设置锁定/阻止/限制文件打开的选项吗?

问题2:

因为我已经完成了这个

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

我已经创建了一个新的excel实例。 我想隐藏它不受外部使用。 (当我在系统上双击一些随机excel文件时,我不希望它弹出。)

我能做些什么来防止它被自动调出?

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

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

另外,请注意:自从我触及Office Automation并且没有方便的文档以来已经有一段时间了,所以我要离开记忆。

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

至于打开文档,请检查文档以查看是否存在“FileAccess”之类的参数。我不记得了,但我会继续寻找......

编辑:好的,我在MSDN上找到了文档,但似乎没有任何方法可以指定Excel在文档打开时应该锁定文档。遗憾。

答案 1 :(得分:0)

一个丑陋的解决方案,但你可以做到:

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