前端开发
后端开发
移动端开发
seo优化
后端开发

C#使用NPOI导入Excel表格时单元格公式不计算的解决办法

发布时间:2024-04-01 22:45:10 浏览量:70

现在用NPOI来读取EXCEL表格越用越多,学习总结了问题(NPOI版本V2.5.1):

1、NPOI导入EXCEL表格后,表格中一些列是公式的,需要获取公式计算后的数值结果

网上很多方法都是模糊不清楚的,翻看官方给出的也是设置了很多障碍,最后通过比较不同作者代码,发现官方代码有这么一句:

    case HSSFCellType.FORMULA:
     default:
       dr[i] = "="+cell.CellFormula;
       break;

这个“FORMULA”就是循环列,如果存在含公式的列,然后怎么赋值,这样就好办了,我们的代码就可以写成如下:

switch (cell.CellType)
{
case CellType.Blank:
   dataRow[j] = "";
   break;
case CellType.Numeric:
   short format = cell.CellStyle.DataFormat; //对时间格式(2015.12.5、2015/12/5、2015-12-5等)的处理
   if (format == 14 || format == 31 || format == 57 || format == 58)
       dataRow[j] = cell.DateCellValue;
   else
       dataRow[j] = cell.NumericCellValue;
   break;
case CellType.String:
   dataRow[j] = cell.StringCellValue;
   break;
case CellType.Formula: //判断单元格格式类型,如果是公式类型,就获取数值型的数据
   dataRow[j] = cell.NumericCellValue;  //单元格计算公式获取数值类型的值
   break;
}

通过判断CellType.Formula,这样datatable就可以获取公式计算后的数据了!
C#使用NPOI导入Excel表格时单元格公式不计算的解决办法就完成了!

Copyright © 2012-2024 你我谈信息网 版权所有

湘ICP备12002647号-4 XML地图

站长联系时间:
周一至周日 9:30-18:00

QQ:68175102

Copyright © 2012-2024 你我谈信息网 版权所有

湘ICP备12002647号-4