java 存读Excel数据

  1. 前期准备工作:
  • 准备jar包:
    • jxl.jar 
    • 数据库链接jar包(mysql-connector-java.1.7-bin.jar )   

    2. 将数据库中的数据写入Excel文件中。

  • 创建文件       
    • File file=new File("d://文件名.xml");
    • 判断是否存在改文件,若不存在就创建改文件file.createNewFile();存在则继续操作。
  •  创建以上述文件名的WritableWorkbook。
    • WritableWorkbook wwb=null;

                    wwb=Workbook.createWorkbook(file);   

  • 创建工作表
    • WritableSheet ws=wwb.createSheet("Test Shee 1", 0);   

            //获取数据内容

             List<User>list=f.findList();   

            //设置Excel行的字段,从0开始  
            Label labelid=new Label(0,0,"编号(id)");
            Label labelname=new Label(1,0,"姓名(name)");
            Label labelage=new Label(2,0,"年龄(age)");
            Label labeladdress=new Label(3,0,"地址(address)");
            ws.addCell(labelid);
            ws.addCell(labelname);
            ws.addCell(labelage);
            ws.addCell(labeladdress);
               //循环读取

             for(int i=0;i<list.size();i++){
                    Label labelid_i= new Label(0, i+1, list.get(i).getUid());
                    Label labelname_i= new Label(1, i+1, list.get(i).getUname());
                    Label labelage_i= new Label(2, i+1, list.get(i).getAge());
                    Label labeladdress_i= new Label(3, i+1, list.get(i).getAddress());
                    ws.addCell(labelid_i);
                    ws.addCell(labelname_i);
                    ws.addCell(labelage_i);
                    ws.addCell(labeladdress_i);
                   } 

  • 将数据写入文档
    • wwb.write();   
  • 关闭操作Excel对象
    • wwb.close();      

    3.  将Excel数据写入到数据库

  • 获取文件File file=new File("d://user.xls");
  • 创建Workbook wb= Workbook.getWorkbook(file)
  • 获取工作表对象:
    • Sheet rs=wb.getSheet(0);

             //获取该文件的所有列

            int cols=rs.getColumns();
            //获取该文件的所有行
            int rows=rs.getRows();
            for(int i=1;i<rows;i++){
                for(int j=0;j<cols;j++){
                    String uid=rs.getCell(j++, i).getContents();
                    String uname=rs.getCell(j++,i).getContents();
                    String age=rs.getCell(j++,i).getContents();
                    String address=rs.getCell(j++,i).getContents();

                }

        }

  • 关闭Workbook: wb.close();

具体实现看下面代码:

//将数据库中数据存到Excel中
    public static void DateToExel(){
        findUser f=new findUser();
        WritableWorkbook wk=null;
        File file=new File("d://user.xls");
        if(!file.exists()){
            try {
                file.createNewFile();
            } catch (IOException e) {
                System.out.println("创建文档失败");
                e.printStackTrace();
            }
        }
        try {
            wk=Workbook.createWorkbook(file);
            WritableSheet ws=wk.createSheet("Test Shee 1", 0);
            List<User>list=f.findList();
            
            Label labelid=new Label(0,0,"编号(id)");
            Label labelname=new Label(1,0,"姓名(name)");
            Label labelage=new Label(2,0,"年龄(age)");
            Label labeladdress=new Label(3,0,"地址(address)");
            
            try {
                ws.addCell(labelid);
                ws.addCell(labelname);
                ws.addCell(labelage);
                ws.addCell(labeladdress);
                
                for(int i=0;i<list.size();i++){
                    
                    Label labelid_i= new Label(0, i+1, list.get(i).getUid());
                    Label labelname_i= new Label(1, i+1, list.get(i).getUname());
                    Label labelage_i= new Label(2, i+1, list.get(i).getAge());
                    Label labeladdress_i= new Label(3, i+1, list.get(i).getAddress());
                       ws.addCell(labelid_i);
                       ws.addCell(labelname_i);
                       ws.addCell(labelage_i);
                       ws.addCell(labeladdress_i);
                    
                }
                
            } catch (RowsExceededException e) {
                e.printStackTrace();
            } catch (WriteException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            try {
                wk.write();
                wk.close();
                
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (WriteException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        }
        
    }
    
    
    //将Excel数据存到数据库
    public static List<User> ExcelToDate(){
        File file=new File("d://user.xls");
        List<User> list=new ArrayList<>();
        Workbook wb=null;
        try {
             wb=Workbook.getWorkbook(file);
            //获得工作表对象
            Sheet rs=wb.getSheet(0);
            
            //获取该文件的所有列
            int cols=rs.getColumns();
            //获取该文件的所有行
            int rows=rs.getRows();
            
            for(int i=1;i<rows;i++){
                for(int j=0;j<cols;j++){
                    
                    String uid=rs.getCell(j++, i).getContents();
                    String uname=rs.getCell(j++,i).getContents();
                    String age=rs.getCell(j++,i).getContents();
                    String address=rs.getCell(j++,i).getContents();
                    
                    User u=new User();
                    u.setUid(uid);
                    u.setUname(uname);
                    u.setAge(age);
                    u.setAddress(address);
                    list.add(u);                
                }
                
            }
            
            
        } catch (BiffException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            wb.close();
        }
        
        
        return list;
    }

 

posted @ 2017-08-03 11:18  静喧  阅读(113)  评论(0编辑  收藏  举报