java 存读Excel数据
- 前期准备工作:
- 准备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; }