excel 文本转换数字,数字变成科学计数法了,该怎么解决??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel 文本转换数字,数字变成科学计数法了,该怎么解决??相关的知识,希望对你有一定的参考价值。

数字长度超过15位时,数字则按科学计数法显示,解决的唯一办法就是不要把文本转成数字.
若要参加运算,在公式中利用函数把文本转换成数字再运算即可
参考技术A 记得当时做数据的时候jsp导出的时候遇到过类似的问题
但是当时遇到的问题是针对数值类型才会有的,对于string类型的不会产生这个问题,如果你导出为string后,string的数值变成科学计数的,那请你检查自己使用的jsp导出插件,或者是在jsp上设置导出excel时对单元格的设置有错误.
如果是数值类型导出后变成科学计数的,我当时的做法是使用逗号分割数字串,将数字串变成标准的计数格式,类似于90,222,338,903这样的数字.
答案仅供参考.

java使用poi解析或处理excel的时候,如何防止数字变成科学计数法的

思路为:为了防止数字变成科学计数法方式表示,在源文件以及java代码中都用文本的方式去生成和解析excel,具体如下:

1.生成Excel时,设置单元格格式为STRING,即:

//关键代码
HSSFCell  cell = new HSSFCell();
cell.setCellType(HSSFCell.CELL_TYPE_STRING);

2.同理,解析的时候,首先要保证源excel文件中该单元格格式是文本类型的,然后在java代码里用STRING类型去解析:

//关键代码
String value = cell.getStringCellValue();

参考技术A


如图  poi的单元格  cell设置值的时候可以传个数字,也可以传字符串,如果传数值过大会自动转换成科学计数法,可以考虑传数字的字符串格式进去;

cell.setCellValue(val+"");

参考技术B

思路为:为了防止数字变成科学计数法方式表示,在源文件以及java代码中都用文本的方式去生成和解析excel,具体如下: 1.生成Excel时,设置单元格格式为STRING,即: //关键代码HSSFCell cell = new HSSFCell();cell.setCellType(HSSFCell.CELL_TYPE_STRING);2.同理,解析的时候,首先要保证源excel文件中该单元格格式是文本类型的,然后在java代码里用STRING类型去解析: //关键代码String value = cell.getStringCellValue()。

参考技术C 把数值类型(Integer,Long,Double)转换成String即可。 参考技术D DecimalFormat df = new DecimalFormat("0");

String whatYourWant = df.format(cell.getNumericCellValue());

以上是关于excel 文本转换数字,数字变成科学计数法了,该怎么解决??的主要内容,如果未能解决你的问题,请参考以下文章

为啥用excel输入长数字就变成科学记数法?

为啥输出的数字会变成科学计数法?

java使用poi解析或处理excel的时候,如何防止数字变成科学计数法的形式和其他常见Excel中数据转换问题

关于excel保存为csv格式后,重新打开文本型数字变为科学计数,且15位后面变成0??

excel改为csv格式身份证号就变成科学计数法的形式了,怎么转变回来?

excel中长数字字符串会默认变成科学计数法,如何去除?