2 luoooofeicsdn luoooofeicsdn 于 2015.07.21 11:13 提问

excel表格导入整数会在后面加了小数点

项目 做 E表导入信息时,E表中的数字如果是整数导入系统中时会自己加小数点,比如E表中某项数据为(2006),导入系统中就成了(2006.0)
这是什么问题?
j2ee 项目 E表导入用的是:
InputStream in = new FileInputStream(file);
XSSFWorkbook wb = new XSSFWorkbook(in);
这个包
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

4个回答

autocyz
autocyz   2015.07.21 11:16

修改一下数据显示格式,改成以整数显示

luoooofeicsdn
luoooofeicsdn 首先表里肯定是有小数的,不能改成整数,比如 2006 年 总收入2134352.31元 这个不能都显示成整数的。
2 年多之前 回复
CSDNXIAOD
CSDNXIAOD   2015.07.21 11:17

excel中,如何保留小数点后面的尾数0
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

yuke198907
yuke198907   2015.07.21 11:31

如果这样的话,最好给excel加只能填写整数的限制,要不然excel随意填的话就不行了

luoooofeicsdn
luoooofeicsdn E表里是整数到了系统里 系统得到的hasmap数据里就成了小数了,这是问题。
2 年多之前 回复
tongyi55555
tongyi55555   2015.07.21 22:57

excel中没有整型浮点类型一说,因此用poi读取的数字默认返回的都是double类型,建议你在Java中做一个判断,如果是整型,可以通过下面的判断得出:

double numericCellValue = cell.getNumericCellValue();
                        int inVal = (int) Math.round(numericCellValue);
                        if (numericCellValue - inVal == 0) {
                            System.out.print("整型数据:" + inVal + " ");
                        } else {
                            System.out
                                    .print("浮点类型数据:" + numericCellValue + " ");
                        }
Csdn user default icon
上传中...
上传图片
插入图片