1.java action
/**
* 信息导入
* @return
* @throws IOException
*/
@RequestMapping("/importMaterial")
@ResponseBody
public String importMineEnterprise(HttpServletRequest request) throws IOException{
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile uploadfile = multipartRequest.getFile("chooseFile");
String jsonStr = null;
String pathfile ="";
String month="";
try {
if(uploadfile != null && !"".equals(uploadfile)){
pathfile = uploadMineEnterprise(request,uploadfile);
if(pathfile != null && !"".equals(pathfile)){
Workbook book = Workbook.getWorkbook( new File(pathfile));
// 获得第一个工作表对象
Sheet sheet = book.getSheet( 0 );
// 得到第一列第一行的单元格
int columnum = sheet.getColumns(); // 得到列数
int rownum = sheet.getRows(); // 得到行数
for ( int i = 0 ; i < rownum; i ++ ) // 循环进行读写 f
{
/*EvnDuty mineEnterprise = new EvnDuty();*/
Materrial mineEnterprise = new Materrial();
for ( int j = 0 ; j < columnum; j ++ ) {
Cell cell1 = sheet.getCell(j, i);
String result = cell1.getContents();
/* if(i==0 && j==0){
month=result.substring(0, result.indexOf("月")+1);
}*/
if(i>=3){//遍历第一行的表头 对号入座
switch(j){
case 0: mineEnterprise.setMaterialname(result);//物资名称
/* mineEnterprise.setDay(String.valueOf(result));
String date=month+result+"日";
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
mineEnterprise.setOperatetime(df.parse(date));*/
break;//1
case 1: mineEnterprise.setMaterialtype(result); break; //类型
case 2: mineEnterprise.setAlias(result); break; //别名
case 3: mineEnterprise.setModel(result); break; //规格型号
case 4: mineEnterprise.setMaterialncnt(Integer.parseInt(result)); break; //物资数量
case 5: mineEnterprise.setMeasureunit(result); break; //计量单位
case 6: mineEnterprise.setSecuritylevel(result); break; //保密等级
case 7: mineEnterprise.setMaterialdesc(result); break; //物资描述
case 8: mineEnterprise.setNotes(result); break; //备注
case 9: mineEnterprise.setLongitude(Float.parseFloat(result)); break; //经度
case 10: mineEnterprise.setLatitude(Float.parseFloat(result)); break; //纬度
case 11: mineEnterprise.setOrgid(result); break; //主管部门
}
}
}
if(i>=3){
//判断minename在数据库中是否存在
String oid = UUID.randomUUID().toString().replaceAll("-", "");
mineEnterprise.setOid(oid);
mineEnterprise.setAdd_time(new Date());
String userid = UserSession.getCurrentUserId();
mineEnterprise.setAdd_user_id(userid);
String visaldept = UserSession.getCurrentOrgId();
String orgName = UserSession.getCurrentOrgName();
mineEnterprise.setAdd_visaldept_id(visaldept);
mineEnterprise.setAdd_user_name(orgName);
excelImportService.saveMaterial(mineEnterprise);
}
}
}
}
jsonStr = "{\"data\":\"success\"}";
} catch (Exception e) {
} finally{
File f = new File(pathfile);
if(f.exists())
f.delete();
}
return jsonStr;
}
2.实体类 getter和setter方法补全
@Table(name = "TB_BAS_MATERIAL")
public class Materrial {
@Id
private String oid;
private String materialname;
private String materialtype;
private String model;
private Integer materialncnt;
private String materialdesc;
private String securitylevel;
private String measureunit;
private String notes ;
private String alias;
private String orgid;
private Date add_time;
private String add_user_id;
private String add_visaldept_id;
private String is_dele ;
private Date update_time;
private String up_user_id ;
private String up_visaldept_id;
private String add_user_name;
private Float longitude ; //经度
private Float latitude; //纬度
private String qywyh;
}
3.excel模板
应急救援物资 | |||||||||||
注意事项:需要确保表内数据在系统上能正常填报,再进行批量操作 !!!本文件为Microsoft excel 2003 .xl件 注意事项:部分内容在系统上为选项形式,本表中内容应与其一致,如果导入不成功,请查看格式是否有误 注意事项:经度和纬度的格式是: xxx.xx,是浮点型数字,如123.11,建议在系统上取到坐标后,复制到这里 | |||||||||||
物资名称 | 类型 | 别名 | 规格型号 | 物资数量 | 计量单位 | 保密等级 | 物资描述 | 备注 | 经度 | 纬度 | 主管部门 |