本文总共796个字,阅读需3分钟,全文加载时间:2.491s,本站综合其他专栏收录该内容! 字体大小:

文章导读:现在用NPOI来读取EXCEL表格越用越多,学习总结了问题(NPOI版本V2.5.1): 1、NPOI导入EXCEL表格后,表格中一些列是公式的,需要获取公式计算后的数值结果 网上很多方法都是模糊不清楚的,翻看官方给出的也是设置……各位看官请向下阅读:

现在用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表格时单元格公式不计算的解决办法就完成了!

以上内容由优质教程资源合作伙伴 “鲸鱼办公” 整理编辑,如果对您有帮助欢迎转发分享!

你可能对这些文章感兴趣:

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注