因为使用NPOI写入Excel,但是如果你写入的是string类型的数字的话,就会出现绿色小三角,导致Excel不能使用公式累加总和,故程序不能使用toString()去处理。
比如 double a=1.200;
我想保留成2位小数,按道理结果是 1.20
比如double b=1.0000 =>1.00
但是使用Math.Round会把0去除掉
我不知道还有没有更好的办法去解决这个,特发此贴,求大神解答!
题主这不是不懂C#和NPOI,明显是不懂EXCEL的。
好久没玩C#,确定如果不是string类型,excel能够正常计算?即,如果保存为1.200这个数值,excel能正常计算?
如果能,那么或许可以:
double a = double.Parse(olda.ToString("0.00"));
decimal b = Math.Round(oldb,2);
没运行环境,自己试看...
如果不是string和double的原因,还是查阅一下excel的相关知识点,可能是excel对数据格式处理方式的问题更大些。比如在导出的时候,对excel的列(或列头)设置为数值类型?
最好的方法就是在程序中算完,然后tostring再填充到excel里
直接使用NPOI的DataFormat 然后输入格式0.00即可解决,如果在模板页设置的话,设置cell的cellStyle会把模板设置的单元格格式替换。