freemarker的excel导入

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,建议在系统上取到坐标后,复制到这里     

物资名称类型别名规格型号物资数量计量单位保密等级物资描述备注经度纬度主管部门
            

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值