POI Excel表格导入导出时对象的转换

一、poi excel表格导入时对象转换

因为excel表格的没一行即为一个对象,即为Row对象,我们需要把Row对象转换为我们需要的Bean对象,调用一下方法,把一个excel表格数据,转换为一个存Bean实体类的List集合。

以一个Customer对象为例:

//user导入
	 public static List row2bean(List rowList){
	        List alluser = new ArrayList();
	        for(int i=1;i

二、Excel表格的导出时对象转换

一般我们可以得到的数据仅为List集合,而Excel的数据为Row,我们需要把得到的List集合转换为Row对象,然后通过

public static List bean2row(List alluser){
        List rowList = new ArrayList();
        HSSFWorkbook wb = new HSSFWorkbook();//创建Excel工作簿对象
        HSSFSheet sheet = wb.createSheet("new sheet");//创建Excel工作表对象
        DecimalFormat df = new DecimalFormat("0.0"); 
        if(alluser.size() <= 0){
            return null;
        }
        //创建工作表第一行
        Field[] fields = alluser.get(0).getClass().getDeclaredFields();
        Row rowone = sheet.createRow((short)0);
        for(int j = 0;j	  //此时switch循环的是list集合每个对象,case为每个字段
                    case "id":
                        row.createCell((short)k).setCellValue(alluser.get(i-1).getId());
                        break;
                    case "name":
                        row.createCell((short)k).setCellValue(alluser.get(i-1).getName());
                        break;
                    case "sex":
                    	String str3="保密";
                    	if(alluser.get(i-1).getSex()==0){
                    		str3="女";
                    	}else if(alluser.get(i-1).getSex()==1){
                    		str3="男";
                    	}else if(alluser.get(i-1).getSex()==2){
                    		str3="保密";
                    	}
                        row.createCell((short)k).setCellValue(str3);
                        break;
                    case "password":
                        row.createCell((short)k).setCellValue(alluser.get(i-1).getPassword());
                        break;
                    case "phone":
                        row.createCell((short)k).setCellValue(alluser.get(i-1).getPhone());
                        break;
                    case "wechat":
                        row.createCell((short)k).setCellValue(alluser.get(i-1).getWechat());
                        break;
                    case "createtime":
                        row.createCell((short)k).setCellValue(alluser.get(i-1).getCreatetime());
                        break;
                    case "status":
                    	String str2="可用";
                    	if(alluser.get(i-1).getStatus()==0.0){
                    		str2="禁用";
                    	}else if(alluser.get(i-1).getStatus()==1.0){
                    		str2="可用";
                    	}
                        row.createCell((short)k).setCellValue(str2);
                        break;
                    case "mark":
                        row.createCell((short)k).setCellValue(alluser.get(i-1).getMark());
                        break;
                    default:
                        break;
                }
                 //设置Excel工作表的值
            }
            rowList.add(row);
        }
        return rowList;
    }



通过这两个方法,将数据进行Row和Bean之间的转换,然后调用ExcelUtil(表格数据的写入excel以及excel表格的创建)就可以获取excel表格,然后下载就可以了



你可能感兴趣的:(后台,工具类)