package homework.dao;
import homework.model.UserInfo; import java.io.*; import java.text.DateFormat; import java.util.*; import org.apache.poi.*; import org.apache.poi.ss.usermodel.C package homework.dao; import homework.model.UserInfo; import java.io.*; import java.text.DateFormat; import java.util.*; import org.apache.poi.*; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.DateUtil; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; /* * 读取Excel文件实现批量导入用户信息 * JasonHu 03-20 */ public class BatchImport { // 定义EXCEL模板文件中列名位置信息 private final int iPosUserName = 0; // 用户名 private final int iPosPwd = 1; //密码 private final int iPosName = 2; // 真实姓名 private final int iPosSex = 3; // 性别 private final int iPosClass = 4; //班级 private final int iPosRole = 5; //用户类别 private final int iPosPhone = 6; // 手机号码 //用户链表 List<UserInfo> list = new ArrayList<UserInfo> (); public boolean debug=true; public BatchImport() { } /* * fileName 要读取的文件名称 * 读取EXCEL文件 * jason 03-20 */ public List getInstance(String fileName) { List lst = this.readFile(fileName); String errorMsg=this.getError(); if(!debug) { lst=null; } return lst; } /* * 对获取的Excel数据进行类型判断 * JasonHu 03-20 */ private String getValue(Cell cell) { String ret = null; if (cell == null) return ret; try { switch (cell.getCellType()) { //字符串 case Cell.CELL_TYPE_STRING: ret = cell.getRichStringCellValue().getString(); break; //日期 case Cell.CELL_TYPE_NUMERIC: if (DateUtil.isCellDateFormatted(cell)) { ret = cell.getDateCellValue().toLocaleString(); } // 其他格式的数据 else { double temp = cell.getNumericCellValue(); Double dt = new Double(temp); ret = String.format("%d", dt.longValue()); } break; } } catch (Exception e) { e.printStackTrace(); } return ret; } /* * 错误代码提示 * JasonHu 03-20 */ public String getError() { StringBuffer errorMsg = new StringBuffer("Error: \n"); for (UserInfo user : list) { //判断用户姓名 if (user.getUserName() == null) { errorMsg.append("\n 姓名 不可为空! \n"); debug=false; } else { if (user.getUserName().length() > 32 || user.getUserName().length() < 1) { errorMsg.append("姓名 长度应在0-32位之间! \n"); debug=false; } } //判断用户密码 if (user.getPsw() == null) { errorMsg.append("密码 不可为空! \n"); debug=false; } else { if (user.getPsw().length() < 6) { errorMsg.append("密码 长度应大于6! \n"); debug=false; } } //判断性别 if (user.getSex() == null) { errorMsg.append("性别 不可为空! \n"); debug=false; } else { if (!user.getSex().trim().equals("男") && !user.getSex().trim().equals("女")) { errorMsg.append("性别 错误!(男/女) \n"); debug=false; } } //判断班级 if (user.getClassName() == null) { errorMsg.append("班级 不可为空! \n"); debug=false; } //判断类别 if (user.getRole() == null) { errorMsg.append("类别 不可为空! \n"); debug=false; }else { if(!user.getRole().trim().equals("教师") && !user.getRole().trim().equals("学生")) { errorMsg.append("类别 错误! \n"); debug=false; } } //判断电话号码 if (user.getPhone() != null) { if ( (user.getPhone().length() != 7) && (user.getPhone().length() != 8) && (user.getPhone().length() != 11)) { errorMsg.append("电话号码 长度错误! \n"); debug=false; } } } return errorMsg.toString(); } /* * 读取Excel文件 * JasonHu 03-20 */ public List readFile(String fileName) { try { InputStream is = new FileInputStream(fileName); Workbook workbook = WorkbookFactory.create(is); Sheet sheet = workbook.getSheetAt(0); // 遍历 for (Row row : sheet) { if (row.getRowNum() < 2) { continue; } UserInfo user = new UserInfo(); Cell cell = row.getCell(iPosName); if(cell==null) { break; } // 用户名 user.setUserName(this.getValue(cell)); //密码 cell = row.getCell(iPosPwd); if(cell==null) { break; } user.setPsw(this.getValue(cell)); //真实姓名 cell = row.getCell(iPosName); if(cell==null) { break; } user.setName(this.getValue(cell)); //性别 cell = row.getCell(iPosSex); if(cell==null) { break; } user.setSex(this.getValue(cell)); //班级 cell = row.getCell(iPosClass); if(cell==null) { break; } user.setClassName(this.getValue(cell)); //类别 cell = row.getCell(iPosRole); if(cell==null) { break; } user.setRole(this.getValue(cell)); //电话 cell = row.getCell(iPosPhone); if(cell==null) { break; } user.setPhone(this.getValue(cell)); //System.out.println(user.getUserName()+"\t"+user.getPsw()+"\t"+user.getName()+"\t"+user.getSex()+"\t"+user.getClassName() // +"\t"+user.getRole()+"\t"+user.getPhone()); //添加用户至List list.add(user); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } if (list.size() == 0) { list = null; } return list; } } 本篇文章来源于:开发学院 http://edu. 原文链接:http://edu./2009/1201/18349.php |
|