【问题标题】:Restrict access to excel file opened by C# program限制对C#程序打开的excel文件的访问
【发布时间】:2010-07-28 11:53:25
【问题描述】:

问题一:

我用

打开了一个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文件时弹出它。)

我可以做些什么来防止它被自动调用吗?

任何帮助将不胜感激。

【问题讨论】:

    标签: c# excel


    【解决方案1】:

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

    另外,请注意:我已经有一段时间没有接触 Office 自动化并且手边没有文档,所以我要记错了。

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

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

    编辑:好的,我在 MSDN 上找到了文档,但似乎没有任何方法可以指定 Excel 在文档打开时将其锁定。对不起。

    【讨论】:

    • 我在想一定有什么东西可以支持这一点,但到目前为止还没有。无论如何,感谢您的努力。
    【解决方案2】:

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

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

    【讨论】:

    • hrm .. 是的,我对如何做到这一点有点想法,所以我会考虑你的建议。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-01-31
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 2019-03-08
    • 2013-01-04
    • 1970-01-01
    • 2014-05-01
    相关资源
    最近更新 更多