方法1:NPOI 中,对 sheet 对象设置 ForceFormulaRecalculation = true,即可实现自动将 Excel 的公式计算出来。
方法2:循环 Excel 的行、列,取出各个单元格,判断单元格的 CellType 是否等于 NPOI.SS.UserModel.CellType.Formula(注意,在老版本中 Formula 为大写),如果等于就执行 Evaluate
//创建当前sheet 的动态公式计算器
HSSFFormulaEvaluator evalor = new HSSFFormulaEvaluator(workbook);
//解析列中的内容
var cellType = cellObj.CellType;
switch (cellType)
{
case CellType.Formula:
//针对公式列 进行动态计算;注意:公式暂时只支持 数值 字符串类型
var formulaValue = evalor.Evaluate(cellObj);
if (formulaValue.CellType== CellType.Numeric)
{
dataRow[j] = formulaValue.NumberValue;
}
else if(formulaValue.CellType == CellType.String)
{
dataRow[j] = formulaValue.StringValue;
}
break;
default:
dataRow[j] = cellObj;
break;
}