excel表格导入数据库数据存在则更新不存在添加

    public void excelToDB() throws ParseException {
String datapath = this.getParameter("datapath");
String filePath = AppUtil.getAppAbsolutePath()+datapath;
Workbook rwb = null; try {
// 创建输入流
InputStream stream = new FileInputStream(filePath);
// 获取Excel文件对象
rwb = Workbook.getWorkbook(stream);
} catch (Exception e) {
e.printStackTrace();
}//导入文件
Sheet rs = rwb.getSheet();//表
int rows = rs.getRows();//得到所有的行
for(int i=;i<rows;i++) {
Map<String,Object> map = null;
//如果busreqno,entno为空则添加
String busregno = rs.getCell(,i).getContents();
String entno = rs.getCell(,i).getContents();
map = yksptBuildManager.getEntityDao().findObjectBySql("sql查询语句",busregno);
if(map == null && !"".equals(entno) && entno!= null) {
map = yksptBuildManager.getEntityDao().findObjectBySql("sql查询语句",entno);
}
if(map == null) {
map = new HashMap<String,Object>();
}
//没查到就插入数据库
所导入实体类 entity = new 所导入的实体类();
boolean flag = false;
if(map.size() != ) {
entity = yksptBuildManager.getEntityDao().getById((String)map.get("所导入表id"));
flag = true;
} entity.setBname(rs.getCell(,i).getContents());
entity.setBaddress(rs.getCell(,i).getContents());
entity.setOnesitekey(rs.getCell(,i).getContents());
entity.setTwositekey(rs.getCell(,i).getContents());
//根据下标获取excle表中经度纬度,取逗号前0后1
String s=rs.getCell(,i).getContents();
String[] ss=s.split(",");
if(!"".equals(s) && s!= null) {
entity.setCoordinatesx (ss[]);
entity.setCoordinatesy(ss[]);
}
if(!"".equals(rs.getCell(,i).getContents())&& rs.getCell(,i).getContents()!=null) {//根据excle表内数据匹配后台相对应状态,001,,002,003~~存入库内
entity.setBstreet(this.sysDictionaryManager.findDictNameByGroupkeyAndHvalue("ykspt.street",rs.getCell(,i).getContents()));
}
entity.setManage(rs.getCell(,i).getContents());
entity.setBtype(rs.getCell(,i).getContents());
entity.setWorkstation(rs.getCell(,i).getContents());
entity.setBuiltuparea(rs.getCell(,i).getContents());
entity.setUpperarea(rs.getCell(,i).getContents());
entity.setSparearea(rs.getCell(,i).getContents());
entity.setPropertyunit(rs.getCell(,i).getContents()); if(flag) {
//更新数据库
this.yksptBuildManager.update(entity);
}else {
//插入数据
this.yksptBuildManager.save(entity);
}
System.out.println(i);
}
}

2.固定路径!(路径写死)

Workbook rwb = null;
InputStream stream=null;
try {
// 创建输入流
stream = new FileInputStream("D:\\002.xls");
rwb = Workbook.getWorkbook(stream);
// 获取Excel文件对象
} catch (Exception e) {
e.printStackTrace();
}//导入文件
Sheet rs = rwb.getSheet();//表
int rows = rs.getRows();//得到所有的行
上一篇:python走起之第九话


下一篇:关于extern "C" 的用法