我生成了一些包含大量工作表和公式的复杂Excel文件。这些公式引用其他工作表。但我有两个相似的工作表,他们有相同的"模板",只是不同的值和公式引用不同的单元格。
在Excel中生成并打开文件时,它会在受保护的视图中打开,并且第一个提到的工作表中的某些公式不会被计算并且为零。在第二个工作表中一切正常。当我点击"编辑无论如何"价值得到计算,一切正常。
我无法找到两张几乎相同的纸张表现不同的原因,以及为什么简单的=SUM()
公式无法计算,即使从互联网下载文件也是如此。
什么可能导致这种行为?我不会发布代码,因为它长达数百行,我使用包装类,但它只是将值写入单元格。
我尝试过这个技巧:
PHPExcel_Calculation::getInstance($objPHPExcel)->clearCalculationCache();
PHPExcel_Calculation::getInstance()->clearCalculationCache();
$objWriter->setPreCalculateFormulas(false);
但它们都不起作用。
感谢每一个提示可能导致此问题。
答案 0 :(得分:5)
我刚遇到同样的问题。正确的解决方案是:
$objWriter->setPreCalculateFormulas(TRUE);
问题是由PHPExcel_Writer_Excel2007以及其他编写者引起的,他们默认将preCalculateFormulas值设置为FALSE。
答案 1 :(得分:0)
所以问题是我的公式是SUM(),sum的第一个单元格是空的。只是下一个单元格的总和包含值。所以我已经将SUM范围的开始设置为下一行,一切都很好。