在IWorksheetin Spreadsheetgear上使用ProtectContents

我有一个工作簿对象,我在某些单元格中使用Excel公式。 我正在编程设置IWorksheet对象上的ProtectContents的值,以打开和closures这些单元格的只读模式。

1.当ProtectContents的值设置为true时,我发现所有的单元格都是按照预期的只读模式,但是单元格(使用excel公式)的值显示为#NAME?。这就是它在Spreadsheetgear ?

2.当ProtectContents设置为false时,我看到所有使用公式的单元格仍显示为#NAME的值? 但他们是可以编辑如预期的。但不知道为什么这些单元格值没有得到评估?

请指教。

谢谢你的帮助。

#NAME之间不应该有任何关联? 错误和工作表保护的状态。 #名称? 错误可能会由于多种原因而发生,但没有关于您的具体情况的更多细节,不可能说出为什么您会看到这一点。

您可能在SpreadsheetGear中看到这一点的一个常见原因(我假设不在Excel本身中)是因为这些有问题的单元格中的公式直接或间接地依赖于工作簿的VBA部分中的用户定义函数(UDF)外部XLL加载项等.SpreadsheetGear不支持通过VBA或XLL执行UDF,因此这样的函数将计算为#NAME ?.

SpreadsheetGear支持通过SpreadsheetGear.CustomFunctions在.NET应用程序中实现自己的自定义函数。 函数类及其Evaluate (…)方法。 如果你发现上述原因,你可以实现你自己的函数来正确计算这些单元格。 我会提供示例代码,但是我首先要提到这个问题,因为它是潜在的原因。 更新你的问题更具体的,我可以根据需要更新我的相应。