我用的时下面的程序是实现批量导入excel表格中的数据的,我想改一下,导入时如果数据库中已有表格中的数据,那么跳过这些数据,导入没有导入过的,如果表里的数据都存在,则提示以全部存在,各位大神帮我改改呗,菜鸟一枚,不会改啊,不胜感激!!!!!!!
表格时这样的!!!!!!!!!
public String upload()throws Exception{
Workbook workBook= (Workbook) createWorkbook(new FileInputStream(excelFile));
Sheet sheet=workBook.getSheetAt(0);//得到第一个sheet
excelWorkSheet=new ExcelProcess();
Row firstRow=sheet.getRow(0);//得到第一行,也就是列名
Iterator iterator=firstRow.cellIterator();//得到第一行的一个迭代器
List cellNames=new ArrayList();
//将列名取出来
while(iterator.hasNext()){
cellNames.add(iterator.next().getStringCellValue());
}
excelWorkSheet.setColumns(cellNames);
Preuser jczxFixRec=null;
//遍历各列数据,并将其取出来放到excelWorkSheet中
for(int i=1;i<=sheet.getLastRowNum();i++){
Row row=sheet.getRow(i);
jczxFixRec=new Preuser();
row.getCell(0).setCellType(CellType.STRING);
row.getCell(1).setCellType(CellType.STRING);
row.getCell(2).setCellType(CellType.STRING);
row.getCell(3).setCellType(CellType.STRING);
row.getCell(4).setCellType(CellType.STRING);
row.getCell(5).setCellType(CellType.STRING);
row.getCell(6).setCellType(CellType.STRING);
row.getCell(7).setCellType(CellType.STRING);
row.getCell(8).setCellType(CellType.STRING);
row.getCell(9).setCellType(CellType.STRING);
jczxFixRec.setNickname(row.getCell(0).getStringCellValue());
jczxFixRec.setPassword(row.getCell(1).getStringCellValue());
jczxFixRec.setUsername(row.getCell(2).getStringCellValue());
jczxFixRec.setPro(row.getCell(3).getStringCellValue());
jczxFixRec.setSchool(row.getCell(4).getStringCellValue());
jczxFixRec.setAge(Integer.valueOf(row.getCell(5).getStringCellValue()));
jczxFixRec.setArea(row.getCell(6).getStringCellValue());
jczxFixRec.setSex(row.getCell(7).getStringCellValue().equals("男")?0:1);
jczxFixRec.setBro(row.getCell(8).getStringCellValue());
jczxFixRec.setFamily(row.getCell(9).getStringCellValue());
jczxFixRec.setCreated(new Date());
excelWorkSheet.getData().add(jczxFixRec);
}
for(int j=0;j<excelWorkSheet.getData().size();j++){
Preuser rec=excelWorkSheet.getData().get(j);
preuserService.save(rec);
}
return "addSuccess";
}