【问题标题】:How to protect sheets using C# interop but allowing selection如何使用 C# 互操作保护工作表但允许选择
【发布时间】:2017-10-19 15:58:37
【问题描述】:

我目前正在使用以下选项来保护工作表。

dataWorksheet.Protect(result.protectionPassword.ToString(), false, true, false, false, true, true, true, false, false, false, false, false, false, true, true);

上述选项保护工作表,不允许选择受保护的工作表。

但是,当从另一张表中引用单元格值时,这种保护很不方便,所以我想保护内容(值)但允许选择单元格。

所以我在 Excel 上记录了宏,那里的选项是 DrawingObjects:true, contents:true, scenarios:true。我已经尝试过这种选项组合,但没有成功。

以下是 interop protect 方法的文档。

https://msdn.microsoft.com/en-us/vba/excel-vba/articles/worksheet-protect-method-excel

如何以可以选择但不能篡改值的方式保护工作表?

【问题讨论】:

    标签: c# excel


    【解决方案1】:

    xls 文件格式的唯一工作表保护选项是工作表对象 (DrawingObjects:true)、单元格内容 (contents:true) 和场景 (scenarios:true)。

    xlsx 文件格式的工作表保护选项更加灵活,还包括您需要的单元格选择选项。

    Worksheet.Protect 方法似乎包括一些可用于 xlsx 文件格式的保护选项,但不包括单元格的选择。

    很可能,您需要切换到 XLSX 文件格式并使用与 Interop 不同的库来创建 Excel 文件。

    默认行为是允许单元格选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-14
      • 1970-01-01
      • 2013-07-25
      • 1970-01-01
      • 2019-04-28
      • 2015-11-03
      • 2011-07-26
      相关资源
      最近更新 更多