jsp实现excel导入!(附码云源码)

最近有时间,就整理整理自己做过的项目或作业~ 该作业的码云链接:https://gitee.com/sarah0429/studentManagement.git

话不多说,直接进入正题。一共三步

1.根据路径获取对应excel数据,返回成集合list

 /**
     * 根据excel文件路径获取数据
     * @param file excel文件路径
     * @return
     */
    public static List<JavaBean> getAllByExcel(String file){
        List<JavaBean> list=new ArrayList<JavaBean>();
        try {
            Workbook rwb=Workbook.getWorkbook(new File(file));
            Sheet rs=rwb.getSheet("test");//或者rwb.getSheet(0)
            int clos=rs.getColumns();//得到所有的列
            int rows=rs.getRows();//得到所有的行
            
            System.out.println("clos:"+clos+" rows:"+(rows-1));
            for (int i = 1; i < rows; i++) {
                for (int j = 0; j < clos; j++) {
                    //第一个是列数,第二个是行数
                    String id=rs.getCell(j++, i).getContents();//默认最左边编号也算一列 所以这里得j++
                    String pId=rs.getCell(j++, i).getContents();
                    String name=rs.getCell(j++, i).getContents();
                    String sex=rs.getCell(j++, i).getContents();
                    String bd=rs.getCell(j++, i).getContents();
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                    java.sql.Date birthdate=StudentDao.utilToSql(sdf.parse(bd));
                    
                    System.out.println("id:"+id+"  pId:"+pId+"  name:"+name+"  sex:"+sex+"  birthdate:"+birthdate);
                    list.add(new JavaBean(Integer.parseInt(id), pId,name, sex, birthdate));
                }
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 
        return list;
        
    }

2.通过学号Id判断学生是否存在

 /**
     * 通过学号Id判断学生是否存在
     * @param id
     * @return
     */
	public static boolean isExist(int id){
        try {
        	StudentDao db=new StudentDao();
            ResultSet rs=db.Search("select * from person where id=?", new String[]{id+""});
            if (rs.next()) {
                return true;
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return false;
    }

3.导入到数据库中

	/**
     * 导入获取的excel文件数据到数据库中
     */
    public static void excelToDb() {
    	
        //得到表格中所有的数据
        List< JavaBean > listExcel=ExcelToDb.getAllByExcel("c://1.xls");
        
        StudentDao db=new StudentDao();
        
        for (JavaBean stuEntity : listExcel) {
        	
            int id=stuEntity.getId();//获取学号id
            
            //判断学号id是否存在,若已存在,则对该条记录执行更新操作,否则插入。
            if (!isExist(id)) {
            
                String sql="insert into person (id,pId,name,sex,birthdate) values(?,?,?,?,?)";
                String[] str=new String[]{id+"",stuEntity.getpId(),stuEntity.getName(),stuEntity.getSex(),stuEntity.getBirthdate()+""};
                db.AddU(sql, str);
            }else {
          
                String sql="update person set pId=?,name=?,sex=?,birthdate=? where id=?";
                String[] str=new String[]{stuEntity.getpId(),stuEntity.getName(),stuEntity.getSex(),stuEntity.getBirthdate()+"",id+""};
                db.AddU(sql, str);
            }
        }
    }
关于这个,有任何问题可以留言问我(๑•ᴗ•๑)~
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值