C# - 以编程方式在受保护模式

时间:2016-02-23 09:41:31

标签: c# excel protected-mode

默认情况下,我们从服务器生成的.xlsx文件将在用户计算机上的保护模式下打开。在该模式下,我注意到许多带有公式的单元格将不会被激活,因此这些单元格上不会显示任何内容。编辑模式下一切正常。所以我想询问是否有任何方法以编程方式允许单元格公式在保护模式下工作? 我的开发环境是MVC4,我使用ExcelCreator 8.0生成excel文件。

*编辑:我主要关心的是用公式显示单元格的值。它们只是一些简单的SUM()公式。我注意到,当第一次打开文件时,这些单元格是空白的。但是当我第一次切换到编辑模式而没有编辑时,立即保存文件,然后在保护模式下打开它时,这些单元格会显示一些值。那么我们至少可以编程来保存这些值而无需先在编辑模式下打开吗?

1 个答案:

答案 0 :(得分:2)

保护模式可防止在Excel中(重新)计算公式。有两种可能的解决方案:

  • 禁用保护模式:这肯定是,因为它会在客户端上打开一个巨大的攻击面。此外,它可能超出你能控制的范围。
  • 预先计算公式结果:生成电子表格服务器端时,可以预先计算公式的结果并使用结果填充单元格。这样,即使在受保护的视图中打开文档,Excel也会显示正确的值。如果自己计算公式过于复杂,使用Excel Services可能是另一个,但代价很高的选项。
相关问题