利用类的反射导入excel示例
生活随笔
收集整理的這篇文章主要介紹了
利用类的反射导入excel示例
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
直接上代碼
1、頁(yè)面展示
<div class="panel-heading font-bold text-center"><i class="fa fa-edit"></i><strong>用戶(hù)導(dǎo)入功能</strong></div><div class="panel-body"><form action="#" class="form-horizontal"method="post"><div class="form-group" style="display:none;"><label class="col-sm-2 control-label">會(huì)議Id<span class="text-danger">*</span></label><div class="col-sm-8"><input type="text" class="form-control w-300 iblock" id="conId" name="conId" value="<%=conId %>" datatype="*" nullmsg="請(qǐng)?zhí)顚?xiě)會(huì)議Id"></div></div><div class="form-group" style="display:none;"><label class="col-sm-2 control-label">會(huì)議簡(jiǎn)稱(chēng)<span class="text-danger">*</span></label><div class="col-sm-8"><input type="text" class="form-control w-300 iblock" id="fromWhere" name="fromWhere" value="<%=fromWhere %>" datatype="*" nullmsg="請(qǐng)?zhí)顚?xiě)會(huì)議簡(jiǎn)稱(chēng)"></div></div><div class="form-group"><label class="col-sm-2 control-label">注冊(cè)類(lèi)型<span class="text-danger">*</span></label><div class="col-sm-8"><select id="seanceId" class="form-control"><option value="-1">請(qǐng)選擇注冊(cè)類(lèi)型</option></select></div></div><div class="form-group"><label class="col-sm-2 control-label">團(tuán)隊(duì)名稱(chēng)(用于導(dǎo)入團(tuán)隊(duì))<span class="text-danger"></span></label><div class="col-sm-8"><input type="text" class="form-control w-300 iblock" id="teamName" name="teamName" datatype="*" nullmsg="請(qǐng)?zhí)顚?xiě)會(huì)議簡(jiǎn)稱(chēng)"></div></div><div class="form-group"><label class="col-sm-2 control-label">上傳Excel文件<span class="text-danger">*</span></label><div class="col-sm-8"><input type="file" class="form-control w-300 iblock" id="importFile" style="display:none"/><button class="btn btn-lg btn-primary" id="selectFile" type="button">選擇文件</button></div></div><div class="form-group"><label class="col-sm-2 control-label"><span class="text-danger"></span></label><div id="daoru" class="col-sm-8 text-center"><button class="btn btn-lg btn-primary" type="button" id="importBtn">導(dǎo)入</button></div></div></form></div>2、js數(shù)據(jù)提交
$("#importBtn").click(function(){if($("#conId").val() == ""){alert("請(qǐng)?zhí)顚?xiě)會(huì)議Id");return;}if($("#fromWhere").val() == ""){alert("請(qǐng)?zhí)顚?xiě)會(huì)議的簡(jiǎn)稱(chēng)");return;}if($("#importFile").val() == ''){alert("請(qǐng)選擇上傳的文件")return;}if($("#seanceId").val() == -1){alert("請(qǐng)選擇注冊(cè)類(lèi)型");return;}else{$("#daoru").html("導(dǎo)入中...");}setTimeout(function(){var formData = new FormData();var teamName = encodeURIComponent($("#teamName").val());var conId = $("#conId").val();formData.append("importFile", $("#importFile")[0].files[0]);formData.append("fromWhere", $("#fromWhere").val());formData.append("teamName",teamName);formData.append("conId",conId);formData.append("seanceId",$("#seanceId").val());$.ajax({url: "/import.do?importUser",type: 'POST',data: formData,dataType:"json",// 告訴jQuery不要去處理發(fā)送的數(shù)據(jù)processData: false,// 告訴jQuery不要去設(shè)置Content-Type請(qǐng)求頭contentType: false,cache:false,ifModified:true,async:false,beforeSend: function () {console.log("正在進(jìn)行,請(qǐng)稍候");},success: function (json) {if (json.state == 1) {alert("導(dǎo)入完成");window.location.reload();//$("#selectFile").html("選擇文件");} else {alert(json.msg);return;}},error: function (json) {console.log("error");}});},100)})3、后臺(tái)數(shù)據(jù)處理
@RequestMapping(params = "importUser",method = RequestMethod.POST)public void importUser(Integer conId,Integer seanceId,HttpServletRequest request,HttpServletResponse response){try {MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;MultipartFile mFile = mRequest.getFile("importFile");String fromWhere = request.getParameter("fromWhere");String teamName = request.getParameter("teamName");teamName = URLDecoder.decode(teamName,"UTF-8");UserInfo teamUser = null;if(teamName.length() > 0){//要?jiǎng)?chuàng)建團(tuán)隊(duì)System.out.println(teamName);teamUser = userinfoService.getTeamUser(fromWhere,teamName);if(teamUser == null){teamUser = new UserInfo();teamUser.setTrueName(teamName);teamUser.setDanwei(teamName);teamUser.setHospitalName(teamName);teamUser.setIsTeam(1);teamUser.setIsTeamLeader(1);teamUser.setFromWhere(fromWhere);teamUser.setConferencesId(conId);userinfoService.saveOrUpdate(teamUser);teamUser.setTeamId(teamUser.getUserInfoId());userinfoService.saveOrUpdate(teamUser);}}InputStream is = mFile.getInputStream();if(is!=null){Workbook rwb = WorkbookFactory.create(is);int rowCount = 0;Sheet st = rwb.getSheetAt(0);Iterator<?> it= st.rowIterator(); String [] tableHead = null;for(; it !=null && it.hasNext();){Row row = (Row)it.next();if(row==null){it = null;continue;}if(row.getCell(0)==null || row.getCell(0).getStringCellValue() == null ||row.getCell(0).getStringCellValue().length() == 0){it = null;continue;}if(rowCount == 0){int columnNum = row.getPhysicalNumberOfCells();tableHead = new String[columnNum];for(int i = 0; i< tableHead.length;i++){Cell cell = row.getCell(i);String headStr = cell.getStringCellValue();tableHead[i] = headStr;}}else{UserInfo userInfo = new UserInfo();userInfo.setFromWhere(fromWhere);for(int j = 0;j < tableHead.length;j++){Cell cell = row.getCell(j);String value = "";if(cell == null || cell.equals("") || cell.getCellType() ==HSSFCell.CELL_TYPE_BLANK){ }else{value = getCellValue(cell);}if (value!="") {String tablePropertyName = tableHead[j].substring(3,tableHead[j].length());tablePropertyName = tablePropertyName.substring(0, 1).toLowerCase()+tablePropertyName.substring(1,tablePropertyName.length());String type = userInfo.getClass().getDeclaredField(tablePropertyName).getGenericType().toString();if(type.equals("class java.lang.String")){Method method = userInfo.getClass().getMethod(tableHead[j],new Class[] { String.class });method.invoke(userInfo,new Object[]{new String(value)});}if(type.equals("class java.lang.Integer")){value = value==""?"0":value;Method method = userInfo.getClass().getMethod(tableHead[j],new Class[] { Integer.class });method.invoke(userInfo,new Object[]{new Integer(value)});}}}/*if(teamName.length() == 0){//個(gè)人導(dǎo)入U(xiǎn)serInfo saveUserInfo = userinfoService.getUserInfoByNameAndMobile(fromWhere,userInfo.getTrueName(),userInfo.getMobilePhone());if(saveUserInfo == null){saveUserInfo = userinfoService.getUserINfoByNameAndEmail(fromWhere,userInfo.getTrueName(),userInfo.getEmail());if(saveUserInfo == null){Hospital hospital = mainService.getProvinceByName(userInfo.getProvince());if(hospital != null){userInfo.setProvince(String.valueOf(hospital.getProvinceId()));userInfo.setCity(String.valueOf(hospital.getCityId()));}userInfo.setConferencesId(conId);userinfoService.saveOrUpdate(userInfo);}}}else if(teamName.length() > 0){//團(tuán)隊(duì)導(dǎo)入U(xiǎn)serInfo saveUserInfo = userinfoService.getUserInfoByName(fromWhere,userInfo.getTrueName());Hospital province = mainService.getProvinceByName(userInfo.getProvinceName());if(province != null){userInfo.setProvince(String.valueOf(province.getHospitalId()));}Hospital city = mainService.getCityByName(userInfo.getCityName());if(city != null){userInfo.setCity(String.valueOf(city.getHospitalId()));}if(saveUserInfo != null && saveUserInfo.getIsVip() != null && saveUserInfo.getIsVip() == 1){userInfo.setIsVip(-1);}userInfo.setTeamId(teamUser.getUserInfoId());userInfo.setIsTeam(1);userInfo.setIsTeamMember(1);userInfo.setConferencesId(conId);userinfoService.saveOrUpdate(userInfo);}*/if(userInfo != null){if(userInfo.getProvinceName() != null && userInfo.getProvinceName().length() >0){String provinceName = userInfo.getProvinceName().replace("自治區(qū)", "").replace("省", "").replace("市", "");Hospital province = mainService.getProvinceByLikeName(provinceName);if(province != null){userInfo.setProvince(String.valueOf(province.getHospitalId()));}}if(userInfo.getCityName() != null && userInfo.getCityName().length() >0){String cityName = userInfo.getCityName().replace("市", "");Hospital city = mainService.getCityByLikeName(cityName);if(city != null){userInfo.setCity(String.valueOf(city.getHospitalId()));}}}if(teamName.length() > 0){//團(tuán)隊(duì)導(dǎo)入UserInfo saveUserInfo = userinfoService.getUserInfoByName(fromWhere,userInfo.getTrueName());if(saveUserInfo != null && saveUserInfo.getIsVip() != null && saveUserInfo.getIsVip() == 1){userInfo.setIsVip(-1);}userInfo.setTeamId(teamUser.getUserInfoId());userInfo.setIsTeam(1);userInfo.setIsTeamMember(1);}userInfo.setConferencesId(conId);userinfoService.saveOrUpdate(userInfo);/*注冊(cè)類(lèi)型*/if(seanceId != null && seanceId + 1 !=0){ChcRegUser chcRegUser = webService.getChcRegUser(userInfo.getUserInfoId());if(chcRegUser == null){chcRegUser = new ChcRegUser();chcRegUser.setCreateTime(new Date());}chcRegUser.setPaymentMethod(1);chcRegUser.setConferencesId(Integer.valueOf(conId));Seance seance = webService.getSeanceById(seanceId);chcRegUser.setPay(seance.getPrice().intValue()); //應(yīng)繳費(fèi)chcRegUser.setHasPay(0); //已繳費(fèi)chcRegUser.setQianPay(seance.getPrice().intValue()); //欠費(fèi) chcRegUser.setSeanceId(seanceId);chcRegUser.setSeance(seance.getSeanceContent());chcRegUser.setEnSeance(seance.getEnSeanceContent()==null?"":seance.getEnSeanceContent());chcRegUser.setUserId(userInfo.getUserInfoId());chcRegUser.setStateType(0);chcRegUser.setPayType(2);webService.saveObject(chcRegUser);userInfo.setJobNumber(chcRegUser.getChcRegUserId());userInfo.setPayState(0);webService.saveObject(userInfo);}}rowCount++;System.out.println(rowCount);}}writeJson(response, new JSONObject().accumulate("state", 1).toString());} catch (Exception e) {e.printStackTrace();}}?
轉(zhuǎn)載于:https://www.cnblogs.com/jichuang/p/10033793.html
與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的利用类的反射导入excel示例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Normal Form】数据库表结构设
- 下一篇: 6号团队-团队任务4:每日立会(2018