【问题标题】:How to open Excel file with Read Only protection?如何打开具有只读保护的 Excel 文件?
【发布时间】:2012-01-18 07:33:34
【问题描述】:

我已经在我的 C# WinForm 应用程序中打开了 Excel 文件,添加了对 Microsoft.Office.Interop.Excel.dll 的引用并使用了 DSO FRAMER CONTROL。但我想用只读保护打开我的 excel 文件。我已经成功地为这样的 WORD 应用程序做到了这一点

Word.Document wordDoc = (Word.Document)axFramerControl1.ActiveDocument;
Word.Application wordApp = wordDoc.Application;
wordDoc.Protect(Word.WdProtectionType.wdAllowOnlyReading);

同样,我想为 Excel 做这项工作。但我无法以这种方式保护 Excel 文件。

string path = "C:\\test-wb.xlsx";
axFramerControl1.Open(path, true,"excel.sheet", "", "");

Excel._Workbook excelDoc   =(Microsoft.Office.Interop.Excel._Workbook)axFramerControl1.ActiveDocument;
Excel.Application excelApp =excelDoc.Application;
//What code should i write to protect Excel Workbook with read - only.
excelDoc.Protect(misval, true, misval);//It is not working.

【问题讨论】:

    标签: c# winforms excel vsto office-interop


    【解决方案1】:

    使用第三个参数调用Open方法(ReadOnly) = true

    参见 MSDN documentation

    只读
    可选对象。 True 以只读模式打开工作簿。

    【讨论】:

    • :谢谢gdoron。你能告诉我应该在我的问题中提到的上述代码中的哪里给出那个参数吗?
    • @Saravanan。根据 MSDN,您应该使用第三个参数打开。您使用哪个 .Net 框架? .Net 4?
    • 这对我有帮助。但是,我只是将密码添加为 Open 方法的第 6 个参数。
    【解决方案2】:

    WorkBook 类有一个 Protect 方法,与 Word 支持的方法类似(但不相同)。我找不到 COM/interop 文档,但 VSTO 文档涵盖了相同的基础,并且方法签名相同:

    Protect

    保护工作簿使其无法修改。

    public virtual void Protect (
        [OptionalAttribute] Object Password,
        [OptionalAttribute] Object Structure,
        [OptionalAttribute] Object Windows
    )
    

    (这一切都假设您想要实现的是保护文档,因为这是 Word 代码所做的,而不是只读打开文档,这就是您的叙述似乎在说的,在这种情况下, @gdoron's answer比较合适

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-29
      • 2019-07-19
      • 2021-01-17
      • 1970-01-01
      • 1970-01-01
      • 2019-08-31
      • 2013-10-27
      相关资源
      最近更新 更多