如何使用C#interop保护表单,但允许select

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

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

上述选项保护表单,不允许select受保护的表单。

然而,这种保护是不方便的,当从另一个表单元值,所以我想保护内容(值),但允许select单元格。

所以我在Excel上logging了这个macros,并在那里显示了DrawingObjects:true, contents:true, scenarios:true 。 我已经尝试了这个选项的组合,但没有成功。

以下是互操作protect方法的文档。

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

我怎样才能保护工作表的方式可以select,但价值观不能被篡改?

xls文件格式的唯一表单保护选项是针对表单对象(DrawingObjects:true),单元格内容(内容:true)和scheme(scheme:true)。

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

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

最有可能的是,您需要切换到XLSX文件格式并使用与Interop不同的库来创buildExcel文件。

默认行为是允许单元格select。