刚开始从网上搞个读取Excel文档的代码
数字有格式,或者数字过大会变成科学计数法,会有问题总之
例如:表上数字13,可能读到就是13.0000000000001
还有,科学计数法可以new个bigDecimal转换回来
for (int fieldIdx = 0; fieldIdx < 100; fieldIdx++) {
String data = "";
Cell cell = row.getCell(fieldIdx);
if (row.getCell(fieldIdx) != null) {
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
data = cell.getStringCellValue().trim();
break;
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
Date date = cell.getDateCellValue();
BeanUtils.setProperty(excelData, "field" + (fieldIdx + 1), data);
data = MyDateUtil.formatToDay(date);
} else {
Double dNumericCellValue = cell.getNumericCellValue();
data = String.valueOf(dNumericCellValue);
}
break;
default:
data = "";
break;
}
}
BeanUtils.setProperty(excelData, "field" + (fieldIdx + 1), data);
}
下面来修改了一下读取
for (int fieldIdx = 0; fieldIdx < 100; fieldIdx++) {
Cell cell = row.getCell(fieldIdx);
DataFormatter dataFormatter = new DataFormatter();
String cellValue = dataFormatter.formatCellValue(cell);
BeanUtils.setProperty(excelData, "field" + (fieldIdx + 1), cellValue);
}
用这个DataFormatter读取cell元素
记性,网上找的东西也要自己多测测,看是否适合自己使用