用NPIO给Excel单元格写入公式后,如果用tostring()的话读出来的是公式。FormulaValue读出来的值是0。打开Excel表格后,再关闭会提示是否保存,出现这个问题的原因是Stream写入后Excel中的公式没有实时更新。我是先写入公式再写入值,所以公式写入后调用sheet.ForceFormulaRecalculation = true确实把公式更新了,但是后面写入值后,公式没有更新还是值没有写入的状态,所以读出来的是0。
这个时候我们是需要调用如下方法实时更新即可hssfWorkBook.GetCreationHelper().CreateFormulaEvaluator().EvaluateAll();