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 文本转换数字,数字变成科学计数法了,该怎么解决??的主要内容,如果未能解决你的问题,请参考以下文章
java使用poi解析或处理excel的时候,如何防止数字变成科学计数法的形式和其他常见Excel中数据转换问题
关于excel保存为csv格式后,重新打开文本型数字变为科学计数,且15位后面变成0??