在使用poi实现excel批量导入和导出时遇到了很多问题,在实现用户信息批量导出成excel时,我将所有数据都使用excel的字符类型,这样就不用考虑excel类型与java类型的转换问题,但是实现导入的时候会有许多问题,将excel值传到java时就会有类型转换问题,因为你不能保证他全部按照字符类型来存储,而且excel能够自动根据输入值确定相应的类型,所以需要先判断类型再来选择java相应的类型来存储,excel类型的返回值是六个常量(0-5),我在使用时只有字符类型和数字类型是我使用的,但是在使用数字类型时会遇到类型转换异常的问题,后来发现是因为它们将日期类型也当做了数字类型且它们日期类型的格式为yyyy/MM/dd。先贴一波excel类型与java类型转换取值的代码:
/**
* 根据cell的类型获取相应的值
* @param cell
* @return
*/
public String typeConversion(Cell cell) {
if(cellJudge(cell)==0) {
return "";
}
if(cell.getCellType() == cell.CELL_TYPE_BOOLEAN) {
return String.valueOf(cell.getBooleanCellValue());
}else if(cell.getCellType()==cell.CELL_TYPE_NUMERIC) {
String cellvalue="";
if(HSSFDateUtil.isCellDateFormatted(cell)) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
Date dt =