之前作为项目甲方,加之java接触不多,在java web开发方面都是打下手的份。
对于EXCEL数据导入到数据库这个问题一直老是出现格式原因而导入失败也是未免惆怅,开发团队也是只说回去检查一下格式。
但是,每次导入的时候还会因为格式问题而惴惴不安,最近把代码拿来研究了一下,网上查了一下。
原来是从cell里取出数据后没有做格式匹配直接赋值导致的。因此,在取出数据写入数据库前做一下格式匹配就好了。
SO FRUSTRATED BY THE PREVIOUS IGNORANCE!
1 //把EXCEL Cell原有数据转换成String类型
2 private String getCellString(Cell cell) {
3 if(cell==null) return ""; String cellSring="";
4 switch (cell.getCellType()) {
5 case HSSFCell.CELL_TYPE_STRING: // 字符串
6 cellSring = cell.getStringCellValue();
7 break;
8 case HSSFCell.CELL_TYPE_NUMERIC: // 数字
9 cellSring=String.valueOf(cell.getNumericCellValue());
10 break;
11 case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean
12 cellSring=String.valueOf(cell.getBooleanCellValue());
13 break;
14 case HSSFCell.CELL_TYPE_FORMULA: // 公式
15 cellSring=String.valueOf(cell.getCellFormula());
16 break;
17 case HSSFCell.CELL_TYPE_BLANK: // 空值
18 cellSring="";
19 break;
20 case HSSFCell.CELL_TYPE_ERROR: // 故障
21 cellSring="";
22 break;
23 default:
24 cellSring="ERROR";
25 break;
26 }
27 return cellSring;
28 }
当然需要import POI的包:
import org.apache.poi.hssf.usermodel.HSSFCell;
|